以1000为坐标轴,然后每隔30跳分别向上,向下划线,划n条
这样描述可以吗?
画线过程中是可以在右侧价格轴上看到当前线所在价格位置的,这样就能把线画在自己想要的价格上了。
如果代码实现,n必须是个定值。也就是说多个价格层要固定好。
下面是3根的条件。close上穿下穿他们的范例
CSZ:1000;
S1:100+1*30*MINDIFF;
X1:100-1*30*MINDIFF;
//上穿和下破1000
IF CROSS(CLOSE,CSZ)=1 THEN BEGIN
BUY(HOLDING=0,1,MARKET);
END
IF CROSS(CSZ,CLOSE)=1 THEN BEGIN
sell(HOLDING>0,1,MARKET);
END
//上穿和下破1000+30个点
IF CROSS(CLOSE,S1)=1 THEN BEGIN
BUY(HOLDING=0,1,MARKET);
END
IF CROSS(S1,CLOSE)=1 THEN BEGIN
sell(HOLDING>0,1,MARKET);
END
//上穿和下破1000-30个点
IF CROSS(CLOSE,X1)=1 THEN BEGIN
BUY(HOLDING=0,1,MARKET);
END
IF CROSS(X1,CLOSE)=1 THEN BEGIN
sell(HOLDING>0,1,MARKET);
END
我还想加入其他条件,每天早上九点开始,下午两点结束,每天盈利,亏损50跳停止交易
VARIABLE:mark:=1;//全局变量控制交易开关
CSZ:3586;//基准线
S1:CSZ+1*30*MINDIFF;
X1:CSZ-1*30*MINDIFF;
tcd:time>=130000 and time<180000;//交易的时间段限制
//上穿和下破1000
if TODAYBAR=1 then mark:=1;//如果是当日第一个K 重置全局变量为1 以开启交易
IF CROSS(CLOSE,CSZ)=1 THEN BEGIN
BUY(HOLDING=0 and tcd and mark,1,MARKET);
END
IF CROSS(CSZ,CLOSE)=1 THEN BEGIN
sell(HOLDING>0 and tcd and mark,1,MARKET);
END
//上穿和下破1000+30个点
IF CROSS(CLOSE,S1)=1 THEN BEGIN
BUY(HOLDING=0 and tcd and mark,1,MARKET);
END
IF CROSS(S1,CLOSE)=1 THEN BEGIN
sell(HOLDING>0 and tcd and mark,1,MARKET);
END
//上穿和下破1000-30个点
IF CROSS(CLOSE,X1)=1 THEN BEGIN
BUY(HOLDING=0 and tcd and mark,1,MARKET);
END
IF CROSS(X1,CLOSE)=1 THEN BEGIN
sell(HOLDING>0 and tcd and mark,1,MARKET);
END
if abs(c-AVGENTERPRICE)>=50*MINDIFF and holding<>0 then //执行盈亏平仓
begin
盈亏平仓:sell(HOLDING>0,holding,market);
mark:=0;//盈亏平仓时 重置控制变量
end
调整CSZ的值作为画线基准位置。然后如果要增加档位。再增加线就行了
S1:CSZ+1*30*MINDIFF;
X1:CSZ-1*30*MINDIFF;
S2:CSZ+2*30*MINDIFF;
X2:CSZ-2*30*MINDIFF;
.....
.....
同时也要按每增加一档 增加2对开平语句:
IF CROSS(CLOSE,S2)=1 THEN BEGIN
BUY(HOLDING=0 and tcd,1,MARKET);
END
IF CROSS(S2,CLOSE)=1 THEN BEGIN
sell(HOLDING>0 and tcd,1,MARKET);
END
IF CROSS(CLOSE,X2)=1 THEN BEGIN
BUY(HOLDING=0 and tcd,1,MARKET);
END
IF CROSS(X2,CLOSE)=1 THEN BEGIN
sell(HOLDING>0 and tcd,1,MARKET);
END
[此贴子已经被作者于2020/1/17 10:04:01编辑过]