请教:我想问下,我搭建了一个策略,开仓一次,加仓有三次,为递减加仓,但是我图形上看下来,最后两行的加仓没有执行,而是重复开仓和第一次加仓的动作,我想问下,这是怎么回事!可以用代码解决吗?
ATR:=MA(TR,20); //求20个周期内真实波幅的简单移动平均
TC:INTPART((400000*0.01/(MULTIPLIER*ATR)));//根据权益的1%计算下单手数
MTC:=3*TC;//总的持仓头寸BUYSHORT(B and holding=0,1*TC,market);//空头开仓
BUYSHORT(B1,0.8*TC,market);//空头加仓
BUYSHORT(B2,0.5*TC,market);//空头加仓
BUYSHORT(B3,0.2*TC,market);//空头加仓
老师,您好,我的总资金设置为52W,仓位如代码设置为40W,如代码所示,我的每一次加仓都是递减加仓(TC,0.8TC,0.5TC,0.2TC,总量为3MTC)但是图表上反馈给我的加仓不是这么一回事(如图)图中5次开仓,第一次12手,第二次12手,第三次12手,第四次11手,第五次14手
这明显不符合我的代码设定的加仓递减的一个思路
恳请老师回答,万谢
此主题相关图片如下:ba8f01d01c925199ab5651027f53954.png

是这样的。
BUYSHORT(B1,0.8*TC,market);//空头加仓
BUYSHORT(B2,0.5*TC,market);//空头加仓
BUYSHORT(B3,0.2*TC,market);//空头加仓
这个加仓不是仅仅按照代码顺序的。是按照B1-B3触发的顺序,并且如果不做互斥限制(互斥是指限制B1-B3不同时触发) 还可能在一个K上同时触发三个条件。这三个条件本身定义上就需要处理好这些限制才行的。
而且这个TC的计算也是变化的吧。也就是加仓仓位本身也是变化的吧。
如果你无法判断是哪个条件加仓的:
b_jc:BUYSHORT(B and holding=0,1*TC,market);//空头开仓
b1_jc:BUYSHORT(B1,0.8*TC,market);//空头加仓
类似这样处理下,就能看到加仓位置是那个语句触发的,这样方便进一步处理问题。
我加上取看到,B,B1,B2,B1,B1这样的顺序,B2,B3,没有执行
恳请老师指点怎么限制拆分,谢谢

此主题相关图片如下:ad557cfe6d3e10c5bc22b0d8b181be5.png
需要明确下:
1.你的需求是B-B4 顺序加仓?
2.B-B4 具体定义我不知道,但是我需要知道是这个几个条件是否 一个或多个在一个K同时触发。