var Bar, X : integer; HideVolume; PlotStops; X := 30; // slippage settings: if (GetSymbol = 'EURUSD') OR (GetSymbol = 'USDJPY') then SetSlippage(true, 4, false) else SetSlippage(true, 5, false); for Bar := X to BarCount - 1 do begin if not LastPositionActive then begin if Momentum(Bar, #Close, X) < BbandUpper(Bar, MomentumSeries(#Close, X), X, 1) then begin SetRiskStopLevel(Lowest(Bar, #Low, X)-GetTick); BuyAtStop(Bar+1, Highest(Bar, #High, X)+GetTick, ''); end; if Momentum(Bar, #Close, X) > BbandLower(Bar, MomentumSeries(#Close, X), X, 1) then begin SetRiskStopLevel(Highest(Bar, #High, X)+GetTick); ShortAtStop(Bar+1, Lowest(Bar, #Low, X)-GetTick, ‘’); end; end else begin if PositionLong(LastPosition) then begin SellAtTrailingStop(Bar+1, Lowest(Bar, #Low, X)-GetTick, LastPosition, ‘’); if not LastPositionActive then begin if Momentum(Bar, #Close, X) > BBandLower(Bar, MomentumSeries(#Close, X), X, 1) then begin SetRiskStopLevel(Highest(Bar, #HIgh, X)+GetTick); ShortAtStop(Bar+1, Lowest(Bar, #Low, X)-GetTick, ‘’); end; end; end else begin CoverAtTrailingStop(Bar+1, Highest(Bar, #High, X)+GetTick, LastPosition, ‘’); if not LastPositionActive then begin if Momentum(Bar, #Close, X) < BBandUpper(Bar, MomentumSeries(#Close, X), X, 1) then begin SetRiskStopLevel(Lowest(Bar, #Low, X)-GetTick); BuyAtStop(Bar+1, Highest(Bar, #High, X)+GetTick, ''); end; end; end; end; end;