Adaptive Moving Average dan Weighted Moving Average Crossover Trading Strategy

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

img

Gambaran umum

Strategi ini menghasilkan sinyal perdagangan berdasarkan indikator Adaptive Indicator for Moving Averages (AIOMA) dan indikator Weighted Moving Average (WMA).

Nama Strategi

AIOMA-WMA Adaptive Crossover Strategi

Logika Strategi

Strategi ini mencakup komponen utama berikut:

  1. Perhitungan Indikator AIOMA

    • Menghitung serangkaian Exponential Moving Averages (EMA) dengan panjang tertentu
    • Rantai EMA ini untuk menciptakan nilai rata
    • AIOMA akhir adalah EMA dari nilai rata terakhir
  2. Perhitungan Indikator WMA

    • Menghitung WMA dengan panjang yang ditentukan
  3. Generasi Sinyal

    • Beli sinyal ketika WMA melintasi di atas AIOMA
    • Menjual sinyal ketika WMA melintasi di bawah AIOMA
  4. Logika Perdagangan

    • Masukkan posisi panjang pada sinyal beli
    • Masukkan posisi short pada sinyal jual
    • Posisi dekat pada sinyal silang belakang

Keuntungan

  1. Menggunakan dua jenis rata-rata bergerak yang berbeda meningkatkan akurasi sinyal
  2. AIOMA mengurangi sinyal palsu melalui beberapa perataan eksponensial
  3. WMA sebagai indikator utama bereaksi lebih cepat terhadap perubahan harga untuk menangkap tren lebih awal
  4. Logika perdagangan sederhana, mudah dipahami dan diterapkan

Risiko

  1. Keterlambatan yang berlebihan karena beberapa penyederhanaan EMA
  2. WMA rentan terhadap sinyal yang salah dari fluktuasi harga jangka pendek
  3. Tidak ada logika stop loss, dapat menyebabkan kerugian besar

Dapat mengurangi risiko melalui optimasi parameter, menambahkan stop loss, penyaringan dengan indikator lain dll.

Bidang Peningkatan

  1. Uji kombinasi parameter yang berbeda untuk menemukan nilai optimal
  2. Trigger stop loss order bersama dengan sinyal masuk
  3. Sinyal filter menggunakan indikator volatilitas
  4. Menggabungkan strategi ukuran posisi

Kesimpulan

Strategi ini menggabungkan kekuatan AIOMA dan WMA dengan menggunakan crossover untuk menghasilkan sinyal perdagangan. Dibandingkan dengan rata-rata bergerak tunggal, itu meningkatkan kualitas sinyal. Perbaikan lebih lanjut seperti optimasi parameter, strategi stop loss, penyaringan volatilitas dll dapat menjadikannya sistem perdagangan yang kuat.


/*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 banyak