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 (GetDate(Bar) >= 19990718) AND (GetDate(Bar) < = 20030718) 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; end else begin if PositionLong(LastPosition) then begin SellAtTrailingStop(Bar+1, Lowest(Bar, #Low, X)-GetTick, LastPosition, ‘’); if not LastPositionActive then begin if (GetDate(Bar) >= 19990718) AND (GetDate(Bar) < = 20030718) AND (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; if GetDate(Bar) > 20030718 then SellAtMarket(Bar+1, LastPosition, ‘’); end else begin CoverAtTrailingStop(Bar+1, Highest(Bar, #High, X)+GetTick, LastPosition, ‘’); if not LastPositionActive then begin if (GetDate(Bar) >= 19990718) AND (GetDate(Bar) < = 20030718) AND (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; if GetDate(Bar) > 20030718 then CoverAtMarket(Bar+1, LastPosition, ‘’); end; end; end;