
Trend Tracking Stop Loss Reversal Strategi adalah strategi yang menggunakan indikator Parabolic SAR untuk mengidentifikasi tren dan masuk ke posisi terbalik ketika tren berbalik. Strategi ini menggabungkan mekanisme stop loss dan stop loss untuk mengendalikan risiko.
Strategi ini menggunakan indikator Parabolic SAR untuk menilai tren pasar saat ini. Parabolic SAR full name is Parabolic Stop and Reverse , yang menunjukkan bahwa parasol berhenti dan terbalik.
Ketika SAR turun dan berada di bawah harga, itu adalah tren bullish; ketika SAR naik dan berada di atas harga, itu adalah tren bearish. Strategi ini adalah untuk menilai arah tren saat ini berdasarkan posisi SAR.
Secara khusus, ketika SAR naik dan berada di atas harga, strategi akan melakukan posisi kosong; ketika SAR turun dan berada di bawah harga, strategi akan melakukan posisi multi. Artinya, masuk ke posisi terbalik ketika SAR menunjukkan pembalikan tren.
Selain itu, strategi ini juga mengatur mekanisme stop loss dan stop stop. Bila dilakukan secara berlebihan, mungkin untuk mengatur harga stop loss untuk membatasi kerugian; juga mungkin untuk mengatur harga stop stop, setelah harga mencapai target keuntungan.
Strategi ini menggabungkan indikator tren dan mekanisme stop loss / stop loss, dengan keuntungan utama sebagai berikut:
Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:
Risiko ini dapat diatasi dengan penyesuaian parameter optimasi, atau dengan penyaringan indikator lainnya.
Strategi ini dapat dioptimalkan dari beberapa arah:
Trend Tracking Stop Loss Reversal Strategy, secara keseluruhan merupakan strategi trading yang lebih klasik. Ini berfungsi untuk mengidentifikasi trend reversal, sekaligus membantu mengendalikan risiko dengan stop loss dan stop loss. Dengan pengoptimalan dapat menjadi strategi yang layak untuk diperdagangkan.
/*backtest
start: 2024-01-24 00:00:00
end: 2024-01-31 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Parabolic SAR Strategy", overlay=true)
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
firstTrendBar = false
SAR := nextBarSAR
if bar_index == 1
float prevSAR = na
float prevEP = na
lowPrev = low[1]
highPrev = high[1]
closeCur = close
closePrev = close[1]
if closeCur > closePrev
uptrend := true
EP := high
prevSAR := lowPrev
prevEP := high
else
uptrend := false
EP := low
prevSAR := highPrev
prevEP := low
firstTrendBar := true
SAR := prevSAR + start * (prevEP - prevSAR)
if uptrend
if SAR > low
firstTrendBar := true
uptrend := false
SAR := max(EP, high)
EP := low
AF := start
else
if SAR < high
firstTrendBar := true
uptrend := true
SAR := min(EP, low)
EP := high
AF := start
if not firstTrendBar
if uptrend
if high > EP
EP := high
AF := min(AF + increment, maximum)
else
if low < EP
EP := low
AF := min(AF + increment, maximum)
if uptrend
SAR := min(SAR, low[1])
if bar_index > 1
SAR := min(SAR, low[2])
else
SAR := max(SAR, high[1])
if bar_index > 1
SAR := max(SAR, high[2])
nextBarSAR := SAR + AF * (EP - SAR)
if barstate.isconfirmed
if uptrend
strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE")
strategy.cancel("ParLE")
else
strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE")
strategy.cancel("ParSE")
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)
//Stop Loss Inputs
use_short_stop_loss = input(false, title="Short Stop Loss", group="Stop Loss and Take Profit", inline="Short_SL")
short_stop_loss = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval=5, group="Stop Loss and Take Profit", inline="Short_SL") * 0.01
use_long_stop_loss = input(false, title="Long Stop Loss", group="Stop Loss and Take Profit", inline="Long_SL")
long_stop_loss = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval=5, group="Stop Loss and Take Profit", inline="Long_SL") * 0.01
//Take Profit Inputs
use_short_take_profit = input(false, title="Short Take Profit", group="Stop Loss and Take Profit", inline="Short_TP")
short_take_profit = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval = 20, group="Stop Loss and Take Profit", inline="Short_TP") * .01
use_long_take_profit = input(false, title="Long Take Profit", group="Stop Loss and Take Profit", inline="Long_TP")
long_take_profit = input(title="(%)", type=input.float, minval=0.0, step=0.1,
defval = 20, group="Stop Loss and Take Profit", inline="Long_TP") * .01
longStopPrice = strategy.position_avg_price * (1 - long_stop_loss)
shortStopPrice = strategy.position_avg_price * (1 + short_stop_loss)
longLimitPrice = strategy.position_avg_price * (1 + long_take_profit)
shortLimitPrice = strategy.position_avg_price * (1 - short_take_profit)
if (strategy.position_size > 0.0)
if (use_long_stop_loss and not use_long_take_profit)
strategy.exit("Long", stop = longStopPrice)
if (use_long_take_profit and not use_long_stop_loss)
strategy.exit("Long", limit = longLimitPrice)
if (use_long_take_profit and use_long_stop_loss)
strategy.exit("Long", stop = longStopPrice, limit=longLimitPrice)
if (strategy.position_size < 0.0)
if (use_short_stop_loss and not use_short_take_profit)
strategy.exit("Short", stop = shortStopPrice)
if (use_short_take_profit and not use_short_stop_loss)
strategy.exit("Short", limit = shortLimitPrice)
if (use_short_take_profit and use_short_stop_loss)
strategy.exit("Short", stop = shortStopPrice, limit = shortLimitPrice)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)