Home » Strategy Functions » Understanding the strategy.margin_liquidation_price Function in Pine Script

Understanding the strategy.margin_liquidation_price Function in Pine Script

Photo of author
Published on

The strategy.margin_liquidation_price function in Pine Script is a pivotal feature for traders who utilize margin in their trading strategies. This function calculates the price at which a margin call would occur, potentially leading to the liquidation of enough of the position to satisfy margin requirements. It’s especially useful for managing risk in trading strategies that involve leverage.


  • Return Type: series float


strategy("Margin Call Strategy", overlay = true, margin_long = 25, margin_short = 25, 
  default_qty_type = strategy.percent_of_equity, default_qty_value = 395)

float quickMA = ta.sma(close, 14)
float slowMA = ta.sma(close, 28)

if ta.crossover(quickMA, slowMA)
    strategy.entry("GoLong", strategy.long)

if ta.crossunder(quickMA, slowMA)
    strategy.entry("GoShort", strategy.short)

priceChangePercent(changeFrom, changeTo) => 
    float result = (changeFrom - changeTo) * 100 / math.abs(changeTo)

// Exit strategy to prevent margin call when price is within 10% of the liquidation price.
if math.abs(priceChangePercent(close, strategy.margin_liquidation_price)) <= 10


  • The function returns na (not applicable) if the strategy does not use margin, which is determined by the absence of margin_long or margin_short parameters in the strategy’s declaration statement.

Deep Dive into the Example Code

  1. Strategy Initialization: The strategy function initializes the trading strategy, named “Margin Call Strategy”, with both long and short margin requirements set at 25%, and positions based on a percentage of equity (395%).
  2. Moving Averages: Two simple moving averages (SMAs) are calculated, named quickMA and slowMA, with periods of 14 and 28, respectively. These serve as indicators for the strategy’s entry points.
  3. Entry Conditions: The strategy enters a long position (GoLong) when quickMA crosses over slowMA, and enters a short position (GoShort) when quickMA crosses under slowMA.
  4. Margin Call Avoidance Logic: The priceChangePercent function calculates the percentage change between the current close price and the margin liquidation price. If this value is within 10% (either direction), the strategy preemptively closes both long and short positions to avoid a margin call.

Key Features and Takeaways

  • Function Purpose: Enables strategies to account for and react to margin requirements dynamically, enhancing risk management.
  • Useability: Applies to strategies utilizing margin trading, providing a critical risk management tool.
  • Syntax and Application: Requires the strategy to specify margin parameters (margin_long and margin_short) to be applicable. It is used within conditional statements to manage open positions based on the proximity to liquidation price.
  • Strategic Application: By incorporating the strategy.margin_liquidation_price function, traders can create strategies that automatically adjust to avoid margin calls, potentially saving the account from significant losses.

This example demonstrates the practical use of the strategy.margin_liquidation_price function in Pine Script to manage and mitigate the risks associated with margin trading.

Leave a Comment