Strategi Dagangan Peralihan Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2023-11-10 11:18:38
Tag:

img

Ringkasan

Strategi ini direka berdasarkan salib emas dan salib mati purata bergerak pantas dan perlahan. Apabila MA pantas melintasi di atas MA perlahan, pergi panjang. Apabila MA pantas melintasi di bawah MA perlahan, pergi pendek. Strategi ini sesuai untuk perdagangan jangka menengah hingga panjang dan boleh menangkap pembalikan trend di pasaran.

Logika Strategi

Strategi ini menggunakan purata bergerak eksponensial (EMA) untuk mengira garis pantas dan perlahan. panjang MA pantas adalah 10 tempoh dan panjang MA perlahan adalah 30 tempoh. Strategi ini mula-mula mengira EMA pantas dan EMA perlahan, kemudian merangka garis dan menunjukkan latar belakang berwarna yang berbeza untuk menunjukkan arah trend.

Apabila penutupan hari ini berada di atas MA cepat dan MA cepat berada di atas MA perlahan, latar belakang berwarna hijau, menunjukkan trend menaik.

Dalam trend menaik, jika terdapat lilin merah (tutup di bawah terbuka) dan semalam juga lilin merah, pergi panjang. Tetapkan stop loss pada 300 mata dan mengambil keuntungan dengan menutup kedudukan pendek.

Dalam trend ke bawah, jika terdapat lilin hijau (tutup di atas terbuka) dan semalam juga lilin hijau, pergi pendek. Tetapkan stop loss pada 300 mata dan mengambil keuntungan dengan menutup kedudukan panjang.

Selepas membuka kedudukan dalam setiap arah, jika masa tahan melebihi 1008000000 mili saat (kira-kira 2 minggu), paksa tutup kedudukan untuk mengelakkan kebuntuan.

Analisis Kelebihan

  • Sistem EMA berganda dapat menapis bunyi bising pasaran dengan berkesan dan mengenal pasti titik pembalikan trend
  • MAs pantas dan perlahan digabungkan dengan warna candlestick memberikan isyarat kemasukan yang boleh dipercayai
  • Stop loss dan mengambil keuntungan strategi mengurangkan kerugian untuk perdagangan individu
  • Mekanisme penutupan kedudukan paksa mengelakkan kerugian besar dari kebuntuan

Analisis Risiko

  • Sistem EMA kurang sensitif terhadap lonjakan harga, mungkin terlepas beberapa peluang perdagangan
  • Tetapan parameter MA yang cepat dan perlahan yang tidak betul boleh menyebabkan isyarat palsu
  • Titik stop loss yang terlalu ketat meningkatkan risiko pembubaran. Stop loss yang terlalu luas boleh menyebabkan kerugian yang tidak perlu
  • Tetapan masa penutupan paksa yang tidak betul boleh menyebabkan keluar awal atau menahan terlalu lama

Arahan pengoptimuman

  • Uji keuntungan sistem EMA di bawah parameter yang berbeza untuk mengoptimumkan panjang MA yang cepat dan perlahan
  • Pertimbangkan untuk menambah penunjuk lain seperti MACD untuk pengesahan untuk meningkatkan ketepatan isyarat
  • Link stop loss kepada perubahan jumlah harian
  • Sesuaikan secara dinamik masa penutupan paksa berdasarkan turun naik pasaran

Kesimpulan

Secara keseluruhan strategi ini agak seimbang, menggunakan EMA berganda untuk trend dan penapis candlestick dengan peraturan tambahan untuk mengelakkan isyarat palsu.


/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © yeainshukla

//@version=5


strategy('BuyRedSellGreen4H', overlay = true)
greenCandle = close > open
redCandle = open > close

start  = timestamp(2023,9,18,0,00)
end = timestamp(2023,12,31,0,00)


fastLength = input.int(10, title="Fast Average Length")
slowLength = input.int(30, title="Slow Average Length")

averageData = input.source(close, title="Average Data Source")

// Calculate exponential moving averages
fastAverage = ta.ema(averageData, fastLength)
slowAverage = ta.ema(averageData, slowLength)

// Plot averages
plot(fastAverage, color=color.navy, title="Fast EMA")
plot(slowAverage, color=color.fuchsia, linewidth=2, title="Slow EMA")

// Show the moving average trend with a coloured background
backgroundColor = if close > fastAverage and fastAverage > slowAverage
    color.new(color.green, 85)
else if close < fastAverage and fastAverage < slowAverage
    color.new(color.red, 85)
else
    color.new(color.orange, 90)

bgcolor(backgroundColor, title="EMA Background")


if time >= start and time < end
    if(close < open) 
        if(close[1] < open[1])
            strategy.entry("Enter Long", strategy.long)
            strategy.exit("Exit Long", from_entry="Enter Long")
            strategy.close("Enter Short")

    else
        if(close[1] > open[1])
            strategy.entry("Enter Short", strategy.short)
            strategy.exit("Exit Short", from_entry="Enter Short")
            strategy.close("Enter Long")
    if strategy.position_size < 0 or strategy.position_size > 0// short and long is opened.
        if((time - strategy.opentrades.entry_time(strategy.opentrades - 1)) > 1008000000)
            strategy.close("Enter Short")
            strategy.close("Enter Long")

Lebih lanjut