下面是一个dt程序,目前是T+0,需要修改成T+1:开仓原则是:碰到上轨就以上轨的价格开多单。
平仓原则是:T+1日后,碰到下轨就以下轨的价格平仓。
这个原来是做期货,我想用来做股票,只能T+1,请金字塔的老师帮助一下,谢谢!
INPUT:M1(0.5,0.1,0.5,0.01),M2(0.5,0.1,0.5,0.01),ss(0,0,100000000,1);//参数值
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收
今日开盘价:=Valuewhen(date<>ref(date,1),open);
S1:=max(昨收-昨低,昨高-昨收);//中间变量
S:=max(昨收*0.008,S1);//中间变量
上轨:今日开盘价+M1*S;//求上轨
下轨:今日开盘价-M2*S;//求下轨
手数:=SS;
//条件
开仓条件:=high>=上轨 ;//开多条件
平仓条件:=low<=下轨 ;//平仓条件
//交易系统
IF TIME>090000 AND HOLDING = 0 THEN BEGIN
开多:=BUY(开仓条件 ,手数,LIMITR,上轨);
开仓日期:=date;
END
IF HOLDING > 0 THEN BEGIN
平仓:=sell(平仓条件 ,手数,LIMITR,下轨);
END
INPUT:M1(0.5,0.1,0.5,0.01),M2(0.5,0.1,0.5,0.01),ss(0,0,100000000,1);//参数值
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收
今日开盘价:=Valuewhen(date<>ref(date,1),open);
S1:=max(昨收-昨低,昨高-昨收);//中间变量
S:=max(昨收*0.008,S1);//中间变量
上轨:今日开盘价+M1*S;//求上轨
下轨:今日开盘价-M2*S;//求下轨
手数:=SS;
//条件
开仓条件:=high>=上轨 ;//开多条件
平仓条件:=low<=下轨 ;//平仓条件
//交易系统
IF TIME>090000 AND HOLDING = 0 THEN BEGIN
开多:=BUY(开仓条件 ,手数,LIMITR,上轨);
开仓日期:=date;
END
IF ref(HOLDING,todaybar) > 0 THEN BEGIN
平仓:=sell(平仓条件 ,ref(holding,todaybar),LIMITR,下轨);
END
INPUT:M1(0.5,0.1,0.5,0.01),M2(0.5,0.1,0.5,0.01),ss(0,0,100000000,1);//参数值
昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);//昨高
昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);//昨低
昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1);//昨收
今日开盘价:=Valuewhen(date<>ref(date,1),open);
S1:=max(昨收-昨低,昨高-昨收);//中间变量
S:=max(昨收*0.008,S1);//中间变量
上轨:今日开盘价+M1*S;//求上轨
下轨:今日开盘价-M2*S;//求下轨
手数:=SS;
//条件
开仓条件:=high>=上轨 ;//开多条件
平仓条件:=low<=下轨 ;//平仓条件
//交易系统
IF TIME>090000 AND HOLDING = 0 THEN BEGIN
开多:=BUY(开仓条件 ,手数,LIMITR,上轨);
开仓日期:=date;
END
rr:=ref(holding,todaybar);
IF ref(HOLDING,todaybar) > 0 THEN BEGIN
平仓:=sell(平仓条件 ,rr,LIMITR,下轨);
END
已修改
非常感谢你们的劳动,谢谢!
我刚刚加载了,发现多了很多白色箭头,不是开平仓信号,怎么去掉这些动东东?
已经解决了,你们的服务很好,再次感谢!
最后再问一个问题,这个程序我加载399006与399905上面有信号,但加载在399005上就没有信号,其他上证指数000001加了也没有,这是什么原因?