无信号开单

老师好,不知道问什么没有信号平仓并做多了。已经有空单,设置了MarketPosition ==0还加了A_BuyPosition==0,但还是开了委托。不知道为什么?其它地方没有开仓的代码了,只有止损止盈,按道理应该进不去的。如果MarketPosition ==0在箭头的地方是会开多单,这个时候已经有空单了,就是不知道为什么平仓还开多了。 signalBuy = Close[1]<=MinClose && Close[1]<C-10*MinPoint && MaxClose-MinClose>ValueFluctuate*MinPoint && Close[1]<ValueEmaPeriod[1]-ValueDayFluctuate*MinPoint; signalSellShort = Close[1]>=MaxClose && Close[1]>C+10*MinPoint && MaxClose-MinClose>ValueFluctuate*MinPoint && Close[1]>ValueEmaPeriod[1]+ValueDayFluctuate*MinPoint; TrueBuyMarketPosition=MarketPosition<>0 And A_BuyPosition==0; TrueSellMarketPosition=MarketPosition<>0 And A_SellPosition==0; if(MarketPosition ==0 And A_BuyPosition==0) { IF(signalBuy) { BuyToCover(0, Open+2*EntryOffset*MinPoint); Buy(1, Open+2*EntryOffset*MinPoint); } } if(MarketPosition ==0 And A_SellPosition==0) { IF(signalSellShort) { Sell(1, Open-2*EntryOffset*MinPoint); SellShort(1, Open-2*EntryOffset*MinPoint); } }

如果你这是了双向头寸,那么marketposition变成判断净头寸方向。比如多2空1,净多1,那么marketposition就是1比如多3空3,净持平,那么marketposition就是0比如多1空2,净空1,那么marketposition就是-1至于你说的,图上有信号,marketposition是0,除了像上面多空持平的情况,其他情况是不可能存在的。

回复:当时就一手空单,实际情况就是这样,不然我就不会叨扰你们了。

回复:如果没有设置成双向交易出了多信号空单就被平了啊前面已经给了解决方案1、设置成双向交易2、取多空各自持仓数量判断持仓状态

首先我就没搞明白为什么marketposition和a_sellposition可以同时出现

回复:图表上有信号,但marketposition会一直为0,貌似确实是这里有问题

回复:图上有信号marketposition不可能是0,10000%不可能是0

回复:marketposition我基本不用我没有测试过这个函数应该是净头寸?如果多空同时存在且相等这个函数是否返回0?因为有这个疑虑所以我既没有使用也没有测试不知道双向模式TBQ是有仓就返回还是我担心的那样我习惯用取多空各自头寸的方式判断有无仓

回复:还有老刘说得你图表函数和账户交叉了也是问题一般分开写逻辑即使放一起也应该是or的关系

回复:当时就一手空单,然后平空开的多。不过你说的取多空各自头寸去判断我赞同。

回复:我当时是想投个机,我的MinClose会闪烁,我就想如果开仓的那根bar内又止损了但是又回到开仓条件,这个时候还是想要追进去,这个时候marketposition还是0(闪烁完之后开了仓但往止损方向走信号消失了,我还要判断是不是真止损了),所以才用的and。但是这里是我已经有仓位了,图表也是有信号,应该是进不去的。

回复:可能就是图表函数和账户交叉了才出的问题,所以我现在只能分开用两个逻辑去实现了。但确实图表有信号,还是开了仓,我只有这里有开仓的代码,其他都是止盈止损平仓代码。管理员说的100%不会我也不反对,反正放一块就是实现不了,试了几回了,那都是真金白银。

回复:你肯定要测试妥善了才能上实盘从你的表述一些理解是错的如果一个bar会反复开平那就要考虑载入更小的数据源切片尽量确保一个bar无论开平只交易一次否则大概率衍生问题你说的仓位标志状态bar内是不会改变的一些标志需要自己用全局变量记录状态闪烁问题必须要解决0容忍

回复:谢谢你的耐心解答,用全局变量记录状态是个好办法。我不专业,但我觉得闪烁不一定是坏事,只是回测不准,衍生问题可以解决吗,程序毕竟是程序,最终还是实现人的想法。一个策略完全由历史的数据去判定未来的走向,要想实现稳定盈利其实是很难的,几分钟就可以导致损失惨重,我必须控制风险。而且很多时候回测也不准的啊,就像onbar的止损,如果在影线内就不行。

设置成双向交易?

回复:是啊,还有一个止损代码,怕它会执行但是图表还会显示信号,我想保持信号和实际情况一致。但是不影响我这里出现的问题啊,还请赐教。