Strategi Dagangan Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2024-02-18 15:11:04
Tag:

img

Ringkasan

Strategi ini menghasilkan isyarat perdagangan dengan menggunakan purata bergerak berganda. Ia menghantar isyarat beli apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang, dan isyarat jual apabila sebaliknya berlaku. Strategi ini menggabungkan keupayaan trend berikut purata bergerak untuk menangkap trend harga dengan berkesan dan melaksanakan perdagangan trend.

Logika Strategi

Strategi ini menggunakan dua purata bergerak eksponensial (EMA) dengan tempoh yang berbeza. EMA1 adalah MA jangka pendek dengan tempoh yang ditetapkan menjadi 9, sementara EMA2 adalah MA jangka panjang dengan tempoh yang ditetapkan menjadi 21. Strategi ini menghasilkan isyarat beli apabila EMA1 melintasi di atas EMA2, dan isyarat jual apabila melintasi di bawah.

Dengan berbuat demikian, strategi ini menggunakan keupayaan penjejakan trend purata bergerak untuk menangkap isyarat apabila harga memulakan arah trend baru. Sebagai contoh, apabila harga bangkit dari penurunan, MA jangka pendek akan meningkat lebih awal daripada MA jangka panjang. Persalinan di atas menghasilkan isyarat awal bahawa trend menaik bermula.

Kelebihan

Kemahiran terbesar strategi ini terletak pada keupayaannya untuk mengenal pasti trend harga dengan berkesan, terutama sesuai untuk pasaran dengan kecenderungan trend yang kuat. purata bergerak sendiri mempunyai ciri-ciri trend yang hebat, dan mekanisme MA berganda lebih meningkatkannya.

Kelemahan

Risiko terbesar adalah bahawa apabila harga turun naik secara dramatik, sifat ketinggalan MA boleh menyebabkan kehilangan titik masuk atau keluar terbaik.

Untuk mengurangkan risiko, parameter seperti tempoh MA boleh diselaraskan dengan sewajarnya, atau penapis tambahan boleh ditambah.

Peningkatan

Ruang pengoptimuman terutamanya terletak pada aspek berikut:

  1. Mengoptimumkan parameter tempoh MA untuk mencari kombinasi optimum
  2. Tambah penunjuk lain sebagai penapis untuk meningkatkan kebolehpercayaan isyarat
  3. Tetapkan parameter penyesuaian mengikut produk dan rejimen pasaran yang berbeza
  4. Gabungkan penunjuk jumlah untuk menentukan titik masuk yang tepat
  5. Mengoptimumkan mekanisme stop loss

Ringkasan

Strategi ini menghasilkan isyarat dengan purata bergerak eksponen dua, dengan kekuatan dalam keupayaan pengesanan trend harga untuk mengesan pembalikan trend.


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