1.代码这样的:
//锁仓停止交易机制
If((Abs(mypos.longCanSellVolume-mypos.shortCanCoverVolume)<>0)) And (Time>0.1458 And Time<0.1500))
{
If(mypos.longCanSellVolume>mypos.shortCanCoverVolume Or CC_TotalDuoKong>0){SellShort(V_shou, Close);CC_TotalDuoKong=CC_TotalDuoKong-1;Commentary("【666-卖空锁多】-IM日间交易停止锁仓!!!");}
If(mypos.longCanSellVolume<mypos.shortCanCoverVolume Or CC_TotalDuoKong<0){Buy(V_shou, Close);CC_TotalDuoKong=CC_TotalDuoKong+1;Commentary("【666-买多锁空】-IM日间交易停止锁仓!!!");}
Commentary("【666】-IM日间交易停止锁仓!!!");return;//停止交易
}
2.运行结果这样的:
3.问题:为何SellShort运行会伴随着一个Sell???
图表多空是互斥的,图表持多仓情况下开空就会平多开空
SetTradeSide是一个可以设置的内容
那要多空持仓不平,SetTradeSide设置哪个?
——
交易方向:0-普通(默认),1-双向持仓,2-单向多头,3-单向空头,4-空转多头,5-多转空头 |
SetTradeSide(1)后回测,就变这样了:
选双向持仓
补平是你图表到最后都没平仓的持仓,按最新价在测试报告里结算一下,跟你上面的问题无关
根据你说的设置了SetTradeSide(2);——双向交易后出问题如下:
回测策略代码直接不会下单了。所以请教下SetTradeSide具体对各种buy、sell及持仓,做了什么控制?因为官方说明太简洁( https://tbq.tbquant.net/helper?product_id=999&keyword=1122&content_id=1055&type=article#settradeside-%E8%AE%BE%E7%BD%AE%E4%BA%A4%E6%98%93%E6%96%B9%E5%90%91%EF%BC%8C%E4%BB%85%E6%94%AF%E6%8C%81%E5%9C%A8oninit%E4%B8%AD%E4%BD%BF%E7%94%A8 )