- Praja Strategi
- Strategi Stop Loss Mobile ATR berdasarkan indikator UT Bot
Strategi Stop Loss Mobile ATR berdasarkan indikator UT Bot
Penulis:
ChaoZhang, Tanggal: 2024-03-11 11:17:33
Tag:
Pengamatan
Strategi ini didasarkan pada indikator UT Bot yang dikembangkan oleh QuantNomad, yang menggabungkan gagasan stop loss mobile. Kode asli ditulis oleh @Yo_adriiiiaan, yang telah diubah oleh @HPotter. Strategi ini akan digunakan bersama dengan Smart Money Concepts dari LuxAlgo. Strategi ini saat ini sedang dalam tahap pengujian.
Prinsip Strategi
Strategi ini didasarkan pada prinsip-prinsip berikut:
- Ketika harga ditutup di atas garis rata-rata bergerak sederhana 50 hari, perdagangan lebih banyak dilakukan.
- Untuk posisi multi-head, atur harga stop loss bergerak. Harga stop loss bergerak adalah 80% dari harga penutupan saat ini ((1-20%). Harga stop loss bergerak akan bergerak naik dengan harga naik, tetapi tidak turun, sehingga berperan sebagai pelindung keuntungan.
- Untuk posisi kosong, juga atur harga stop loss bergerak. Harga stop loss bergerak adalah 120% dari harga penutupan saat ini ((1 + 20%). Harga stop loss bergerak akan turun seiring harga turun, tetapi tidak akan naik.
- Menggunakan ATR (Average True Range) sebagai referensi untuk stop loss bergerak. Cara menghitung harga stop loss bergerak ATR adalah: ketika bergerak ke atas, ambil nilai yang lebih besar dari kedua harga stop loss bergerak ATR dan saat ini tutup harga - ATR*Key Value; ketika bergerak ke bawah, ambil nilai yang lebih kecil dari kedua harga stop loss bergerak ATR dan saat ini tutup harga + ATR*Key Value.
- Berdasarkan penembusan harga stop loss bergerak ATR, menentukan arah kepemilikan saat ini. Memegang posisi multi-head ketika harga menembus harga stop loss bergerak ATR ke atas; Memegang posisi blank ketika harga menembus harga stop loss bergerak ATR ke bawah; Jika tidak, mempertahankan posisi kepemilikan saat ini tidak berubah.
Analisis Keunggulan
- Pengaturan stop loss yang bergerak dapat melindungi keuntungan dengan baik, memungkinkan strategi untuk mendapatkan lebih banyak keuntungan di pasar yang sedang tren.
- Setel stop loss untuk posisi multi-head dan kosong, yang dapat disesuaikan dengan berbagai pasar.
- Dengan menggunakan ATR sebagai referensi untuk stop loss, posisi stop loss dapat diatur secara dinamis, lebih fleksibel dan efektif.
- Parameter Key Value yang tersedia untuk pengoptimalan pengguna, dapat disesuaikan sesuai dengan varietas dan siklus yang berbeda, meningkatkan fleksibilitas.
Analisis Risiko
- Dalam pasar yang bergolak, seringnya stop loss dapat menyebabkan terlalu banyak transaksi, meningkatkan biaya proses, dan mengurangi keuntungan.
- Stop loss bergerak dengan persentase tetap relatif sederhana dan mungkin tidak dapat mengatasi fluktuasi harga dengan baik di beberapa pasar.
- Strategi hanya mempertimbangkan stop loss bergerak, tanpa stop loss bergerak, dan mungkin kehilangan beberapa peluang keuntungan.
- Pemilihan parameter memiliki dampak yang lebih besar pada kinerja strategi, dan parameter yang tidak tepat dapat menimbulkan risiko mundur yang lebih besar.
Optimasi arah
- Anda dapat mempertimbangkan untuk mengoptimalkan kondisi masuk untuk meningkatkan reliabilitas sinyal dengan kombinasi dengan indikator atau kondisi lain, seperti volume perdagangan, tingkat fluktuasi, dll.
- Untuk metode perhitungan stop loss yang bergerak, cara yang lebih kompleks dan efektif dapat dieksplorasi, seperti menggunakan stop loss paralleling, stop loss persentase dinamis, dan lain-lain.
- Mekanisme stop-gap bergerak dapat disertakan, seperti mengatur stop-gap dinamis berdasarkan ATR atau persentase, untuk lebih mengunci keuntungan.
- Untuk varietas dan siklus yang berbeda, parameter dapat dioptimalkan untuk menemukan kombinasi parameter yang paling cocok.
Pengamatan
Strategi ini didasarkan pada indikator UT Bot, yang menambahkan logika stop loss yang bergerak, yang dapat berperan sebagai pelindung keuntungan dalam pasar tren. Pada saat yang sama, strategi ini mengatur stop loss untuk posisi multihead dan kosong, masing-masing, dan memiliki kemampuan beradaptasi yang kuat. Menggunakan ATR sebagai dasar referensi stop loss yang bergerak, posisi stop loss dapat disesuaikan secara dinamis, meningkatkan fleksibilitas. Namun, strategi ini dapat menghadapi risiko perdagangan yang tinggi yang dapat menimbulkan kerugian stop loss yang sering terjadi dalam pasar yang bergolak, dan tidak memiliki pengaturan stop loss yang bergerak, dan kemungkinan kehilangan keuntungan.
Di masa depan, strategi dapat disempurnakan untuk mendapatkan hasil yang lebih stabil, mulai dari mengoptimalkan kondisi masuk, mengeksplorasi cara berhenti bergerak yang lebih kompleks, memasukkan mekanisme berhenti bergerak, mengoptimalkan parameter untuk berbagai varietas dan siklus. Secara keseluruhan, ide strategi ini sederhana, mudah dimengerti dan diimplementasikan, tetapi ada ruang untuk pengoptimalan lebih lanjut yang layak untuk terus dieksplorasi dan ditingkatkan.
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Trailingstop", overlay=true)
if close > sma(close, 50)
strategy.entry("long", strategy.long)
// Trailing stop loss for long positions
Trailperc = 0.20
price_stop_long = 0.0
if (strategy.position_size > 0)
stopValue = close * (1 - Trailperc)
price_stop_long := max(stopValue, price_stop_long[1])
else
price_stop_long := 0
if (strategy.position_size > 0)
strategy.exit(id="stoploss_long", stop=price_stop_long)
// Trailing stop loss for short positions
Trailperc_short = 0.20
price_stop_short = 0.0
if (strategy.position_size < 0)
stopValue_short = close * (1 + Trailperc_short)
price_stop_short := min(stopValue_short, price_stop_short[1])
else
price_stop_short := 0
if (strategy.position_size < 0)
strategy.exit(id="stoploss_short", stop=price_stop_short)
// ATR Trailing Stop for visualization
keyvalue = input(3, title="Key Value. 'This changes the sensitivity'", step=0.5)
atrperiod = input(10, title="ATR Period")
xATR = atr(atrperiod)
nLoss = keyvalue * xATR
xATRTrailingStop = 0.0
xATRTrailingStop := iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss),
iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
pos = 0
pos := iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue
plot(xATRTrailingStop, color = xcolor, title = "Trailing Stop")
Informasi lebih lanjut