以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  交易编写  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=145516)

--  作者:曹晓东
--  发布时间:2016/12/29 17:28:32
--  交易编写


a1:=(REF(O,1) + REF(C,1)) / 2;
a2:=(H + L + C) / 3;
a3:=MAX(MAX(a1,a2),H);
a4:=MIN(MIN(a1,a2),L);
a5:=IF(a1 < a2,a3 - a4 + a2 - a1,a3 - a4);
a6:=IF(a1 > a2,a3 - a4 + a1 - a2,a3 - a4);
a7:=a5 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
a8:=a6 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
a9:=(a7 - a8) * 2.5;
tj1:=a9>0;
pc:=a9<0;

做多力度:=SMA((CLOSE - LLV(LOW,9)) / (HHV(HIGH,9) - LLV(LOW,9)) * 100,5,1) - 8;
做空力度:=SMA((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36)) * 100,2,1);
多空差:=做多力度-做空力度;
tj2:=多空差>0;

aa1:=(C - LLV(L,7)) / (HHV(H,7) - LLV(L,7)) * 100;

aa2:=(C - LLV(L,38)) / (HHV(H,38) - LLV(L,38)) * 100;
小:=SMA(aa2,5,2);
大:=SMA(小,10,1);

tj3:=小>大;


if  tj1 and tj2 and tj3 and holding=0 then begin 
 buy(holding=0,1,marketr);
 end
if pc then begin
sell(1,0,marketr);
end

 

 

 

帮忙修改一下    tj2   这个条件只有在第一次满足的时候成交   其他的时候不成交  


--  作者:jinzhe
--  发布时间:2016/12/29 17:30:16
--  

variable:n=0;

a1:=(REF(O,1) + REF(C,1)) / 2;
a2:=(H + L + C) / 3;
a3:=MAX(MAX(a1,a2),H);
a4:=MIN(MIN(a1,a2),L);
a5:=IF(a1 < a2,a3 - a4 + a2 - a1,a3 - a4);
a6:=IF(a1 > a2,a3 - a4 + a1 - a2,a3 - a4);
a7:=a5 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
a8:=a6 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
a9:=(a7 - a8) * 2.5;
tj1:=a9>0;
pc:=a9<0;

做多力度:=SMA((CLOSE - LLV(LOW,9)) / (HHV(HIGH,9) - LLV(LOW,9)) * 100,5,1) - 8;
做空力度:=SMA((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36)) * 100,2,1);
多空差:=做多力度-做空力度;
tj2:=多空差>0;

aa1:=(C - LLV(L,7)) / (HHV(H,7) - LLV(L,7)) * 100;

aa2:=(C - LLV(L,38)) / (HHV(H,38) - LLV(L,38)) * 100;
小:=SMA(aa2,5,2);
大:=SMA(小,10,1);

tj3:=小>大;

if tj2 then n:=n+1;


if  tj1 and cross(n=1,0.5) and tj3 and holding=0 then begin 
 buy(holding=0,1,marketr);
 end
if pc then begin
sell(1,0,marketr);
end

if time=closetime(0) then n:=0;


--  作者:曹晓东
--  发布时间:2016/12/29 17:33:33
--  
为什么不准呢   好多没有开单呀
--  作者:曹晓东
--  发布时间:2016/12/29 21:55:44
--  

variable:n=0,m=0;

a1:=(REF(O,1) + REF(C,1)) / 2;
a2:=(H + L + C) / 3;
a3:=MAX(MAX(a1,a2),H);
a4:=MIN(MIN(a1,a2),L);
a5:=IF(a1 < a2,a3 - a4 + a2 - a1,a3 - a4);
a6:=IF(a1 > a2,a3 - a4 + a1 - a2,a3 - a4);
a7:=a5 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
a8:=a6 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
a9:=(a7 - a8) * 2.5;
tj1:=a9>=0;
pc:=a9<0;
pc1:=a9>0;
tj11:=a9<0;

 

 


做多力度:=SMA((CLOSE - LLV(LOW,9)) / (HHV(HIGH,9) - LLV(LOW,9)) * 100,5,1) - 8;
做空力度:=SMA((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36)) * 100,2,1);
多空差:=做多力度-做空力度;
tj2:=多空差>=0;
tj22:=多空差<0;

 

 


aa1:=(C - LLV(L,7)) / (HHV(H,7) - LLV(L,7)) * 100;

aa2:=(C - LLV(L,38)) / (HHV(H,38) - LLV(L,38)) * 100;
小:=SMA(aa2,5,2);
大:=SMA(小,10,1);

tj3:=小>大;
tj33:=小<=大;

if tj2 then n:=n+1;
if tj22 then m:=m+1;

if  tj1 and cross(n=1,0.5) and tj3 and holding=0 then begin 
 buy(holding=0,1,marketr);
 end
if pc then begin
sell(holding>0,1,marketr);
end

if time=closetime(0) then n:=0;

if  tj11 and cross(m=-1,0.5) and tj33 and holding=0 then begin 
 buyshort(holding=0,1,thisclose);
 end
if pc1 then begin
sellshort(holding<0,1,thisclose);
end
if time=closetime(0) then m:=0;

 

这段代码有两个问题;

1、信号不全,个别符合情况会出现开单信号,多数不开。

2、空单不开。

麻烦改一下。


--  作者:jinzhe
--  发布时间:2016/12/30 8:46:31
--  

发个截图说明一下上面所讲的情况


--  作者:曹晓东
--  发布时间:2016/12/30 8:58:42
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20161230085827.png
图片点击可在新窗口打开查看

--  作者:jinzhe
--  发布时间:2016/12/30 9:15:29
--  
每天的第一次?
--  作者:曹晓东
--  发布时间:2016/12/30 9:24:53
--  
不是  是从0轴之下到0轴之上的第一次。
--  作者:jinzhe
--  发布时间:2016/12/30 9:37:32
--  
a1:=(REF(O,1) + REF(C,1)) / 2;
a2:=(H + L + C) / 3;
a3:=MAX(MAX(a1,a2),H);
a4:=MIN(MIN(a1,a2),L);
a5:=IF(a1 < a2,a3 - a4 + a2 - a1,a3 - a4);
a6:=IF(a1 > a2,a3 - a4 + a1 - a2,a3 - a4);
a7:=a5 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
a8:=a6 / (a5 + a6) * AMOUNT * MAX(ABS(a1 - a2) / (a3 - a4),0.15) / 10000;
a9:=(a7 - a8) * 2.5;
tj1:=a9>0;
pc:=a9<0;

做多力度:=SMA((CLOSE - LLV(LOW,9)) / (HHV(HIGH,9) - LLV(LOW,9)) * 100,5,1) - 8;
做空力度:=SMA((HHV(HIGH,36) - CLOSE) / (HHV(HIGH,36) - LLV(LOW,36)) * 100,2,1);
多空差:=做多力度-做空力度;
tj2:=cross(多空差,0);

aa1:=(C - LLV(L,7)) / (HHV(H,7) - LLV(L,7)) * 100;

aa2:=(C - LLV(L,38)) / (HHV(H,38) - LLV(L,38)) * 100;
小:=SMA(aa2,5,2);
大:=SMA(小,10,1);

tj3:=小>大;


if  tj1 and tj2 and tj3 and holding=0 then begin 
 buy(holding=0,1,marketr);
 end
if pc then begin
sell(1,0,marketr);
end

 

 

那你应该讲第一次大于0,不是第一次上穿,

修改的地方加粗变色了


--  作者:曹晓东
--  发布时间:2016/12/30 9:59:38
--  

ok

 

3q