NinjaScript > Language Reference > Strategy > Order Methods > Managed Approach >


Print this Topic Previous pageReturn to chapter overviewNext page

Generates a trail stop order to exit a position. Trail stops are amended on a tick by tick basis. Trail stop orders are real working orders (unless simulated is specified in which case the stop order is locally simulated and submitted as market once triggered) submitted immediately to the market upon receiving an execution from an entry order.


It is suggested to call this method from within the strategy Initialize() method if your trail stop price/offset is static
You may call this method from within the strategy OnBarUpdate() method should you wish to dynamically change the trail stop price while in an open position
Should you call this method to dynamically change the trail stop price in the strategy OnBarUpdate() method, you should always reset the trail stop price/offset value when your strategy is flat otherwise, the last price/offset value set will be used to generate your trail stop order on your next open position

SetTrailStop(double currency)

SetTrailStop(double currency, bool simulated)

SetTrailStop(CalculationMode mode, double value)

SetTrailStop(string fromEntrySignal, CalculationMode mode, double value, bool simulated)




Sets the stop loss amount in currency ($500 loss for example)


Possible values:





Note: CalculationMode.Price is irrelevant for trail stops


If true, will simulate the stop order and submit as market once triggered


The value the trail stop order is offset from the position entry price (exception is using .Price mode where 'value' will represent the actual price)


The entry signal name. This ties the trail stop exit to the entry and exits the position quantity represented by the actual entry.




protected override void Initialize()
    // Sets a trail stop of 12 ticks
    SetTrailStop(CalculationMode.Ticks, 12);



Tips (also see Overview)

The SetTrailStop() method can NOT be used concurrently with the SetStopLoss() method for the same position, if both methods are called for the same position (fromEntrySignal) the SetStopLoss() will always take precedence. You can however, use both methods in the same strategy if they reference different signal names.
Trail stop orders are submitted in real-time on incoming executions from entry orders
A strategy will either generate a trail stop order for each partial fill of an entry order or one order for all fills. See additional information under the Strategies tab of the Options dialog window.
If a profit target order is generated in addition to a trail stop order, they are submitted as OCO (one cancels other)
Trail stop orders are submitted as stop market orders
A trail stop order is automatically cancelled if the managing position is closed by another strategy generated exit order