Ramalan arah aliran berbilang tempoh dinamik digabungkan dengan strategi penapisan purata bergerak

EMA SMA ML AI PREDICTION Trend FILTER BACKTEST
Tarikh penciptaan: 2025-02-20 14:03:44 Akhirnya diubah suai: 2025-02-27 17:38:36
Salin: 1 Bilangan klik: 345
2
fokus pada
319
Pengikut

Ramalan arah aliran berbilang tempoh dinamik digabungkan dengan strategi penapisan purata bergerak Ramalan arah aliran berbilang tempoh dinamik digabungkan dengan strategi penapisan purata bergerak

Gambaran keseluruhan

Strategi ini adalah sistem pengesanan trend yang menggabungkan analisis teknikal tradisional dan kaedah kecerdasan buatan moden. Ia menggunakan purata bergerak indeks (EMA) dan purata bergerak sederhana (SMA) sebagai penapis trend, sambil memperkenalkan model ramalan untuk mengoptimumkan masa masuk.

Prinsip Strategi

Logik utama strategi ini terdiri daripada tiga komponen utama:

  1. Sistem penilaian trend - menggunakan EMA dan SMA 200 kitaran sebagai penapis trend utama untuk menilai arah trend semasa melalui hubungan kedudukan harga dengan garis rata-rata
  2. Modul ramalan - Menggunakan komponen ramalan yang boleh diperluaskan, pada masa ini menggunakan ramalan analog, yang kemudiannya boleh digantikan dengan model pembelajaran mesin
  3. Pengurusan Kedudukan - menetapkan tempoh pegangan 4 baris K yang tetap untuk mengawal masa dan risiko pegangan

Penciptaan isyarat perdagangan memerlukan keserasian arah trend dan isyarat ramalan, iaitu:

  • Isyarat berbilang kepala: harga berada di atas EMA dan SMA dan nilai ramalan positif
  • Isyarat kosong: harga berada di bawah EMA dan SMA dengan nilai ramalan negatif

Kelebihan Strategik

  1. Struktur yang jelas - logik strategi ringkas dan mudah difahami dan dikekalkan
  2. Kawalan risiko - Kawalan risiko yang berkesan melalui kitaran pegangan tetap dan penapisan dua hala
  3. Skala - Modul ramalan direka dengan fleksibiliti untuk mengakses model ramalan yang berbeza mengikut keperluan
  4. Adaptif - parameter boleh disesuaikan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza
  5. Operasi frekuensi sederhana - Operasi pada tahap garis siang mengurangkan kos transaksi dan tekanan mental

Risiko Strategik

  1. Risiko trend reversal - kerugian berturut-turut mungkin berlaku pada titik perubahan trend
  2. Sensitiviti parameter - Pilihan untuk tempoh garis rata-rata dan tempoh memegang kedudukan mempunyai kesan yang lebih besar terhadap prestasi strategi
  3. Ketergantungan model - ketepatan modul ramalan memberi kesan langsung kepada kesan strategi
  4. Kesan slippage - Operasi pada tahap garis matahari mungkin menghadapi slippage yang lebih besar
  5. Kepercayaan kepada keadaan pasaran - mungkin kurang baik dalam pasaran yang bergolak

Arah pengoptimuman strategi

  1. Peningkatan model ramalan - memperkenalkan model pembelajaran mesin untuk menggantikan ramalan rawak sedia ada
  2. Siklus pegangan dinamik - tempoh pegangan yang disesuaikan secara dinamik dengan turun naik pasaran
  3. Pengoptimuman Hentikan Kerosakan - Menambah mekanisme Hentikan Kerosakan Dinamik untuk meningkatkan keupayaan kawalan risiko
  4. Pengurusan kedudukan - memperkenalkan sistem pengurusan kedudukan berdasarkan kadar turun naik
  5. Penapisan multidimensi - penambahbaikan dalam jumlah transaksi, kadar turun naik dan lain-lain

ringkaskan

Strategi ini membina sistem pengesanan trend yang mantap dengan menggabungkan analisis teknikal tradisional dan kaedah ramalan moden. Kelebihan utamanya adalah kejernihan logik, kawalan risiko dan skalabiliti yang kuat. Dengan pengoptimuman strategi, terutamanya dengan peningkatan dalam model ramalan dan kawalan risiko, ia dijangka meningkatkan lagi kestabilan dan keuntungan strategi.

Kod sumber strategi
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("My Strategy", overlay=true)

// Parameters (adjust as needed)
neighborsCount = 8
maxBarsBack = 2000
featureCount = 5
useDynamicExits = true
useEmaFilter = true
emaPeriod = 200
useSmaFilter = true
smaPeriod = 200

// Moving Average Calculations
ema = ta.ema(close, emaPeriod)
sma = ta.sma(close, smaPeriod)

// Trend Conditions
isEmaUptrend = close > ema
isEmaDowntrend = close < ema
isSmaUptrend = close > sma
isSmaDowntrend = close < sma

// Model Prediction (Replace with your real model)
// Here a simulation is used, replace it with real predictions
prediction = math.random() * 2 - 1 // Random value between -1 and 1

// Entry Signals
isNewBuySignal = prediction > 0 and isEmaUptrend and isSmaUptrend
isNewSellSignal = prediction < 0 and isEmaDowntrend and isSmaDowntrend

// Exit Signals
var int barsHeld = 0
var bool in_position = false
var int entry_bar = 0

if isNewBuySignal and not in_position
    in_position := true
    entry_bar := bar_index
    barsHeld := 1
else if isNewSellSignal and not in_position
    in_position := true
    entry_bar := bar_index
    barsHeld := 1
else if in_position
    barsHeld := barsHeld + 1
    if barsHeld == 4
        in_position := false

endLongTradeStrict = barsHeld == 4 and isNewBuySignal[1]
endShortTradeStrict = barsHeld == 4 and isNewSellSignal[1]

// Backtest Logic
var float totalProfit = 0
var float entryPrice = na
var int tradeDirection = 0

if isNewBuySignal and tradeDirection <= 0
    entryPrice := close
    tradeDirection := 1
    strategy.entry("Long", strategy.long)

if isNewSellSignal and tradeDirection >= 0
    entryPrice := close
    tradeDirection := -1
    strategy.entry("Short", strategy.short)

if (endLongTradeStrict and tradeDirection == 1) or (endShortTradeStrict and tradeDirection == -1)
    exitPrice = close
    profit = (exitPrice - entryPrice) / entryPrice
    if tradeDirection == -1
        profit := (entryPrice - exitPrice) / entryPrice

    totalProfit := totalProfit + profit
    tradeDirection := 0
    strategy.close_all()

plot(close, color=color.blue)
plot(ema, color=color.orange)
plot(sma, color=color.purple)