bunulu

Commission-aware Trade Labels

bunulu Updated   
Commission-aware Trade Labels

Description:
This library provides an easy way to visualize take-profit and stop-loss levels on your chart, taking into account trading commissions. The library calculates and displays the net profit or loss, along with other useful information such as risk/reward ratio, shares, and position size.

Features:
Configurable take-profit and stop-loss prices or percentages.
Set entry amount or shares.
Calculates and displays the risk/reward ratio.
Shows net profit or loss, considering trading commissions.
Customizable label appearance.

Usage:
Add the script to your chart.
Create an Order object for take-profit and stop-loss with desired configurations.
Call target_label() and stop_label() methods for each order object.

Example:
target_order = Order.new(take_profit_price=27483, stop_loss_price=28000, shares=0.2)
stop_order = Order.new(stop_loss_price=29000, shares=1)
target_order.target_label()
stop_order.stop_label()

This script is a powerful tool for visualizing your trading strategy's performance and helps you make better-informed decisions by considering trading commissions in your profit and loss calculations.

Library "tradelabels"

entry_price(this)
  Parameters:
    this: Order object
@return entry_price

take_profit_price(this)
  Parameters:
    this: Order object
@return take_profit_price

stop_loss_price(this)
  Parameters:
    this: Order object
@return stop_loss_price

is_long(this)
  Parameters:
    this: Order object
@return entry_price

is_short(this)
  Parameters:
    this: Order object
@return entry_price

percent_to_target(this, target)
  Parameters:
    this: Order object
    target: Target price
@return percent

risk_reward(this)
  Parameters:
    this: Order object
@return risk_reward_ratio

shares(this)
  Parameters:
    this: Order object
@return shares

position_size(this)
  Parameters:
    this: Order object
@return position_size

commission_cost(this, target_price)
  Parameters:
    this: Order object
@return commission_cost
    target_price

net_result(this, target_price)
  Parameters:
    this: Order object
    target_price: The target price to calculate net result for (either take_profit_price or stop_loss_price)
@return net_result

create_take_profit_label(this, prefix, size, offset_x, bg_color, text_color)
  Parameters:
    this
    prefix
    size
    offset_x
    bg_color
    text_color

create_stop_loss_label(this, prefix, size, offset_x, bg_color, text_color)
  Parameters:
    this
    prefix
    size
    offset_x
    bg_color
    text_color

create_entry_label(this, prefix, size, offset_x, bg_color, text_color)
  Parameters:
    this
    prefix
    size
    offset_x
    bg_color
    text_color

create_line(this, target_price, line_color, offset_x, line_style, line_width, draw_entry_line)
  Parameters:
    this
    target_price
    line_color
    offset_x
    line_style
    line_width
    draw_entry_line

Order
  Order
  Fields:
    entry_price: Entry price
    stop_loss_price: Stop loss price
    stop_loss_percent: Stop loss percent, default 2%
    take_profit_price: Take profit price
    take_profit_percent: Take profit percent, default 6%
    entry_amount: Entry amount, default 5000$
    shares: Shares
    commission: Commission, default 0.04%
Release Notes:
v2

Updated:
method create_take_profit_label(this, simulate, prefix, size, offset_x, bg_color, text_color)
  Namespace types: Order
  Parameters:
    this (Order)
    simulate (bool)
    prefix (string)
    size (string)
    offset_x (simple int)
    bg_color (color)
    text_color (color)

method create_stop_loss_label(this, simulate, prefix, size, offset_x, bg_color, text_color)
  Namespace types: Order
  Parameters:
    this (Order)
    simulate (bool)
    prefix (string)
    size (string)
    offset_x (simple int)
    bg_color (color)
    text_color (color)

method create_entry_label(this, simulate, prefix, size, offset_x, bg_color, text_color)
  Namespace types: Order
  Parameters:
    this (Order)
    simulate (bool)
    prefix (string)
    size (string)
    offset_x (simple int)
    bg_color (color)
    text_color (color)
Release Notes:
v3

Updated:
Order
  Order
  Fields:
    entry_price (series float): Entry price
    stop_loss_price (series float): Stop loss price
    stop_loss_percent (series float): Stop loss percent, default 2%
    take_profit_price (series float): Take profit price
    take_profit_percent (series float): Take profit percent, default 6%
    entry_amount (series float): Entry amount, default 5000$
    shares (series float): Shares
    commission (series float): Commission, default 0.04%
    risk_reward_ratio (series float)
Release Notes:
v4
Release Notes:
v5

Updated:
method position_size(this, percent)
  Namespace types: Order
  Parameters:
    this (Order): Order object
    percent (float): The percentage of the total position size to calculate
@return position_size

method commission_cost(this, target_price, shares)
  Namespace types: Order
  Parameters:
    this (Order): Order object
    target_price (float): The target price used for commission calculation
    shares (float): The number of shares involved in the transaction
@return commission_cost

method net_result(this, target_price, percent)
  Namespace types: Order
  Parameters:
    this (Order): Order object
    target_price (float): The target price to calculate net result for (either take_profit_price or stop_loss_price)
    percent (float): The percentage of the position to calculate the net result for
@return net_result

method create_take_profit_label(this, simulate, prefix, size, offset_x, bg_color, text_color, tp_percent)
  Namespace types: Order
  Parameters:
    this (Order)
    simulate (bool)
    prefix (string)
    size (string)
    offset_x (simple int)
    bg_color (color)
    text_color (color)
    tp_percent (float)

method create_stop_loss_label(this, simulate, prefix, size, offset_x, bg_color, text_color, sl_percent)
  Namespace types: Order
  Parameters:
    this (Order)
    simulate (bool)
    prefix (string)
    size (string)
    offset_x (simple int)
    bg_color (color)
    text_color (color)
    sl_percent (float)

Order
  Order
  Fields:
    entry_price (series float): Entry price
    stop_loss_price (series float): Stop loss price
    stop_loss_percent (series float): Stop loss percent, default 2%
    take_profit_price (series float): Take profit price
    take_profit_percent (series float): Take profit percent, default 6%
    entry_amount (series float): Entry amount, default 5000$
    shares (series float): Shares
    commission (series float): Commission, default 0.04%
Release Notes:
v6

Updated:
Order
  Order
  Fields:
    entry_price (series float): Entry price
    stop_loss_price (series float): Stop loss price
    stop_loss_percent (series float): Stop loss percent, default 2%
    take_profit_price (series float): Take profit price
    take_profit_percent (series float): Take profit percent, default 6%
    entry_amount (series float): Entry amount, default 5000$
    shares (series float): Shares
    commission (series float): Commission, default 0.04%
    risk_reward_ratio (series float)
Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House Rules.

Disclaimer

The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Want to use this library?

Copy the following line and paste it in your script.