请问:假设盈利100个点时,回撤大于60个点止损;盈利150个点时,回撤大于40个点即止损;盈利大于200个点时,回撤大于20个点即止损……
zgyl:hhv(c,ENTERBARS+1)-ENTERPRICE;//这里最高盈利也可以考虑用最高价来统计,这里按照收盘价处理。
dqyl:c-ENTERPRICE;//当前盈利
yl1:holding>0 and zgyl>=100 and dqyl<=40; //开仓后最高盈利100,当前小于等于40(回测大于60)
yl1条件是第一种情况,剩下的你分别再写几个同样逻辑的语句就可以了。另外这里是多头,空头得话,修改下盈利计算方式就行了。
只用一条语句可以实现么?比如:初始定为回撤大于60则平,则程序中加入如下语句,
回撤点数:=回撤点数-zgyl*0.4;这样,是不是就能做到zgyl越大,则回撤点数越小?
一条语句肯定是可以的。只要明确你这个盈利点数和回撤点的计算方式,就可以了。意思就是根据当前最高盈利直接可以推算出需要平仓的回撤点数就可以了。
盈利点和回撤点的计算方式:盈利每增大一个点,则回撤平仓点数相应减小0.4个点。
就是你3楼的处理逻辑。 不过要留意初始值。因为你应该是从某一个位置开始的,而不是从0开始计算。
[此贴子已经被作者于2019/5/13 10:33:12编辑过]