
等级: 标准版
- 注册:
- 2023-2-16
- 曾用名:
|
您好老师。
我自己写了一个模型,就在【动态止盈】这个地方,加了【 历时:=ENTERBARS>5;】这个条件,还是出现 1个K线上又开仓又平仓的情况。
麻烦老师给看看, 是哪里写错了? 如附图,或看白银1分钟。
XD:=1 ;//这里修改开仓的数量;
//==================================================================================================================================================
N:=20;
VAR1:=MA((VOL-REF(VOL,1))/REF(VOL,1),5);
VAR2:=(CLOSE-MA(CLOSE,24))/MA(CLOSE,24)*100;
MY:= VAR2*(1+VAR1);
SHT:= MY, COLORSTICK;
MASHT:= MA(SHT,N);
//==================================================================================================================================================
//交易时段
//开仓:每个交易日有四个时段开盘,分别是:晚上21点、早上9点、早上10点30分与下午13点30分,这些所有的开盘,前15钟均都不进行交易,15钟后才开始上面的操作进行交易。
//平仓:每个交易日有四个时段收盘,收盘前2分钟,必须平掉所有仓位,不管是多单还是空单!
//具体有效交易时段说明:
//---晚上:21点05分至凌晨2点58分
//---早上第一段:9点05分至10点13分结束
//---早上第二段:10点35分到11点28分结束
//---下午:13点35分到14点58分结束
TT001:=TIME>=TIMEZONECONVER(210500) AND TIME<TIMEZONECONVER(225800);
TT441:=TIME>=TIMEZONECONVER(225800) AND TIME<TIMEZONECONVER(230500);
TT002:=TIME>=TIMEZONECONVER(090500) AND TIME<TIMEZONECONVER(101300);
TT442:=TIME>=TIMEZONECONVER(101300) AND TIME<TIMEZONECONVER(102500);
TT003:=TIME>=TIMEZONECONVER(103500) AND TIME<TIMEZONECONVER(112800);
TT443:=TIME>=TIMEZONECONVER(112800) AND TIME<TIMEZONECONVER(115000);
TT004:=TIME>=TIMEZONECONVER(133500) AND TIME<TIMEZONECONVER(145800);
TT444:=TIME>=TIMEZONECONVER(145800) AND TIME<TIMEZONECONVER(151000);
//==================================================================================================================================================
//一、只做多不做空
//开仓条件:
//SHT由零轴下方(负值)向上上穿零轴到上方,且数值大于等于 0.03 时(正值),开多单。每当触上面条件,就开多单!
//动态追踪止赢止损
//规则:浮动价差止损为15个最小变动单位(也就是15跳)。
//一、只做空不做多
//开仓条件:
//SHT值由零轴上方(正值)向下下穿零轴到下方,且数值大于等于- 003时(负值),开空单。盘中每当触上面条件,就开空单!
//动态追踪止赢止损
//规则:浮动价差止损为15个最小变动单位(也就是15跳)。
MS:=15;
NS:=14;
PS:=13;
BKHIGH:=hhv(high,ENTERBARS);
SKLOW:=LLV(low,ENTERBARS);
历时:=ENTERBARS>5;
动态止盈:=历时 AND (CLOSE<ENTERPRICE-MS*MINDIFF+INTPART((BKHIGH-ENTERPRICE)/NS*MINDIFF)*PS);
//-------------------【晚上时间段】-------------------
开多AA:=TT001 AND (SHT>0 AND CROSS(SHT,0.03)) ;//开多OK
平多AA:=TT001 AND (SHT<0 ) ;//平仓
JT平多AA:=TT001 AND 动态止盈;//动态止盈
晚上多: BUY(开多AA AND HOLDING=0,xd,THISCLOSE); //开多信号
//晚平多:SELL(平多AA AND HOLDING>0,XD,THISCLOSE); //平多信号
晚动平多:SELL(JT平多AA AND HOLDING>0,XD,THISCLOSE); //平多信号
//-------------------------------
{
开空AA:=TT001 AND (SHT<0 AND CROSS(-0.03,SHT)) ;//开空OK
平空AA:=TT001 AND (SHT>0 ) ;//平仓
JT平空:=TT001 AND (CLOSE>ENTERPRICE+MS*MINDIFF-INTPART((ENTERPRICE-SKLOW )/NS*MINDIFF)*PS);
晚上空: BUYSHORT(开空AA AND HOLDING=0,XD,THISCLOSE); //开空信号
//晚平空:SELLSHORT(平空AA AND HOLDING<0,XD,THISCLOSE); //平空信号
晚动平空:SELLSHORT(平空AA AND HOLDING<0,XD,THISCLOSE); //平空信号
}
//-------------------【上午第一段】-------------------
开多BB:=TT002 AND (SHT>0 AND CROSS(SHT,0.03)) ;//开多OK
平多BB:=TT002 AND (SHT<0 ) ;//平仓
JT平多BB:=TT002 AND 动态止盈;//动态止盈
上1多: BUY(开多BB AND HOLDING=0,xd,THISCLOSE); //开多信号
//上1平多:SELL(平多BB AND HOLDING>0,XD,THISCLOSE); //平多信号
上1动平多:SELL(JT平多BB AND HOLDING>0,XD,THISCLOSE); //平多信号
//-------------------【上午第二段】-------------------
开多CC:=TT003 AND (SHT>0 AND CROSS(SHT,0.03)) ;//开多OK
平多CC:=TT003 AND (SHT<0 ) ;//平仓
JT平多CC:=TT003 AND 动态止盈;//动态止盈
上2多: BUY(开多CC AND HOLDING=0,xd,THISCLOSE); //开多信号
//上2平多:SELL(平多CC AND HOLDING>0,XD,THISCLOSE); //平多信号
上2动平多:SELL(JT平多CC AND HOLDING>0,XD,THISCLOSE); //平多信号
//-------------------【下午时间段】-------------------
开多DD:=TT004 AND (SHT>0 AND CROSS(SHT,0.03)) ;//开多OK
平多DD:=TT004 AND (SHT<0 ) ;//平仓
JT平多DD:=TT004 AND 动态止盈;//动态止盈
下午多: BUY(开多DD AND HOLDING=0,xd,THISCLOSE); //开多信号
//下午平多:SELL(平多DD AND HOLDING>0,XD,THISCLOSE); //平多信号
下午动平多:SELL(JT平多DD AND HOLDING>0,XD,THISCLOSE); //平多信号
//==================================================================================================================================================
VERTLINE(time=TIMEZONECONVER(210100),0 ,0,COLORYELLOW ,LineThick0 ,0 );//分割垂线;
VERTLINE(time=TIMEZONECONVER(090100),0 ,0,COLORWHITE ,LineThick0 ,0 );//分割垂线;
VERTLINE(time=TIMEZONECONVER(103100),0 ,0,COLORWHITE ,LineThick0 ,0 );//分割垂线;
VERTLINE(time=TIMEZONECONVER(133100),0 ,0,COLORWHITE ,LineThick0 ,0 );//分割垂线;
//==================================================================================================================================================
TT4444:=TT441 OR TT442 OR TT443 OR TT444;
到点平空:SELLSHORT(TT4444 AND HOLDING<0,XD,THISCLOSE); //每个时间段提前2分钟全平;
到点平多:SELL(TT4444 AND HOLDING>0,XD,THISCLOSE); //每个时间段提前2分钟全平;
//==================================================================================================================================================
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?
x
|