
Strategi Stop Loss Tracking Trending Alpha adalah strategi yang dibangun di atas strategi Trend Alpha dengan mekanisme Tracking Stop Loss yang dapat mengontrol risiko secara lebih efektif dan meningkatkan tingkat pengembalian secara keseluruhan.
Strategi ini pertama-tama menggunakan indikator Alpha untuk menentukan tren harga, sinyal bullish ketika indikator Alpha naik, sinyal bearish ketika indikator Alpha turun. Strategi ini menghasilkan sinyal beli dan jual berdasarkan garpu emas indikator Alpha.
Pada saat yang sama, strategi ini mengaktifkan mekanisme tracking stop loss. Tracking stop loss default 10% dari harga penutupan hari, ketika memegang posisi multi-head, jika harga turun lebih dari stop loss maka stop loss keluar; Ketika memegang posisi kosong, jika harga naik lebih dari stop loss maka stop loss keluar.
Tren alpha memiliki kemampuan yang lebih kuat untuk menilai tren harga, lebih efektif daripada indikator seperti rata-rata bergerak biasa.
Mengaktifkan mekanisme tracking stop loss, Anda dapat secara efektif mengendalikan kerugian tunggal, mengurangi risiko.
Strategi ini memiliki kemampuan pengendalian risiko yang kuat, sehingga dapat meminimalkan kerugian bahkan dalam situasi yang tidak menguntungkan.
Strategi ini memiliki jumlah referensi yang lebih sedikit, efisiensi komputasi yang tinggi, dan cocok untuk perdagangan frekuensi tinggi.
Strategi ini menghasilkan lebih banyak sinyal perdagangan yang tidak perlu pada saat penyesuaian lateral, yang akan meningkatkan biaya perdagangan dan kehilangan slippage.
Untuk mengaktifkan pelacakan stop loss, Anda perlu mengatur stop loss rasio yang masuk akal. Rasio yang terlalu besar atau terlalu kecil tidak akan menguntungkan strategi.
Jika harga saham berfluktuasi secara drastis, kemungkinan besar stop loss akan dipicu, meningkatkan risiko lock-in.
Optimalisasi parameter stop loss memerlukan pertimbangan komprehensif dari berbagai faktor seperti karakteristik indikator, frekuensi perdagangan, dan lain-lain.
Risiko di atas dapat diatasi dengan menyesuaikan parameter indikator Alpha, mengatur stop loss DYNAMIC, mengurangi siklus perdagangan, dll.
Anda dapat menguji parameter indikator yang berbeda untuk menemukan kombinasi parameter indikator Alpha yang lebih cocok.
Cobalah untuk mengatur stop loss berdasarkan ATR yang dinamis, sehingga dapat beradaptasi dengan lebih baik terhadap pergerakan pasar.
Sinyal penyaringan dapat dikombinasikan dengan indikator lain, seperti MACD, KD, dan lain-lain, untuk menyaring beberapa sinyal palsu.
Parameter dapat dioptimalkan secara otomatis berdasarkan hasil real-time dan pengukuran ulang, meningkatkan pilihan parameter dengan menggunakan teknologi seperti pembelajaran mesin.
Strategi stop loss mengikuti tren alfa menggabungkan penilaian tren dengan pengendalian risiko, yang dapat secara efektif membedakan tren harga, dan mengunci keuntungan untuk mengurangi risiko. Dibandingkan dengan strategi mengikuti tren sederhana, strategi ini dapat menghasilkan keuntungan yang lebih tinggi dan stabil. Dengan pengoptimalan berbagai aspek, diharapkan untuk mendapatkan kinerja yang lebih baik.
/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5
strategy("AlphaTrend Strategy", shorttitle='ATst', overlay=true, format=format.price, precision=2, margin_long=100, margin_short=100)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=false)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT
color1 = AlphaTrend > AlphaTrend[1] ? #00E60F : AlphaTrend < AlphaTrend[1] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)
fill(k1, k2, color=color1)
buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])
K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])
plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))
plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))
// //ENTER SOME SETUP TRADES FOR TSL EXAMPLE
// longCondition = ta.crossover(ta.sma(close, 10), ta.sma(close, 20))
// if longCondition
// strategy.entry('My Long Entry Id', strategy.long)
// shortCondition = ta.crossunder(ta.sma(close, 10), ta.sma(close, 20))
// if shortCondition
// strategy.entry('My Short Entry Id', strategy.short)
longCondition = buySignalk
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = sellSignalk
if (shortCondition)
strategy.entry("Short", strategy.short)
enableTrailing = input.bool(title='Enable Trailing Stop (%)',defval = true)
//TRAILING STOP CODE
trailStop = input.float(title='Trailing (%)', 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)
math.max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + trailStop)
math.min(stopValue, shortStopPrice[1])
else
999999
//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), 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.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Short Trail Stop', offset=1, title='Short Trail Stop')
if enableTrailing
//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)