这段代码会每分钟开一单,是什么原因?好象用了ISLASTBAR就会不断地开单,如果不用就不会。
VARIABLE:aa=CS_con-25;
开仓时间:=TIME>145600;
开多平空条件:=开仓时间 and ISLASTBAR;
buycon:=LOW>0 and aa<2 and 开多平空条件;
if buycon THEN BEGIN
buyshort(1,1,MARKET);
//if aa>2 then aa:=1;
aa:=aa+1;
if islastbar then msgout(TRUE,'成功买一手');
end
持仓:holding,linethick0;
资产:asset,noaxis;
可用现金:cash(0),linethick0;
日志:
2015-03-06 17:54:01.267 2015.03.06 17:54:01【图表】框架:TWS009 触发下单 BUYSHORT 品种 EURJPY 下单K线 2015.03.06 17:55:00 公式:test6 窗格ID:23 代码行:8
2015-03-06 17:54:01.273 【图表】启用多帐户及策略系数配置
2015-03-06 17:54:01.278 【图表】分账户系数1.000000 账户 812697
2015-03-06 17:54:01.283 【图表】test6 EURJPY 策略系数为 1.000000
2015-03-06 17:54:01.288 【图表】分品种下单系数调整后,手数1 账户 812697
2015-03-06 17:54:01.292 【图表】模型下单 1
2015-03-06 17:54:01.295 【图表】下单系数调整后 手数:1
2015-03-06 17:54:01.299 【图表】直接下单
2015-03-06 17:55:00.262 2015.03.06 17:55:00【图表】框架:TWS009 触发下单 BUYSHORT 品种 EURJPY 下单K线 2015.03.06 17:56:00 公式:test6 窗格ID:23 代码行:8
2015-03-06 17:55:00.267 【图表】启用多帐户及策略系数配置
2015-03-06 17:55:00.271 【图表】分账户系数1.000000 账户 812697
2015-03-06 17:55:00.275 【图表】test6 EURJPY 策略系数为 1.000000
2015-03-06 17:55:00.279 【图表】分品种下单系数调整后,手数1 账户 812697
2015-03-06 17:55:00.283 【图表】模型下单 1
2015-03-06 17:55:00.287 【图表】下单系数调整后 手数:1
2015-03-06 17:55:00.290 【图表】直接下单
2015-03-06 17:56:00.781 2015.03.06 17:56:00【图表】框架:TWS009 触发下单 BUYSHORT 品种 EURJPY 下单K线 2015.03.06 17:57:00 公式:test6 窗格ID:23 代码行:8
2015-03-06 17:56:00.787 【图表】启用多帐户及策略系数配置
2015-03-06 17:56:00.790 【图表】分账户系数1.000000 账户 812697
2015-03-06 17:56:00.795 【图表】test6 EURJPY 策略系数为 1.000000
2015-03-06 17:56:00.799 【图表】分品种下单系数调整后,手数1 账户 812697
2015-03-06 17:56:00.803 【图表】模型下单 1
2015-03-06 17:56:00.807 【图表】下单系数调整后 手数:1
2015-03-06 17:56:00.811 【图表】直接下单
2015-03-06 17:57:00.754 2015.03.06 17:57:00【图表】框架:TWS009 触发下单 BUYSHORT 品种 EURJPY 下单K线 2015.03.06 17:58:00 公式:test6 窗格ID:23 代码行:8
2015-03-06 17:57:00.761 【图表】启用多帐户及策略系数配置
2015-03-06 17:57:00.768 【图表】分账户系数1.000000 账户 812697
2015-03-06 17:57:00.772 【图表】test6 EURJPY 策略系数为 1.000000
2015-03-06 17:57:00.776 【图表】分品种下单系数调整后,手数1 账户 812697
2015-03-06 17:57:00.781 【图表】模型下单 1
2015-03-06 17:57:00.785 【图表】下单系数调整后 手数:1
2015-03-06 17:57:00.789 【图表】直接下单
2015-03-06 17:58:00.280 2015.03.06 17:58:00【图表】框架:TWS009 触发下单 BUYSHORT 品种 EURJPY 下单K线 2015.03.06 17:59:00 公式:test6 窗格ID:23 代码行:8
2015-03-06 17:58:00.285 【图表】启用多帐户及策略系数配置
2015-03-06 17:58:00.288 【图表】分账户系数1.000000 账户 812697
2015-03-06 17:58:00.291 【图表】test6 EURJPY 策略系数为 1.000000
2015-03-06 17:58:00.296 【图表】分品种下单系数调整后,手数1 账户 812697
2015-03-06 17:58:00.300 【图表】模型下单 1
2015-03-06 17:58:00.303 【图表】下单系数调整后 手数:1
2015-03-06 17:58:00.307 【图表】直接下单
这个表示当前最后一根k线,那么在k线图上就是每刷一根新的k线,这个条件就成立开单,然后过去的k线上,islastbar条件不成立,信号消失
用了islastbar会造成反复开仓,信号闪烁,具体理由参考上面的回复
写个最简单的例子
buy(islastbar,1,marketr);
看看效果是不是如我上面所说的,最后一根k线信号出现,之前的信号消失
理解您的意思,如果只是ISLASTBAR肯定重复开仓,但我有四个条件,而且是AND的关系。
虽然ISLASTBAR成立,但aa是不断增加的,开两手以后,aa=2,条件就不成立,应当就开不了仓了啊,为什么还会重复开?
LOW>0 and aa<2 and 开仓时间 and ISLASTBAR
LOW>0 and aa<2 and 开仓时间 and ISLASTBAR
我感觉这都能重复开,肯定是金字塔软件的bug
同样的,
加一句代码
a:aa;
可以看看aa是不是永远都是<2的,而且是当前为1,之前都为0
图表交易没有历史信号就不是图表交易了,所以这样一点是做不到的
您的意思,用了ISLASTBAR,整个程序就从头开始,所有参数都初始化一次吗?
是不是跟他在一起的参数全部被从头开始初始化,还是程序所有的代码都从头开始初始化?