TradingView
jason5480
May 3, 2021 6:36 PM

Trailing Stop Loss 

Ethereum / TetherUSBinance

Description

This script demonstrate how to make a Training Stop Loss to "ride the wave". In comparison to classic Stop Loss this strategy follows the price upwards (for long positions) and when price drops by a fixed percentage then you exit your position.

Release Notes

  • Minor typos

Release Notes

  • Add the ability to disable trailing for demonstration reasons
  • Close open orders on trend reversal
  • Add sell labels on cross-under

Release Notes

  • Fix a bug that made Stop Loss to not trigger appropriately when it was reached at the very first candle end enable trailing was un-checked

Release Notes

  • Refactor stopValue calculation to be more readable

Release Notes

  • Fix longIsActive logic

Release Notes

  • Check if time is within backtest period in order to set the price to prevent unnecessary calculations and drawing outside the area of interest
  • Replace deprecated trasp argument with color.new

Release Notes

  • Set calc on every tick to false by default, as @fgo943 suggested

Release Notes

  • Minor Update the chart for a better overview and understanding of the trailing stop loss

Release Notes

  • Fix a bug that were causing stop loss to be calculated wrong when there was new entry back to back with the end of the previous one
  • Use strategy.percent_of_equity

Release Notes

  • Draw lines with width 1

Release Notes

  • Update to pinescript V5
  • Stop Loss step is now 0.05

Release Notes

  • Let's face it a Green-Red color model is more intuitive!

Release Notes

  • Happy New Year!
  • Many code refactorings and optimizations to better use this script as a template and plug your own strategy at ease

Release Notes

  • Bug fix: (rare/minor) Remove 'strategy.position_size == 0' condition in stop loss calculation that made the very first stop loss price target to be calculated based on previous 'strategy.position_avg_price' instead of 'close' if the previous position closed exactly one bar before!

Release Notes

  • (minor) refactoring

Release Notes

  • Use time_filters library

Release Notes

  • Minor revision update

Release Notes

  • Replace deprecated "when=" with if statements in strategy calls

Release Notes

  • Change fastMA default color to yellow

Release Notes

  • Increase max labels to 300
  • Minor refactoring

Release Notes

  • Update time_filters library

Release Notes

  • Some minor label/color changes

Release Notes

  • small refactoring

Release Notes

  • Update time_filters library version

Release Notes

  • Update time_filters library version

Release Notes

  • Use the 'chrono_utils' library for the date-time window filter
Comments
cryptopreet
ur script is awesome.... instead of "longTrailingStopLossPerc" , i want to use " StopLong= close <= open-ma_function(tr(true), length) " as a trailing stop loss. i need help in converting this series[bool] argument to type: series[float].
Soincoin
Thanks for sharing this code. Very clear for eduacational purposes and easy to implement in other strategies
THELEGENDSINGH
good one love that
jason5480
@THELEGENDSINGH, Thank you, enjoy!
KCBC3319
Hey Jason,

I am trying to use this code :

if bb_cross_test and no_position and current_bar_test
strategy.entry("Cross Short Entry Test", strategy.short, limit = upper_5 )

strategy.exit("Cross Short Exit Test 1/2","Cross Short Entry Test", limit = upper_6, qty_percent = 50, loss = std_loss)

strategy.exit("Cross Short Exit Test 2/2","Cross Short Entry Test", qty_percent = 100, trail_price = upper_6, trail_offset = + 50 )

So that the first exit sells 50% of the position to take profit at a certain level, and then at that same level a trailing stop for the other half of the position is implemented.

I am having difficulties making this work though it seems to me the logic makes sense. Is it necessary to use the code you have built to make something like this happen?

Thanks!
jason5480
@KCBC3319, Check the "Trailing Take Profit Trailing Stop Loss" script in my profile. I implemented what you try to achieve here.
pdreamy
Hello @jason5480 , thanks for this!

I would like to know how I can add a fixed spot loss in the code?
I already checked your other scripts this one seems to work the best :)
jason5480
@pdreamy, Hello if I understood correctly you want to set a fixed stop loss e.g. 10 USD. A good start would be to replace line 118 with something like "close - longTrailingStopLoss" where the longTrailingStopLoss variable is configurable from the user and its value is 10 for this example.
jeno_
Very nicely done, just what I need! However I remember I read somewhere some people saying tradingview build-in trailing function in buggy/flaws, would you kind enough to shed some light on this?
jason5480
@jeno_, Build-in trailing function? Maybe you are talking about this tradingview.com/script/W8nc1c3V-Trailing-Take-Profit/ Well as far as I know I does the job
More