希望有空帮解决下固定轮询的问题,下面的开仓条件一般是用于5分钟以上的,回测效果很好,但实盘无法接近我的构想,效果变得很差;
设计思路是:信号线出来以后(满足开多开空条件,比如某种CROSS),下一个K线突破前高或者前低就以市价入场(不突破则忽略该线),人盯手工是可以做到的,但模拟账户图表程序化实盘的话都是在K线走完才交易 ,实际是以下一个线的OPEN才成交;
这样,其实晚了一个关键的突破K线,所以回测的大盈利系统变成了亏损系统,我试过,如果改成信号线出来,以下一K的OPEN入场则信号过多,根据论坛老师建议,如果开仓条件加上AND c<=(REF(LOW,1) -INTPART(REF(close,1)*3/10000)REF(close,1)*3/10000)//以开空为例,实际还是在下一K的OPEN入场。
比如改成5分线,1分钟轮询该怎么做呢?
(其实我在恒指里需要1分钟线及实时的轮询)
此外,平空和平用的收盘价没有问题。
SELLSHORT(PK,0,THISCLOSE);
BUY( KD and holding=0,1,LIMITR,(REF(high,1) +INTPART(REF(close,1) *3/10000)));
SELL(PD,0,THISCLOSE);
BUYSHORT ( KK and holding=0,1,LIMITR,(REF(LOW,1) -INTPART(REF(close,1)*3/10000)));
模拟白银中:观测现持有两单在手多空各一张,图表有信号但没有平仓,THISCLOSE的问题么?这里是每5秒的一个CLOSE吧?这不是我的初衷啊。
接着另一个问题,不是开仓要求有holding=0语句么怎么又开了一个空单?共2张了
平仓条件是以CLOSE为必要条件的,出现了信号闪烁如图,4330左边黄色点的K线平仓了,然而信号线后面才给出。是不是改成HIGH或 什么?
pk:= close>止损 S1 or ( cross(close,平仓线) )or all(cross(close,平仓线),3);

此主题相关图片如下:4330.jpg

可以改成high
另外BUYSHORT ( KK and holding=0,1,LIMITR,low<=(REF(LOW,1) -INTPART(REF(close,1)*3/10000)))
你这条语句是何意?limitr后面跟的是自己制定一个价格,您这边这个完全没明白用一个判断表达式是为了?
应用后图表无信号,已改;或者是不是轮询+MARTET呢?LIMITR的优价可能不成交么,但昨晚观察是平仓(CLOSE条件)没成交;比如图表1分钟K采用10秒或6秒轮询,3分钟采用30秒,诸如此类;收盘的CLOSE变成了固定时间间隔和原来走完K线矛盾了
首先,固定时间间隔和走完根k两种方式,你程序化检测信号的方式。如果想触发信号后立即成交就是固定时间间隔。
至于市价MARTET,是保证成交速度,但是价格不好控制,而限价LIMITR是牺牲成交时间保证成交价格。(优于你设定的价格成交)
close其实就是k线最新价。
[此贴子已经被作者于2016-9-27 9:18:28编辑过]
轮询模拟实测中,为什么交易状态小窗显示已成交,而持仓没有,成交明细也没有呢?
这个你要看下交易日志中的记录。另外是K线上是否触发了信号,