基本的逻辑如下:建议你自己看懂后处理。
注:下面代码非完整代码模块,需要你理解后填充处理。
//使用全局变量进行标记。
VARIABLE:flag=0;//用户区分开仓和加仓的标志位
//当没仓位,并且标志位0时,只要最高价突破布林上轨则开仓。
if cross(HIGH,UPPER) =1 and HOLDING=0 and flag=0 then begin
buy();
flag:=1;//开启加仓标记开关
end
//不知道你所谓的atr要的是均值后的tr,还是就tr。本例以10日均线的tr为参照。你自己根据需要修改。
atr:=ma(tr,10);
//最高价突破比布林上轨价高1个ATR的价格时,并且flag=1
if cross(HIGH,UPPER+atr) and flag=1 then begin
buy();//加仓语句。
flag:=0;//此处需要你自己决定是否置为零。一般平仓是需要将flag变成0 ,这样才能再次满足开仓条件
end