以文本方式查看主题

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

--  作者:GUAN666
--  发布时间:2018/3/30 21:41:46
--  修改程序化模型

老师你好!

麻烦帮忙修改下面那个代码成金字塔程序化交易模型。

出现买信号平仓空单反开手多,出现卖信号平仓多单反手开空单,多单的止损放在下单前3根K线的最低点,空单的止损放在下单前3根K线的最高点。

VAR3:=(CLOSE-MA(CLOSE,6))/MA(CLOSE,6)*100;
VAR4:=(CLOSE-MA(CLOSE,24))/MA(CLOSE,24)*100;
VAR5:=(CLOSE-MA(CLOSE,32))/MA(CLOSE,32)*100;
VAR6:=(VAR3+VAR4+VAR5)/3;
VAR7:=EMA(VAR6,5);
指标:=EMA(EMA(VAR3,5),5)*3, COLORSTICK;
VAR8:=IF(VAR6<=-20,10,0);
VAR9:=HHV(VAR8,10);
STICKLINE(VAR8=10,20,10,5,0),COLOR6666FF;
VARA:=IF(VAR9 AND CROSS(MA(CLOSE,3),MA(CLOSE,5)),20,0);
K:EMA(VAR7,5)*2, , COLORFF00FF;
D:EMA(K,5), , colorwhite;
J:K*3-D*2, ,coloryellow;
VARB:=BETWEEN(CLOSE,MA(CLOSE,3),MA(CLOSE,5)) AND J>10;
换手:=VOL/CAPITAL*100, , colorgreen;
成交〖万手〗:=VOL/10000, , coloryellow;
DRAWTEXT(VARA=20,15,\'底部\'),LINETHICK1,colorwhite;
STICKLINE((VARA=20),0,10,5,0),colorwhite;
买:=(ZIG(3,5)>REF(ZIG(3,5),1)) AND (REF(ZIG(3,5),1)<=REF(ZIG(3,5),2)) AND (REF(ZIG
(3,5),2)<=REF(ZIG(3,5),3));
卖:=(ZIG(3,5)<REF(ZIG(3,5),1)) AND (REF(ZIG(3,5),1)>=REF(ZIG(3,5),2)) AND (REF(ZIG
(3,5),2)>=REF(ZIG(3,5),3));
STICKLINE((买=1),(-10),0,1,0),COLOR0000FF;
DRAWTEXT((买=1),(-12),\'买\'),COLOR0000FF;
STICKLINE((卖=1),10,0,1,0),COLOR00FF00;
DRAWTEXT((卖=1),19,\'卖\'),COLOR00FF00;
VARE:=MA(100*(CLOSE-LLV(CLOSE,34))/(HHV(HIGH,34)-LLV(LOW,34)),5)-20;
VARF:=100-3*SMA((CLOSE-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1)+2*SMA(SMA
((CLOSE-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1),15,1);
VAR10:=100-3*SMA((OPEN-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1)+2*SMA(SMA
((OPEN-LLV(LOW,75))/(HHV(HIGH,75)-LLV(LOW,75))*100,20,1),15,1);
VAR11:=VARF<REF(VAR10,1) AND VOL>REF(VOL,1) AND CLOSE>REF(CLOSE,1);
DRAWTEXT(VAR11 AND COUNT(VAR11,30)=1,15,\'大资金活动\'),LINETHICK1,COLORFF00FF;
STICKLINE(VAR11 AND COUNT(VAR11,30)=1,1,10,5,0),COLORFF00FF;
VAR12:=(HIGH+LOW+CLOSE)/3;
VAR13:=(VAR12-MA(VAR12,14))/(0.015*AVEDEV(VAR12,14));
VAR14:=(VAR12-MA(VAR12,70))/(0.015*AVEDEV(VAR12,70));
VAR15:=IF(VAR13>=150 AND VAR13<200 AND VAR14>=150 AND VAR14<200,10,0);
VAR16:=IF(VAR13<=-150 AND VAR13>-200 AND VAR14<=-150 AND VAR14>-200,-10,VAR15);
VAR17:=(CLOSE-MA(CLOSE,13))/MA(CLOSE,13)*100;
VAR18:=100-ABS(VAR17);
VAR19:=IF(VAR18<90,VAR18,100);
VAR1A:=IF(VARE>0,VARE,0);
VAR1B:=IF(VAR14>=200 AND VAR13>=150,15,IF(VAR14<=-200 AND VAR13<=-150,-15,VAR16))+60;
VAR1C:=VAR1A>48 AND VAR1B>60 AND VAR19<100;
DRAWTEXT(VAR1C AND COUNT(VAR1C,30)=1,15,\'大笔出货\'),LINETHICK1,COLORFFCC66;
STICKLINE(VAR1C AND COUNT(VAR1C,30)=1,0,10,5,0),COLORFFCC66;


--  作者:wenarm
--  发布时间:2018/4/1 21:04:42
--  
if 买=1 then begin
 SELLSHORT(holding<0,1,MARKET);
 buy(holding=0,1,MARKET);
end
if 卖=1 then begin
 SELL(holding>0,1,MARKET);
 buySHORT(holding=0,1,MARKET);
end
if ref(low,ENTERBARS+3)>close and HOLDING>0 then begin
 SELL(1,1,MARKET);
end
if ref(HIGH,ENTERBARS+3)>close and  HOLDING<0 then begin
 SELLshort(1,1,MARKET);
end
[此贴子已经被作者于2018/4/1 21:04:55编辑过]

--  作者:GUAN666
--  发布时间:2018/4/2 12:13:38
--  
老师你好,测试结果,好多开仓了就平仓了,并没有达到模型设置的止损条件,这是什么原因
--  作者:FireScript
--  发布时间:2018/4/2 15:12:26
--  
那个很可能是开仓当根K就满足了出场条件。你可以把开平仓条件都输出下。