Adaptive Trend Tracking Stop Loss Strategi

Penulis:ChaoZhang, Tanggal: 2023-10-17 14:04:28
Tag:

img

Gambaran umum

Strategi ini menggunakan metode stop trailing volatility Wilder, dikombinasikan dengan indikator ATR dan berbagai jenis moving average, untuk menerapkan strategi stop loss trend tracking adaptif.

Logika Strategi

Inti dari strategi ini adalah algoritma stop trailing volatility Wilder. Ini pertama menghitung indikator ATR, dan secara dinamis memetakan garis stop loss sesuai dengan panjang dan pengganda ATR input. Kemudian melacak tertinggi tertinggi dan terendah terendah dari garis stop loss berdasarkan opsi harga yang dipilih di antara harga dekat, tinggi dan rendah. Ini mengirim sinyal perdagangan ketika harga melanggar garis stop loss.

Dalam kode, fungsi f_ma mengimplementasikan berbagai moving average termasuk RMA, EMA, SMA dan Hull MA. Indikator ATR dihitung dan dikalikan dengan pengganda yang ditentukan pengguna untuk menghasilkan garis trailing stop berbasis volatilitas. Tingkat tertinggi dan terendah dari garis ini dilacak menggunakan fungsi tertinggi dan terendah. Perdagangan dilakukan ketika harga menembus garis trailing stop ini.

Dengan menggunakan indikator ATR secara fleksibel, rata-rata bergerak yang berbeda dan parameter yang dapat disesuaikan, strategi ini mewujudkan sistem stop loss pelacakan tren yang sangat adaptif.

Analisis Keuntungan

  • Strategi ini memanfaatkan algoritma Stop Trailing Volatility Wilder, yang merupakan metodologi stop loss trend tracking yang matang dan dapat diandalkan.

  • Strategi ini menggunakan indikator ATR untuk secara dinamis menghitung garis stop loss, menghindari titik stop loss yang kaku.

  • Pelaksanaan berbagai rata-rata bergerak termasuk RMA, EMA, SMA dan Hull MA meningkatkan kemampuan adaptasi strategi.

  • Dengan menyesuaikan panjang ATR, parameter multiplier, parameter yang dioptimalkan dapat ditemukan untuk pasar yang berbeda, meningkatkan kinerja strategi.

  • Penggunaan opsi harga yang berbeda seperti harga tinggi, rendah, dekat memungkinkan optimasi di berbagai produk.

  • Singkatnya, ini adalah strategi stop loss yang dapat diandalkan, adaptif dan mudah dioptimalkan untuk melacak tren.

Analisis Risiko

  • Strategi ini sangat bergantung pada optimasi parameter. ATR yang tepat dan parameter pengganda perlu ditemukan melalui pengujian untuk pasar dan produk yang berbeda, jika tidak efek stop loss mungkin tidak ideal.

  • Dalam pasar yang berkisar, garis stop loss ATR dapat memicu seringnya stop out yang tidak dibenarkan. indikator penyaringan tren perlu diperkenalkan untuk mengoptimalkan ini.

  • Jika garis stop loss terlalu lebar, peluang kerugian akan terlewatkan. Jika terlalu ketat, frekuensi perdagangan dan biaya slippage akan meningkat. Titik seimbang perlu ditemukan melalui pengujian yang cermat.

  • Terlalu banyak opsi rata-rata bergerak dapat menyebabkan penyimpangan kinerja.

  • Strategi ini berfokus pada pelacakan tren dan tidak secara langsung menargetkan keuntungan.

  • Dengan parameter yang tidak tepat, strategi dapat menunjukkan perdagangan yang berlebihan atau periode kepemilikan yang terlalu besar.

Arahan Optimasi

  • Indikator identifikasi tren dapat diperkenalkan untuk menghindari whipsaws di pasar yang bervariasi.

  • Indikator pembalikan dapat diuji untuk memungkinkan stop out dan pembalikan yang lebih cepat ketika tren naik dan turun bergantian.

  • Parameter periode ATR dapat berkorelasi dengan karakteristik produk, sehingga produk yang berbeda menggunakan periode ATR yang berbeda.

  • Indikator volume dapat digunakan untuk memperketat garis stop loss lebih cepat ketika volume menurun secara signifikan.

  • Persentase stop loss dapat ditingkatkan, tetapi tidak terlalu ketat untuk menghindari berhenti pada retracements normal.

  • Indikator lain dapat digunakan untuk mengukur momentum, dan mengoptimalkan parameter untuk melonggarkan berhenti ketika momentum lemah.

Ringkasan

Berdasarkan konsep Wilder Volatility Trailing Stop, strategi ini memanfaatkan indikator ATR untuk merancang sistem stop loss pelacakan tren yang sangat adaptif. Melalui optimasi parameter dapat dipasang pada produk perdagangan yang berbeda, dan merupakan pendekatan stop loss yang andal dan praktis. Tetapi risiko perlu dikelola dengan peningkatan lebih lanjut seperti filter tren dan elemen volume untuk membuatnya lebih kuat. Ini juga perlu dikombinasikan dengan strategi lain untuk memaksimalkan utilitas teknik stop loss.


/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/

// Wilder's Volatility Trailing Stop Strategy with various MA's
// by SparkyFlary

//For Educational Purposes
//Results can differ on different markets and can fail at any time. Profit is not guaranteed.
strategy(title="Wilder's Volatility Trailing Stop Strategy with various MA's", shorttitle="Trailing Stop Strategy", overlay=true)

AtrMult = input(3.0, title="ATR multiplier")
ATRlength = input(7, title="ATR length")
ATRavgType = input("RMA", title="ATR moving average type", options=["RMA", "EMA", "SMA", "HULL"])
sicType = input("close", title="significant close type for trail calculation", options=["close", "high-low"])

//function for choosing moving averages
f_ma(type, src, len) =>
    float result = 0
    if type == "RMA" // Wilder's moving averaege or Running moving average
        result := rma(src, len)
    if type == "EMA" // Exponential moving average
        result := ema(src, len)
    if type == "SMA" // Simple moving average
        result := sma(src, len)
    if type == "HULL" // Hull moving average
        result := wma(2 * wma(src, len / 2) - wma(src, len), round(sqrt(len)))
    result

ATR = f_ma(ATRavgType, tr, ATRlength)
upperTrail = lowest(sicType=="close"?close:low, ATRlength) + AtrMult * ATR
lowerTrail = highest(sicType=="close"?close:high, ATRlength) - AtrMult * ATR

float TS = 0
TS := close < TS[1] ? upperTrail[1] : close > TS[1] ? lowerTrail[1] : TS

//plot
plot(TS, title="trailing stop", color=close<TS?color.red:color.green)

//Strategy
buy = crossover(close, TS)
//sell = close < TS
short = crossunder(close, TS)
//cover = close > TS

strategy.entry(id="enter long", long=true, when=buy)
//strategy.close(id="enter long", comment="exit long", when=sell)
strategy.entry(id="enter short", long=false, when=short)
//strategy.close(id="enter short", comment="exit short", when=cover)

Lebih banyak