Adaptive Moving Average dan Strategi Dagangan Crossover Moving Average

Penulis:ChaoZhang, Tarikh: 2024-01-23 14:13:55
Tag:

img

Ringkasan

Strategi ini menghasilkan isyarat dagangan berdasarkan Indikator Adaptif untuk Purata Bergerak (AIOMA) dan indikator Purata Bergerak Bertimbang (WMA).

Nama Strategi

AIOMA-WMA Strategy Crossover Beradaptasi

Logika Strategi

Strategi ini merangkumi komponen utama berikut:

  1. Pengiraan Indikator AIOMA

    • Mengira siri Exponential Moving Averages (EMA) dengan panjang tertentu
    • Rantai EMA ini untuk mewujudkan nilai yang halus
    • AIOMA akhir adalah EMA nilai terakhir yang dihaluskan
  2. Pengiraan Penunjuk WMA

    • Mengira WMA dengan panjang yang ditentukan
  3. Penjanaan Isyarat

    • Beli isyarat apabila WMA melintasi di atas AIOMA
    • Jual isyarat apabila WMA melintasi di bawah AIOMA
  4. Logik Perdagangan

    • Masukkan kedudukan panjang pada isyarat beli
    • Masukkan kedudukan pendek pada isyarat jual
    • Kedudukan dekat pada isyarat silang belakang

Kelebihan

  1. Menggunakan dua jenis purata bergerak yang berbeza meningkatkan ketepatan isyarat
  2. AIOMA mengurangkan isyarat palsu melalui pelbagai pelembap eksponensial
  3. WMA sebagai penunjuk utama bertindak balas lebih cepat terhadap perubahan harga untuk menangkap trend awal
  4. Logik perdagangan yang mudah, mudah difahami dan dilaksanakan

Risiko

  1. Kelemahan yang berlebihan disebabkan oleh pelbagai pelembap EMA
  2. WMA terdedah kepada isyarat yang salah daripada turun naik harga jangka pendek
  3. Tiada logik stop loss, boleh membawa kepada kerugian yang besar

Boleh mengurangkan risiko melalui pengoptimuman parameter, menambah stop loss, penapisan dengan penunjuk lain dll.

Kawasan Peningkatan

  1. Uji kombinasi parameter yang berbeza untuk mencari nilai optimum
  2. Trigger stop loss order bersama dengan isyarat kemasukan
  3. Isyarat penapis menggunakan penunjuk turun naik
  4. Menggabungkan strategi saiz kedudukan

Kesimpulan

Strategi ini menggabungkan kekuatan AIOMA dan WMA dengan menggunakan crossover untuk menjana isyarat perdagangan. Berbanding dengan purata bergerak tunggal, ia meningkatkan kualiti isyarat. Penyempurnaan lanjut seperti pengoptimuman parameter, strategi stop loss, penapisan turun naik dan lain-lain boleh menjadikannya sistem perdagangan yang mantap.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SDTA

//@version=5
strategy("AIOMA-WMA Strategy", overlay=true)

// Parametreler
aioma_length = input(14, "AIOMA Length")
wma_length = input(21, "WMA Length")

// AIOMA hesaplama
length1 = aioma_length
ema1 = ta.ema(close, length1)
length2 = aioma_length
ema2 = ta.ema(ema1, length2)
length3 = aioma_length
ema3 = ta.ema(ema2, length3)
length4 = aioma_length
ema4 = ta.ema(ema3, length4)
aioma = ta.ema(ema4, aioma_length)

// WMA hesaplama
wma = ta.wma(close, wma_length)

// Kesişim kontrolü
cross_up = ta.crossover(wma, aioma)
cross_down = ta.crossunder(wma, aioma)

// İşlem fonksiyonu
enterTrade(dir, price, signalText, color) =>
    if dir
        strategy.entry("Enter", strategy.long)
        label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_up, size = size.small, tooltip = "Entry Signal")
    else if not dir
        strategy.entry("Exit", strategy.short)
        label.new(x = bar_index, y = price, text = signalText, color = color, textcolor = color, style = label.style_label_down, size = size.small, tooltip = "Exit Signal")

// Long pozisyon girişi
if cross_up
    enterTrade(true, low, "Buy Signal", color.green)

// Short pozisyon girişi
if cross_down
    enterTrade(false, high, "Sell Signal", color.red)

// Pozisyon kapatma
if cross_up and strategy.position_size > 0
    strategy.close("Enter")
if cross_down and strategy.position_size < 0
    strategy.close("Exit")

// Grafiğe plot
plot(aioma, color=color.blue, linewidth=2, title="AIOMA")
plot(wma, color=color.red, linewidth=2, title="WMA")


Lebih lanjut