一、小调大,15分钟周期,走完K线,提前5秒下单。
如果平仓反手的条件满足,那么平仓指令发出后,开仓指令中的“THOLDING2=0”是否会立即生效,并顺利的开仓?
//平多
IF (TBUYHOLDING(0)>0 AND 日内仓平多条件) OR (开空条件1) THEN TSELL(THOLDING2>0,0,MKT);
//平空
IF (TSELLHOLDING(0)>0 AND 日内仓平空条件) OR (开多条件1) THEN TSELLSHORT(THOLDING2<0,0,MKT);
//开多
IF 开多条件1 or 开多条件2 THEN TBUY(THOLDING2=0,1,MKT);
//开空
IF 开空条件1 or 开空条件2 THEN TBUYSHORT(THOLDING2=0,1,MKT);
二、因系统止损和我的要求不一致,所以自建了一个止损公式,固定1秒轮询。
请问,能否与上述15分钟周期、走完K线模式的开平仓公式一起使用?
//多单浮动止损
IF DYNAINFO(7)<=多单止损价 THEN TSELL(THOLDING2>0,0,MKT);
//空单浮动止损
IF DYNAINFO(7)>=空单止损价 THEN TSELLSHORT(THOLDING2<0,0,MKT);
1.这个tholding2不会受未成交单的影响,就算平仓单不成交,那么tholding2也看做平掉了
2.固定轮询和走完k线提前混用,那么就不能在用系统设置来实现了,需要用代码来实现走完k线提前下单功能
可以看看论坛里面的阿火秘籍第8条,有讲到如何实现
1、也就是说,当平仓的指令发出时,THOLDING2就已经变成0了,而不是要等到平仓的动作完成时才变化?
因为在其他帖子里看到后台程序化的执行速度要远高于成交及回报的速度,所以担心平仓还未执行完,指令就已经执行到下面的开仓判断。如果这时THOLDING不等于0的话,会导致开仓不成功。
2、用代码实现固定轮询和走完k线提前混用,请帮忙看看以下的指令是否有问题?是否要加上REF的条件?
ABB:=(time0-timetot0(dynainfo(207))<=5) or not(islastbar);
//平多
IF (DYNAINFO(7)<=多单止损价) OR (((TBUYHOLDING(0)>0 AND 日内仓平多条件) OR (隔日仓开空条件1)) AND ABB) THEN TSELL(THOLDING2>0,0,MKT);
//平空
IF (DYNAINFO(7)>=空单止损价) OR (((TSELLHOLDING(0)>0 AND 日内仓平空条件) OR (隔日仓开多条件1)) AND ABB) THEN TSELSHORT(THOLDING2>0,0,MKT);
//开多
IF (开多条件1 OR 开多条件2) AND ABB THEN TBUY(THOLDING2=0,1,MKT);
//开空
IF (开空条件1 OR 开空条件2) AND ABB THEN TBUYSHORT(THOLDING2=0,1,MKT);
固定轮询和走完k线提前下单的混用,是用于外盘。
内盘只需要用到走完K线和系统的提前下单功能就可以了。
1.ABB:=(time0-timetot0(dynainfo(207))<=5) ;
后台不需要加上 not(islastbar)的条件
2.走完k线提前下单不需要加ref,而走完k线才需要用ref
走完k线提前下单,这样写就可以了
IF (开多条件1 OR 开多条件2) AND ABB THEN TBUY(THOLDING2=0,1,MKT);
1.ABB:=(time0-timetot0(dynainfo(207))<=5) ;
后台不需要加上 not(islastbar)的条件
2.走完k线提前下单不需要加ref,而走完k线才需要用ref
走完k线提前下单,这样写就可以了
IF (开多条件1 OR 开多条件2) AND ABB THEN TBUY(THOLDING2=0,1,MKT);
"走完k线提前下单",是指:用代码实现固定轮询和走完k线提前下单的混用?
可能是我没说清楚,“一、小调大,15分钟周期,走完K线,提前5秒下单”,是利用系统自带的提前下单功能,这时应该是不需要加ABB的吧?
问题是如你所说的:不能有2个后台程序(1个固定轮询,1个走完k线),针对同一品种进行程序化交易,这时需要代码来实现。
设计的代码如下,只写了多单的开平仓,请帮忙看下:
//小周期调用大周期,15分钟周期,固定2秒间隔
ABB:=(time0-timetot0(dynainfo(207))<=5);//这里不需要"or not(islastbar)"?
//多单浮动止损
IF DYNAINFO(7)<=多单止损价 THEN TSELL(THOLDING2>0,0,MKT);//浮动止损平多,按固定2秒间隔,达到止损价格立即平仓
//技术指标平多
IF ((TBUYHOLDING(0)>0 AND 日内仓平多条件) OR (隔日仓开空条件1)) AND ABB THEN TSELL(THOLDING2>0,0,MKT);//技术指标平多,按15分钟周期,提前5秒下单,技术指标中没有加REF
//技术指标开多
IF (开多条件1 OR 开多条件2) AND ABB THEN TBUY(THOLDING2=0,1,MKT);//技术指标开多,按15分钟周期,提前5秒下单,技术指标中没有加REF
1.如果只要实现走完k线提前下单,那么用系统的功能是可行
2.但是如果还有你下面的要求比如2秒轮询即时止损的,那么就不能用系统自带的那个了,用前面的那种代码表达方式,
在固定轮询下实现走完k线模式要加ref,在固定轮询模式下实现走完k线提前下单不需要加ref