Commission-aware Trade LabelsCommission-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%
Stoploss
TrailingStopsLibrary   "TrailingStops" 
This library contains functions to output trailing stop lines.
 f_marketStructureStop(_restartMode, _flipMode, _restartLowIn, _restartHighIn) 
  Parameters:
     _restartMode  - Defines how the stop lines persist. Allowed values are:
 
       "Always On" - The stop lines are always present and they just reset when they're crossed.
       "Flip" - The stop lines flip when they're crossed.
       "Manual" - The stop lines turn off when they're crossed, and turn back on again when _restartLowIn or _restartHighIn are passed into the function as true.
 
     _flipMode  - Defines whether the stop lines are broken by wicks or closes. Allowed values are "Wick", and "Close".
     _restartLowIn  - If _restartMode is "Manual", passing this parameter as true restarts the Low stop line.
     _restartHighIn   - If _restartMode is "Manual", passing this parameter as true restarts the High stop line.
 @returns  - floats for the Low and High stop line.
Strategy PnL LibraryLibrary   "Strategy_PnL_Library" 
TODO: This is a library that helps you learn current pnl of open position and use it to create your own dynamic take profit or stop loss rules based on current level of your profit. It should only be used with strategies.
 inTrade() 
  inTrade: Checks if a position is currently open.
  Returns: bool: true for yes, false for no.
 notInTrade() 
  inTrade: Checks if a position is currently open. Interchangeable with inTrade but just here for simple semantics.
  Returns: bool: true for yes, false for no.
 pnl() 
  pnl: Calculates current profit or loss of position after the commission. If the strategy is not in trade it will always return na.
  Returns: float: Current Profit or Loss of position, positive values for profit, negative values for loss.
 entryBars() 
  entryBars: Checks how many bars it's been since the entry of the position.
  Returns: int: Returns a int of strategy entry bars back. Minimum value is always corrected to 1 to avoid lookback errors.
 pnlvelocity() 
  pnlvelocity: Calculates the velocity of pnl by following the change in open profit compared to previous bar. If the strategy is not in trade it will always return na.
  Returns: float: Returns a float value of pnl velocity.
 pnlacc() 
  pnlacc: Calculates the acceleration of pnl by following the change in profit velocity compared to previous bar. If the strategy is not in trade it will always return na.
  Returns: float: Returns a float value of pnl acceleration.
 pnljerk() 
  pnljerk: Calculates the jerk of pnl by following the change in profit acceleration compared to previous bar. If the strategy is not in trade it will always return na.
  Returns: float: Returns a float value of pnl jerk.
 pnlhigh() 
  pnlhigh: Calculates the highest value the pnl has reached since the start of the current position. If the strategy is not in trade it will always return na.
  Returns: float: Returns a float highest value the pnl has reached.
 pnllow() 
  pnllow: Calculates the lowest value the pnl has reached since the start of the current position. If the strategy is not in trade it will always return na.
  Returns: float: Returns a float lowest value the pnl has reached.
 pnldev() 
  pnldev: Calculates the deviance of the pnl since the start of the current position. If the strategy is not in trade it will always return na.
  Returns: float: Returns a float deviance value of the pnl.
 pnlvar() 
  pnlvar: Calculates the variance value of the pnl since the start of the current position. If the strategy is not in trade it will always return na.
  Returns: float: Returns a float variance value of the pnl.
 pnlstdev() 
  pnlstdev: Calculates the stdev value of the pnl since the start of the current position. If the strategy is not in trade it will always return na.
  Returns: float: Returns a float stdev value of the pnl.
 pnlmedian() 
  pnlmedian: Calculates the median value of the pnl since the start of the current position. If the strategy is not in trade it will always return na.
  Returns: float: Returns a float median value of the pnl.
ATRStopLossFinderLibrary   "ATRStopLossFinder" 
Average True Range Stop Loss Finder
credits to www.tradingview.com for the initial version
 stopLossFinder(length, smoothing, multiplier, refHigh, refLow, refClose)  Returns the stop losses for an entry on this candle, depending on the ATR
  Parameters:
     length : simple int optional to select the lookback amount of candles
     smoothing : string optional to select the averaging method, options= 
     multiplier : simple float optional if you want to tweak the speed the trend changes.
     refHigh : series float optional if you want to use another timeframe or symbol, pass it's 'high' series here
     refLow : series float optional if you want to use another timeframe or symbol, pass it's 'low' series here
     refClose : series float optional if you want to use another timeframe or symbol, pass it's 'close' series here
  Returns: series float stopLossLong, series float stopLossShort, series float atr



