VARIABLE:mark:=0;
ma10:ma(c,10);
ma5:ma(c,5);
buycond1:cross(ma5,ma10) and holding=0;
buycond2:holding>0 and c-ENTERPRICE>1*MINDIFF;//每次上次开仓后上涨一个变动点 加仓
if buycond1 then
begin
buy(holding=0,1,market);
mark:=1;
end
else if then mark:=0; //标记首次开仓的位置
buy(BUYCOND2 and holding>0,1,market);//加仓
firstH:ref(h,BARSSINCE(mark=1));//首次开仓时的最高价
sellcond1:firstH-c>3*MINDIFF and holding>0 and not(BUYCOND1);//平仓条件,且限制了不在首次开仓的K上同时做平仓,因为开仓的H-C可能会大于3个最小变动价位
if sellcond1 then sell(holding>0,holding,market);