OnBarClose发两次单
2023-04-19 15:44
老师,为什么下面的代码会发两次单?每次条件成熟,就发2条一样的委托单,导致同向有2手持仓,而且还不会平掉反方向的单。
OnBarOpen(ArrayRef<Integer> indexs)
{
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
PlotNumeric(MA1,AvgValue1);
PlotNumeric(MA2,AvgValue2);
If(MarketPosition <=0 && AvgValue1[1] > AvgValue2[1])
{
Buy(1,close);
}
If(MarketPosition >=0 && AvgValue1[1] < AvgValue2[1])
{
SellShort(1,close);
}
}
测试情况,如果改成下单需要确认,则一开一平是正常的,如果取消下单需要确认,就会下2笔同方向的单,而且不会平反方向的单,不知道有没有遇到同样问题的?
这段代码,写到OnBarClose事件驱动里面,效果也是一样的。
系统设置里面是不是勾选了开平仓互转
是的,勾选了。
你是不是策略单元执行自动交易 然后打开k线也执行自动交易开启了绿脸
策略单元自动交易绿脸,K线橘脸,你的意思是策略单元自动交易时,不能打开K线吗?
建议你看看委托报单后面的操作源,这个是记录报单是从哪个单元里报出来的。正常操作只会报一次单,重复报的多余的单一定是哪里设置错了
我是策略单元执行自动交易,确实同时打开了K线。
委托报单后面的操作源 ,是指这个吗?这里显示的是策略运行测试
老师,我在新的电脑上,重新安装了TBQuant 1.3.7.6 ,没有做任何设置,再测试这个策略,依然是下两笔开仓单,这个问题一直困扰我,能否在你们的电脑上简单测试一下?