Strategi Perdagangan Rata-rata Bergerak Ganda

Penulis:ChaoZhangTanggal: 2024-02-18 15:11:04
Tag:

img

Gambaran umum

Strategi ini menghasilkan sinyal perdagangan dengan menggunakan rata-rata bergerak ganda. Ini mengirim sinyal beli ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, dan sinyal jual ketika sebaliknya terjadi. Strategi ini menggabungkan kemampuan mengikuti tren rata-rata bergerak untuk secara efektif menangkap tren harga dan menerapkan perdagangan tren.

Logika Strategi

Strategi ini memanfaatkan dua rata-rata bergerak eksponensial (EMA) dengan periode yang berbeda. EMA1 adalah MA jangka pendek dengan periode yang ditetapkan menjadi 9, sementara EMA2 adalah MA jangka panjang dengan periode yang ditetapkan menjadi 21. Strategi ini menghasilkan sinyal beli ketika EMA1 melintasi di atas EMA2, dan sinyal jual ketika melintasi di bawahnya.

Dengan demikian, strategi ini memanfaatkan kemampuan pelacakan tren dari moving average untuk menangkap sinyal ketika harga memulai arah tren baru. Misalnya, ketika harga bangkit dari penurunan, MA jangka pendek akan naik lebih awal daripada MA jangka panjang. Perpindahan di atas menghasilkan sinyal awal bahwa tren naik dimulai.

Keuntungan

Kekuatan terbesar dari strategi ini terletak pada kemampuannya untuk secara efektif mengidentifikasi tren harga, terutama cocok untuk pasar dengan tren tren yang kuat. moving average sendiri memiliki fitur trend-mengikuti yang besar, dan mekanisme MA ganda lebih meningkatkannya.

Kontra

Risiko terbesar adalah bahwa ketika harga berfluktuasi secara dramatis, sifat keterlambatan MAs dapat menyebabkan kehilangan titik masuk atau keluar terbaik.

Untuk mengurangi risiko, parameter seperti periode MA dapat disesuaikan sesuai, atau filter tambahan dapat ditambahkan.

Peningkatan

Ruang pengoptimalan terutama terletak pada aspek berikut:

  1. Mengoptimalkan parameter periode MA untuk menemukan kombinasi optimal
  2. Tambahkan indikator lain sebagai filter untuk meningkatkan keandalan sinyal
  3. Setup parameter adaptif sesuai dengan produk dan rezim pasar yang berbeda
  4. Gabungkan indikator volume untuk menentukan titik masuk yang tepat
  5. Mengoptimalkan mekanisme stop loss

Ringkasan

Strategi ini menghasilkan sinyal dengan rata-rata bergerak eksponensial ganda, dengan kekuatan dalam kemampuan pelacakan tren harga untuk mendeteksi pembalikan tren. tetapi keterbatasan seperti MA lag memang ada. langkah selanjutnya adalah meningkatkan kualitas sinyal, waktu masuk dan stop loss dari berbagai dimensi.


/*backtest
start: 2024-01-18 00:00:00
end: 2024-02-17 00:00:00
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/
// © technicalTruff99446

//@version=4
strategy("AhmetMSA", overlay=true, initial_capital = 10000, commission_value = 0.002, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, calc_on_order_fills = true)
//2. DEĞERDEN SONRA GEÇMİŞ HESAPLAMA DEĞERİ, KOMİSYON ORANI, PARANIN TAMAMI, DEĞERLERİ EKLEMDİ

emaShPD = input (title="EMA KISA PERİYOT", defval=9, minval=1)
emaLngPD = input (title="EMA UZUN PERİYOT", defval=21, minval=1)

//input   DEĞİŞKEN DEĞER ATAMA

ema1 = ema (close,emaShPD)
ema2 = ema (close,emaLngPD)

//EMALAR ARASINI BOYAMA upTrend downTrend
upTrend   = plot (ema1, color=#4DFF00, linewidth=2, title= "EMA KISA", transp=0)
downTrend = plot (ema2, color=#FF0C00, linewidth=3, title= "EMA UZUN", transp=0)
//linewidth ÇİZGİ KALINLIĞI
//title     İSİM VERME

//BACKTESTİN BAŞLANGIÇ TARİHİNİ BELİRLEME
yearin = input(2024, title = "Backtest Başlangıç Tarihi")
//longCondition = crossover(ema1, ema2)
//shortCondition = crossover(ema2, ema1)
buy = crossover(ema1, ema2) and yearin >= year
sell = crossover(ema2, ema1) and yearin >= year
//ta.crossunder  KESİŞİM KODU

//Barları BOYAMA
barbuy  = ema1 >= ema2
barsell = ema2 <  ema1




//AL SAT AŞK KUTUCUKLU EKRANA YAZMA
plotshape(buy, title = "AL AŞK", text = 'AL AŞK', style = shape.labelup, location = location.belowbar, color= color.green,   textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "SAT AŞK", text = 'SAT AŞK', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

//Barları BOYAMA KOŞULU
barcolor(barbuy? #4DFF00: barsell? #FF0C00: #FF0C00)


fill(upTrend, downTrend, color = ema1 >= ema2?#4DFF00 : #FF0C00, transp = 80, title = "bgcolor")

//longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
//shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
//14 GÜNLÜĞÜN KAPANIŞDEĞERİNİN 28 GÜNLÜK KAPANIŞ DEĞERİNİ KESMESİ KOŞULU



if (buy)
    strategy.entry("AL AŞK", strategy.long)


if (sell)
    strategy.entry("SAT AŞK", strategy.short)


Lebih banyak