I'm experimenting with pine scripting trying to convert some of my strategies. I wrote the code below
//@version=4
strategy(title="MACD+EMA test", shorttitle="MACD+EMA")
// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
ema_trend = input(title="EMA Trendline", type=input.integer, defval=200)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
trend = ema(src, ema_trend)
plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
// plot(trend, title="Trend")
LONG = close > trend and macd < 0 and signal < 0 and crossover(signal, macd)
//strategy.entry("LONG", strategy.long, when=LONG))
I'd like to set a variable, let's say LONG_SL to input in strategy exit that should work as follows:
when strategy.entry("LONG" ...) is triggered, LONG_SL shall be set as the difference from close and trend. This value shall stay fixed over time, up to strategy.exit trigger
For strategy.exit I would use something like
strategy.exit("EXIT", "LONG", profit=1.5*LONG_SL, loss=LONG_SL)
Thanks in advance