Strategi ini mengimplementasikan mekanisme tracking stop loss persentase yang dapat dikonfigurasi untuk mengontrol risiko perdagangan. Ini memungkinkan untuk mengatur persentase stop loss untuk posisi panjang dan pendek, dan terus-menerus melacak harga tertinggi atau terendah ke arah yang menguntungkan dari harga masuk, sehingga memungkinkan stop loss dinamis.
Logika utama dari strategi ini adalah:
Strategi ini memungkinkan untuk menyesuaikan persentase stop loss, misalnya dengan pengaturan 10%; jika posisi panjang, itu akan dihitung secara real-time 10% di atas harga terendah sebagai garis stop loss; jika posisi pendek, dihitung di bawah 10% dari harga tertinggi sebagai garis stop loss.
Dengan cara ini, stop loss line akan terus bergerak ke arah yang menguntungkan, memungkinkan stop loss yang dilacak secara dinamis, melindungi keuntungan maksimum, sekaligus mengendalikan risiko.
Cara Mengatasinya:
Strategi ini dapat dioptimalkan:
Strategi ini menyediakan metode persentase yang efektif untuk melacak stop loss, yang dapat secara dinamis menyesuaikan garis stop loss. Ini dapat memaksimalkan perlindungan keuntungan, tetapi juga dapat secara efektif mengendalikan risiko. Dengan cara optimasi parameter, integrasi indikator, dan lain-lain, strategi stop loss dapat dibuat lebih cerdas dan dioptimalkan.
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// © theCrypster
//@version=4
strategy("Percent Trailing Stop %", overlay=true)
//ENTER SOME SETUP TRADES FOR TSL EXAMPLE
longCondition = crossover(sma(close, 10), sma(close, 20))
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 10), sma(close, 20))
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)
//TRAILING STOP CODE
trailStop = input(title="Long Trailing Stop (%)", type=input.float, minval=0.0, step=0.1, defval=10) * 0.01
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - trailStop)
max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + trailStop)
min(stopValue, shortStopPrice[1])
else
999999
//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=1, title="Long Trail Stop", offset=1, title="Long Trail Stop")
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=1, title="Short Trail Stop", offset=1, title="Short Trail Stop")
//EXIT TRADE @ TSL
if strategy.position_size > 0
strategy.exit(id="Close Long", stop=longStopPrice)
if strategy.position_size < 0
strategy.exit(id="Close Short", stop=shortStopPrice)