Strategi penghentian kerugian dinamis yang adaptif terhadap fluktuasi ATR dan momentum knock-in


Tanggal Pembuatan: 2023-10-09 15:30:29 Akhirnya memodifikasi: 2023-10-09 15:30:29
menyalin: 0 Jumlah klik: 628
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini menggabungkan K-value, indikator acak dinamika, dan ATR, indikator volatilitas, untuk secara dinamis menyesuaikan garis stop dan entry K-value sesuai dengan nilai ATR, mewujudkan gagasan untuk secara otomatis menyesuaikan garis stop dan entry sesuai dengan fluktuasi pasar.

Prinsip Strategi

  1. K-nilai yang dihitung dengan panjang len adalah sma ((close, stoch ((high, low, len), smoothK), yang mewakili nilai K dari indikator acak.

  2. Nilai ATR yang dihitung dengan panjang len adalahatr ((len) ⋅

  3. Berdasarkan nilai ATR memetakan stop loss line plot ((rsi ((atr, len) + lowLine, …, title = “low line”) dan entry line plot ((rsi ((atr, len)*-1+100-lowLine, …, title = “up line”)。

  4. Tentukan kapan nilai K akan menembus garis masuk (crossover) dan garis berhenti (crossunder) untuk menghasilkan sinyal beli dan jual.

  5. Menggambar warna latar belakang pembelian dan penjualan.

  6. Bila sinyal di atas terpenuhi, maka dilakukan transaksi jual beli dan pengaturan stop loss.

Analisis Keunggulan Strategi

  1. Strategi ini secara dinamis menyesuaikan garis stop loss dan entry line sesuai dengan volatilitas pasar ATR, dan dapat secara otomatis menyesuaikan risiko stop loss sesuai dengan volatilitas pasar.

  2. Ketika pasar berfluktuasi besar, jarak antara stop loss dan entry line ditarik lebih jauh, sehingga stop loss tidak terguncang.

  3. Ketika pasar berfluktuasi tenang, jarak antara garis stop dan garis masuk akan semakin sempit, sehingga Anda dapat menghentikan kerugian tepat waktu.

  4. Menggunakan indikator momentum K nilai untuk menentukan masuk dan keluar. Nilai K dapat bereaksi terhadap perubahan kecepatan harga, dapat menangkap titik balik.

  5. Kombinasi indikator momentum dan indikator volatilitas dapat menangkap tren dan secara otomatis menyesuaikan risiko sesuai dengan fluktuasi.

Analisis Risiko Strategi

  1. K-value mudah menghasilkan false breakout, yang dapat memicu sinyal transaksi yang tidak perlu. K-value parameter smoothK dapat disesuaikan dengan tepat untuk meluruskan garis K.

  2. ATR parameter len diatur terlalu besar, garis stop dan garis masuk jarak terlalu besar, risiko mungkin terlalu tinggi. Anda dapat menguji stabilitas dari parameter len yang berbeda.

  3. Tracking stop-loss saja tidak dapat menentukan apakah posisi stop-loss masuk akal, dan tidak dapat mengontrol risiko stop-loss tunggal. Anda dapat mempertimbangkan untuk mengontrol risiko stop-loss tunggal dengan algoritma stop-loss yang diharapkan.

  4. Sinyal-sinyal strategi sering terjadi dan biaya transaksi tinggi. Parameter entry line lowLine dapat disesuaikan dengan tepat untuk mengontrol frekuensi transaksi.

Arah optimasi strategi

  1. Uji penyesuaian parameter K-value smoothK untuk menemukan kombinasi parameter optimal untuk nilai K-value smoothK.

  2. Uji nilai yang berbeda dari parameter ATR len untuk menentukan parameter ATR yang sesuai.

  3. Mengoptimalkan parameter lowLine entry, menemukan parameter optimal untuk mengontrol frekuensi transaksi.

  4. Pertimbangkan untuk memfilter sinyal masuk dalam kombinasi dengan indikator lain, untuk menghindari false breakout. Seperti kombinasi dengan indikator volume transaksi, indikator KDJ, dll.

  5. Pertimbangkan untuk mengoptimalkan cara menghentikan kerugian, memperbaiki stop loss yang diharapkan, dan secara proaktif mengontrol risiko stop loss.

Meringkaskan

Strategi ini didasarkan pada nilai K indikator momentum dan ATR indikator volatilitas yang mewujudkan pemikiran untuk secara dinamis menyesuaikan garis stop loss dan garis masuk, baik yang dapat menangkap tren dan dapat secara otomatis menyesuaikan risiko berdasarkan fluktuasi, merupakan strategi yang sangat inovatif dan praktis. Optimasi lebih lanjut melalui parameter, perbaikan metode stop loss, dan lain-lain dapat membuat strategi lebih stabil dan dapat diandalkan, dengan prospek pengembangan yang sangat baik.

Kode Sumber Strategi
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Stoch + ATR", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

len = input(34, minval=1, title="Length for Main Stochastic & ATR") 
smoothK = input(2, minval=1, title="SmoothK for Main Stochastic")
lowLine = input(10, minval=-50, maxval=50, title="Multiplier for up/low lines")

//Stoch formula
k = sma(stoch(close, high, low, len), smoothK)
plot(k, color=aqua, title = "Stoch")

//len=input
atr=atr(len)
plot(rsi(atr, len)+lowLine , color=red,linewidth=2, title = "low line")
plot(rsi(atr, len)*-1+100-lowLine, color=lime,linewidth=2, title = "up line")

aboveLine = crossunder(k,(rsi(atr, len)+lowLine))? 1 : 0
belowLine = crossover(k,(rsi(atr, len)*-1+100-lowLine))? 1 : 0

aboveLine2 = crossover(k,(rsi(atr, len)+lowLine))? 1 : 0
belowLine2 = crossunder(k,(rsi(atr, len)*-1+100-lowLine))? 1 : 0

skip=(aboveLine2==1 or belowLine2==1) and (aboveLine==1 or belowLine==1)? 1 : 0

//BackGroound Color Plots
plotchar(belowLine==1 and skip==0, title="Buy Signal", char='B', location=location.bottom, color=white, transp=0, offset=0)
plotchar(aboveLine==1 and skip==0, title="Sell Signal", char='S', location=location.top, color=white, transp=0, offset=0)
plotchar(belowLine2==1 and skip==0, title="Close Signal", char='C', location=location.bottom, color=white, transp=0, offset=0)
plotchar(aboveLine2==1 and skip==0, title="Close Signal", char='C', location=location.top, color=white, transp=0, offset=0)

bgcolor(aboveLine==1 ? red : na, transp=30, title = "sell signal")
bgcolor(belowLine==1 ? lime : na, transp=30, title = "buy signal")

bgcolor(aboveLine2==1 ? lime : na, transp=80, title = "close short")
bgcolor(belowLine2==1 ? red : na, transp=80, title = "close long")

bgcolor(skip==1 ? black : na, transp=0, title = "skip signal")

//strategy
longCondition = belowLine==1
shortCondition = aboveLine==1

strategy.entry("BUY", strategy.long, when = longCondition)
strategy.entry("SELL", strategy.short, when = shortCondition)
strategy.cancel_all(when = skip==1)