Strategi Perdagangan Mengikuti Tren Volatilitas Rentang Adaptif

WPR RSI SMA ATR Trend
Tanggal Pembuatan: 2024-11-28 17:24:30 Akhirnya memodifikasi: 2024-11-28 17:24:30
menyalin: 4 Jumlah klik: 452
1
fokus pada
1617
Pengikut

Strategi Perdagangan Mengikuti Tren Volatilitas Rentang Adaptif

Ringkasan

Ini adalah strategi pelacakan tren adaptif berdasarkan volatilitas dan kombinasi Williams Percent Range. Strategi ini menyesuaikan sensitivitas penilaian tren dengan menghitung rentang fluktuasi harga dan penghitung khusus, sehingga dapat beradaptasi dengan lebih baik dalam berbagai lingkungan pasar. Inti dari strategi ini adalah menyesuaikan parameter Williams secara dinamis dengan mengamati amplitudo fluktuasi harga, sehingga dapat menangkap titik-titik pergeseran tren pasar dengan lebih akurat.

Prinsip Strategi

Strategi pertama kali menghitung rentang pergerakan harga dalam satu periode (Range) dan rata-rata bergerak (AvgRange). Dengan membandingkan hubungan perubahan harga secara real-time dengan rentang pergerakan rata-rata, didirikan dua counter (TrueCount dan TrueCount2) untuk mencatat frekuensi terjadinya fluktuasi yang signifikan.

Keunggulan Strategis

  1. Adaptif - Strategi dapat mempertahankan kinerja yang stabil di berbagai kondisi pasar melalui mekanisme adaptasi tingkat fluktuasi
  2. Pengendalian risiko yang sempurna - built-in parameter risiko RISK memungkinkan pedagang untuk menyesuaikan strategi agresifitas sesuai dengan preferensi risiko mereka sendiri
  3. Sinyal jelas - Menggunakan mekanisme sinyal yang jelas untuk menghindari sinyal palsu
  4. Skalabilitas yang baik - kerangka kebijakan memungkinkan untuk mengoptimalkan pengenalan indikator teknis lainnya
  5. Efisiensi komputasi tinggi - menggunakan metode komputasi yang sederhana dan efisien untuk transaksi real-time

Risiko Strategis

  1. Sensitivitas parameter - pilihan parameter ASClength dan RISK secara signifikan mempengaruhi kinerja kebijakan
  2. Ketergantungan pada kondisi pasar - kemungkinan sinyal trading yang berlebihan di pasar yang bergejolak
  3. Keterlambatan - Menggunakan moving average dapat menyebabkan keterlambatan masuk dan keluar
  4. False breakout - sinyal palsu mungkin muncul pada periode gelombang tinggi Disarankan untuk mengurangi risiko dengan mengevaluasi kembali parameter optimasi, dan dikombinasikan dengan indikator konfirmasi lainnya.

Arah optimasi strategi

  1. Memperkenalkan indikator volume transaksi - validasi perubahan tren melalui volume transaksi
  2. Optimalkan logika counter - dapat mempertimbangkan untuk menggunakan metode statistik yang lebih kompleks untuk menilai fluktuasi pasar
  3. Menambahkan mekanisme stop loss - disarankan untuk memperkenalkan stop loss dinamis untuk mengendalikan risiko dengan lebih baik
  4. Market Environment Filter - Menambahkan modul penilaian kondisi pasar untuk menghindari transaksi dalam kondisi pasar yang tidak sesuai
  5. Adaptasi parameter - mengembangkan mekanisme optimasi parameter secara otomatis untuk meningkatkan adaptasi strategi

Meringkaskan

Ini adalah strategi inovatif yang menggabungkan analisis volatilitas dan pelacakan tren, meningkatkan stabilitas dan keandalan strategi melalui mekanisme adaptasi. Meskipun ada beberapa risiko yang melekat, strategi ini diharapkan untuk mempertahankan kinerja yang stabil di berbagai lingkungan pasar dengan pengaturan parameter yang masuk akal dan penerapan arah optimasi.

Kode Sumber Strategi
/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ASCTrend", shorttitle="ASCTrend", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

eternalfg = input(false, title="eternal 確定")
eternal = eternalfg ? 1 : 0
ASClength = input.int(title="ASC Length", minval=4, defval=10)
RISK = input.int(title="RISK", minval=0, defval=3)

// Custom sum function
customSum(source, length) =>
    sum = 0.0
    for i = 0 to length - 1
        sum := sum + source[i]
    sum

x1 = 67 + RISK
x2 = 33 - RISK
Range = ta.highest(ASClength) - ta.lowest(ASClength)
AvgRange = ta.sma(Range, ASClength)
CountFg = math.abs(open - close) >= AvgRange * 2.0 ? 1 : 0
TrueCount = customSum(CountFg, ASClength)
CountFg2 = math.abs(close[3] - close) >= AvgRange * 4.6 ? 1 : 0
TrueCount2 = customSum(CountFg2, ASClength - 3)
wpr3RR = ta.wpr(3 + RISK + RISK)
wpr3 = ta.wpr(3)
wpr4 = ta.wpr(4)
WprAbs = 100 + (TrueCount2 > 0 ? wpr4 : TrueCount > 0 ? wpr3 : wpr3RR)
ASC_Trend = 0
ASC_Trend := WprAbs[eternal] < x2[eternal] ? -1 : WprAbs[eternal] > x1[eternal] ? 1 : ASC_Trend[1]

if (ta.crossover(ASC_Trend, 0))
    strategy.entry("Long", strategy.long)

if (ta.crossunder(ASC_Trend, 0))
    strategy.entry("Short", strategy.short)

plotshape(ta.crossover(ASC_Trend, 0), location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, text="B", textcolor=color.white)
plotshape(ta.crossunder(ASC_Trend, 0), location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, text="S", textcolor=color.white)

alertcondition(ta.crossover(ASC_Trend, 0), title="ASC_Trend UP", message="ASC_Trend UP")
alertcondition(ta.crossunder(ASC_Trend, 0), title="ASC_Trend Down", message="ASC_Trend Down")