Trend Volatiliti Julat Adaptif Mengikuti Strategi Dagangan

WPR RSI SMA ATR Trend
Tarikh penciptaan: 2024-11-28 17:24:30 Akhirnya diubah suai: 2024-11-28 17:24:30
Salin: 4 Bilangan klik: 452
1
fokus pada
1617
Pengikut

Trend Volatiliti Julat Adaptif Mengikuti Strategi Dagangan

Gambaran keseluruhan

Ini adalah strategi pengesanan trend yang beradaptasi sendiri berdasarkan kadar turun naik dan kombinasi Williams Percent Range (William Index). Strategi ini menyesuaikan sensitiviti penghakiman trend dengan mengira julat turun naik harga dan meter tersuai, untuk menyesuaikan diri dengan lebih baik dalam keadaan pasaran yang berbeza. Inti strategi ini adalah untuk menyesuaikan parameter Indeks Williams secara dinamik dengan melihat keluasan turun naik harga, untuk menangkap titik peralihan trend pasaran dengan lebih tepat.

Prinsip Strategi

Strategi pertama mengira julat pergerakan harga (Range) dan purata bergerak (AvgRange) dalam satu kitaran. Dengan membandingkan hubungan perubahan harga dalam masa nyata dengan julat pergerakan purata, membina dua penghitung (TrueCount dan TrueCount2) untuk merekodkan kekerapan pergerakan yang ketara. Penghitung ini digunakan untuk menyesuaikan parameter pengiraan Indeks William secara dinamik, membolehkan strategi menyesuaikan kepekaan secara automatik mengikut keadaan pasaran yang bergolak.

Kelebihan Strategik

  1. Adaptif - Strategi dapat mengekalkan prestasi yang stabil dalam keadaan pasaran yang berbeza melalui mekanisme penyesuaian kadar turun naik
  2. Kawalan risiko yang sempurna - parameter risiko terbina dalam RISK yang membolehkan peniaga menyesuaikan keamatan strategi mengikut keutamaan risiko mereka
  3. Isyarat jelas - menggunakan mekanisme isyarat yang jelas untuk mengelakkan isyarat palsu
  4. Skala yang baik - kerangka dasar membolehkan pengoptimuman untuk memperkenalkan petunjuk teknikal lain
  5. Kecekapan pengiraan yang tinggi - menggunakan kaedah pengiraan yang mudah dan cekap, sesuai untuk transaksi masa nyata

Risiko Strategik

  1. Sensitiviti parameter - Pilihan parameter ASClength dan RISK akan memberi kesan yang ketara terhadap prestasi strategi
  2. Kepercayaan kepada keadaan pasaran - mungkin menghasilkan terlalu banyak isyarat perdagangan dalam pasaran yang bergolak
  3. Ketinggalan - Penggunaan purata bergerak boleh menyebabkan kelewatan masuk dan keluar
  4. Penembusan palsu - mungkin berlaku pada masa gelombang tinggi Adalah disyorkan untuk mengurangkan risiko dengan mengkaji semula parameter pengoptimuman dan menggabungkannya dengan penunjuk pengesahan lain.

Arah pengoptimuman strategi

  1. Memperkenalkan penunjuk kuantiti urus niaga - Kesan perubahan trend yang disahkan melalui kuantiti urus niaga
  2. Mengoptimumkan logik meter - boleh mempertimbangkan untuk menggunakan kaedah statistik yang lebih kompleks untuk menilai turun naik pasaran
  3. Penambahan mekanisme hentian kerugian - disyorkan untuk memperkenalkan hentian dinamik untuk mengawal risiko dengan lebih baik
  4. Penapisan keadaan pasaran - menambah modul penilaian keadaan pasaran untuk mengelakkan dagangan dalam keadaan pasaran yang tidak sesuai
  5. Penyesuaian parameter - membangunkan mekanisme pengoptimuman parameter secara automatik untuk meningkatkan kesesuaian strategi

ringkaskan

Ini adalah strategi inovatif yang menggabungkan analisis kadar turun naik dan pengesanan trend, meningkatkan kestabilan dan kebolehpercayaan strategi melalui mekanisme penyesuaian. Walaupun terdapat beberapa risiko yang wujud, strategi ini dijangka dapat mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran melalui penyetempatan parameter yang munasabah dan pelaksanaan arah pengoptimuman.

Kod 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")