问好!
自己编了一个固定轮询的图表程序化公式,但在模拟测试时,由于在一个周期内信号闪烁,正常应该是按照公式多次开平仓的,但可能是由于程序原因,在一个周期内除了第一次操作能够被执行外,第二次以后的开平仓操作都没有反应,想问一下,如何能够在一个周期内多次开平仓?不考虑其他问题,只要求按照程序提示开平仓?
谢谢!
信号闪烁本身就会不断的开平仓。这个本身就是一个不正常的逻辑
为什么我在图表程序化下使用模拟盘却没有反复开平仓呢?
软件有自动过滤功能么?
谢谢!
下面是我的测试代码,相当于每隔几秒就开平一次,使用固定轮询的高频交易,但只开了一个空和一个多就没有反应了~
我理解这段代码应该是闪烁的信号,应该是频繁的开平仓的~
帮忙看看,谢谢!
ttt:mod (CURRENTTIME,19),nodraw;
KD:=ttt=1; //开多条件
PD:=ttt=5; //平多条件
KK:=ttt=10; //开空条件
PK:=ttt=15; //平空条件
平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号
平多:SELL(PD,1,THISCLOSE); //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号
还有个图,可供参考。

此主题相关图片如下:2016-12-22 22-03-11.png

下面是我的测试代码,相当于每隔几秒就开平一次,使用固定轮询的高频交易,但只开了一个空和一个多就没有反应了~ 我理解这段代码应该是闪烁的信号,应该是频繁的开平仓的~ 帮忙看看,谢谢!
ttt:mod (CURRENTTIME,19),nodraw; KD:=ttt=1; //开多条件 PD:=ttt=5; //平多条件 KK:=ttt=10; //开空条件 PK:=ttt=15; //平空条件
平空:SELLSHORT(PK,1,THISCLOSE); //平空信号 开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号 平多:SELL(PD,1,THISCLOSE); //平多信号 开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号 还有个图,可供参考。  此主题相关图片如下:2016-12-22 22-03-11.png  |
[此贴子已经被作者于2016-12-22 22:09:17编辑过]
这样写只是为了理解程序运行的机制,确保写出的交易系统没问题。
帖子里的图是开了两次仓却没有平仓,平仓语句里是没有holding的啦~这是为啥呢?
按逻辑应该是按顺序平、开、平、开,难道是因为在一个k线周期里程序只运行一遍语句么?图表程序化模式,是不是第一次满足if的判断条件就执行,之后再满足就忽略了?
holding经常与模拟仓持仓不一致,有啥办法解决不?
多谢!
1.holding是虚拟持仓,并不是你的实际账户持仓,两者之间的关系,是实际账户跟着图表虚拟持仓去做相关动作。
这个是图表的机制。
2.在同一个信号方向,只会开一次仓位。(信号闪烁除外)
图表开平仓遵循,开仓前先平反手仓。(不支持锁仓)
3.持仓不一致,可以选择持仓同步。(造成不一致的原因,有肯多种)
4.建议你在测试代码时,进行输出调试。