T2&&A>B,BK(LOTS);
老师,请把这两句加上时间控制,能应用到任何周期(日以下周期就行)、任何合约中(可能是有夜盘也可能没有夜盘的合约。)
1、开盘后半小时、收盘前半小时不开仓,但不影响平仓
参考:
T1&&A<B&&CLOSEMINUTE>30&&(TIME<2130||TIME<1000)&&PERIOD<=8,SK(LOTS);//空开仓
T2&&A>B&&CLOSEMINUTE>30&&(TIME<2130||TIME<1000)&&PERIOD<=8,BK(LOTS);
老师,加载后结果不对,请老师帮忙审核一下
T1:=C<=REF(L,1);
T2:=C>=REF(H,1);
T1&&CLOSEMINUTE>30&&(TIME<2130||TIME<1000)&&PERIOD<=8,SK(2);//空开仓
T2&&CLOSEMINUTE>30&&(TIME<2130||TIME<1000)&&PERIOD<=8,BK(2);
限制开盘后30分钟后交易,需要限制下开盘的时间,国内夜盘合约和非夜盘合约给您做了处理,参考:
T1:=C<=REF(L,1);
T2:=C>=REF(H,1);
N:=VALUEWHEN(DAYBARPOS=1,TIME)=2100;
M:=VALUEWHEN(DAYBARPOS=1,TIME)=0930;
SS:=N&&NOT(TIME>=2100&&TIME<2130)||(M&&NOT(TIME>=0930&&TIME<1000));
T1&&CLOSEMINUTE>30&&SS&&PERIOD<=8,SK(2);//空开仓
T2&&CLOSEMINUTE>30&&SS&&PERIOD<=8,BK(2);
不是问题的
您的模型中没有平仓条件,所以开仓后仓位没平掉是不能再出新信号的
这样修改看下效果:
T1:=C<=REF(L,1);
T2:=C>=REF(H,1);
N:=VALUEWHEN(DAYBARPOS=1,TIME)=2100;
M:=VALUEWHEN(DAYBARPOS=1,TIME)=0930;
SS:=N&&NOT(TIME>=2100&&TIME<2130)||(M&&NOT(TIME>=0930&&TIME<1000));
T1&&CLOSEMINUTE>30&&SS&&PERIOD<=8,SPK(2);//空开仓
T2&&CLOSEMINUTE>30&&SS&&PERIOD<=8,BPK(2);
去掉PERIOD限制,如下:
这个模型是不适用日线周期的,因为要实现开盘后30分钟不开仓,需要用TIME函数取值控制,
但是在日线上TIME取值恒定为1500,所以日线上不适用的。
T1:=C<=REF(L,1);
T2:=C>=REF(H,1);
N:=VALUEWHEN(DAYBARPOS=1,TIME)=2100;
M:=VALUEWHEN(DAYBARPOS=1,TIME)=0930;
SS:=N&&NOT(TIME>=2100&&TIME<2130)||(M&&NOT(TIME>=0930&&TIME<1000));
T1&&CLOSEMINUTE1>30&&SS,SPK(2);//空开仓
T2&&CLOSEMINUTE1>30&&SS,BPK(2);
MULTSIG(0,0,3,0);
跟您说明下,CLOSEMINUTE函数是用来限制距离收盘30分钟不开仓的
如果模型中加入指令价函数MULTSIG,那么用CLOSEMINUTE1;如果不含指令价函数就用CLOSEMINUTE
您可以选中该函数右键函数说明中了解下用法
楼上模型修改参考:
T1:=C<=REF(L,1);
T2:=C>=REF(H,1);
SS:=NOT(TIME>=2100&&TIME<2130)||NOT(TIME>=0900&&TIME<0930);
T1&&SS&&CLOSEMINUTE>30,SK(2);//空开仓
T2&&SS&&CLOSEMINUTE>30,BK(2);
TRADE_AGAIN(4);
C<=MA(C,60),SP(BKVOL);
C>=MA(C,60),BP(SKVOL);