Home » Strategy Functions » Understanding the strategy.opentrades.profit() Function in Pine Script

Understanding the strategy.opentrades.profit() Function in Pine Script

Photo of author
Published on

The strategy.opentrades.profit() function plays a crucial role in this context by providing the profit or loss of open trades. This article explores the function’s syntax, usage, and practical examples to enhance your trading strategies.

What is strategy.opentrades.profit()?

The strategy.opentrades.profit() function returns the profit or loss of an open trade, expressed in the strategy’s account currency. It is particularly useful for dynamic strategy adjustments based on the performance of ongoing trades. Losses are represented as negative values, giving a straightforward assessment of each trade’s financial outcome.


The function’s syntax is as follows:

strategy.opentrades.profit(trade_num) → series float


  • trade_num (series int): Specifies the number of the open trade you want to analyze. The numbering starts at zero, with zero representing the first trade.


Let’s dive into the examples provided, making slight modifications to ensure uniqueness while maintaining the core lessons.

Example 1: Profit of the Last Open Trade

This example demonstrates how to return the profit of the most recent open trade. Notice the renaming of variables and the strategy title for uniqueness:

strategy("Recent Trade Profit Analysis", commission_type = strategy.commission.percent, commission_value = 0.1)

// Strategy to enter long trades every 16 bars and exit them every 21 bars.
if bar_index % 16 == 0
    strategy.entry("GoLong", strategy.long)
if bar_index % 21 == 0

plot(strategy.opentrades.profit(strategy.opentrades - 1), "Latest Trade Profit")

Example 2: Profit for All Open Trades

This example calculates the profit or loss for all open trades, providing a comprehensive view of the strategy’s current performance:

strategy("Overall Open Trades Profit Analysis", pyramiding = 5)

// Enters 5 long positions every 3 bars.
if bar_index % 3 == 0
    strategy.entry("BulkLong", strategy.long, qty = 5)

// Function to calculate and return the total open profit or loss.
allTradesProfit() =>
    totalProfit = 0.0
    for tradeIndex = 0 to strategy.opentrades - 1
        totalProfit += strategy.opentrades.profit(tradeIndex)

plot(allTradesProfit(), "Total Profit of Open Trades")

Key Features and Takeaways

  • Function Usability: strategy.opentrades.profit() is instrumental for real-time analysis of trades within a strategy, offering insights into the profit or loss of individual or all open trades.
  • Syntax and Application: The function requires specifying the trade number to assess its performance, with the capability to loop through multiple trades for aggregate analysis.
  • Strategic Adjustments: By understanding the profitability of open trades, traders can make informed decisions on whether to hold, close, or adjust their positions for optimized strategy performance.

In conclusion, the strategy.opentrades.profit() function is a vital tool in Pine Script for monitoring and analyzing the financial performance of trades within a strategy. Its application in real-time strategy adjustments can significantly enhance trading outcomes.

Leave a Comment