Strategi Crossover Purata Bergerak Dinamik

Penulis:ChaoZhang, Tarikh: 2024-02-01 10:42:53
Tag:

img

Ringkasan

Strategi Crossover Purata Bergerak Dinamis adalah strategi trend yang biasa. Ia menghasilkan isyarat beli dan jual dengan mengira purata bergerak pantas (Fast MA) dan purata bergerak perlahan (Slow MA) dan mengesan persilangan di antara mereka untuk menangkap titik pembalikan trend di pasaran.

Logika Strategi

Logik teras strategi ini adalah: apabila purata bergerak pantas melintasi di atas purata bergerak perlahan dari bawah, isyarat beli dihasilkan; apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan dari atas, isyarat jual dihasilkan.

Purata bergerak dapat menapis bunyi bising pasaran dan menangkap trend harga dengan berkesan. Purata bergerak pantas lebih sensitif dan dapat menangkap perubahan dalam trend tepat pada masanya; purata bergerak perlahan lebih stabil dan dapat menapis kesan turun naik jangka pendek dengan berkesan. Apabila MA pantas dan perlahan mempunyai salib emas (bergerak dari bawah), ia menunjukkan bahawa pasaran telah memasuki fasa kenaikan; apabila mereka melihat salib kematian (bergerak dari atas), ia menunjukkan bahawa pasaran telah memasuki fasa penurunan.

Strategi ini akan segera mengeluarkan isyarat perdagangan apabila purata bergerak menyeberang, mengamalkan strategi mengejar trend untuk mengikuti trend pasaran dan memperoleh keuntungan yang lebih besar. Pada masa yang sama, strategi menetapkan stop loss dan mengambil keuntungan untuk mengawal risiko dengan ketat.

Analisis Kelebihan

  • Prestasi backtest strategi yang baik, menangkap pergerakan besar dengan mengikuti trend
  • Isyarat yang jelas yang dihasilkan oleh salib purata bergerak, mudah dilaksanakan
  • Dengan stop loss dan mengambil keuntungan untuk mengawal risiko dengan ketat

Analisis Risiko

  • Rendah kepada kesilapan isyarat dan mengalami kerugian yang teruk
  • Frekuensi dagangan yang tinggi, tempoh penahan yang pendek
  • Perlu tetapan parameter yang munasabah

Peningkatan boleh dibuat dengan mengoptimumkan parameter, menyesuaikan tempoh purata bergerak, menambah keadaan penapis dll.

Arahan pengoptimuman

  • Sesuaikan parameter purata bergerak untuk mencari kombinasi parameter optimum
  • Tambah penunjuk momentum dll sebagai penapis untuk mengurangkan isyarat palsu
  • Mengoptimumkan tetapan stop loss dan mengambil keuntungan
  • Gabungkan penunjuk lain untuk menentukan arah trend

Kesimpulan

Strategi Crossover Purata Bergerak Dinamis secara keseluruhan melakukan dengan cukup baik. Penambahbaikan lanjut boleh dibuat dengan mengoptimumkan parameter. Strategi ini mudah dilaksanakan dan sesuai untuk amalan pemula. Tetapi risiko isyarat palsu harus diperhatikan, dan perlu digunakan bersama dengan penunjuk lain untuk melakukan dengan lebih baik.


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

//@version=5
strategy("Simple Moving Average Crossover", shorttitle="SMAC", overlay=true)

// Define input parameters
fast_length = input.int(9, title="Fast MA Length")
slow_length = input.int(21, title="Slow MA Length")
stop_loss = input.float(1, title="Stop Loss (%)", minval=0, maxval=100)
take_profit = input.float(2, title="Take Profit (%)", minval=0, maxval=100)

// Calculate moving averages
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)

// Define conditions for long and short signals
long_condition = ta.crossover(fast_ma, slow_ma)
short_condition = ta.crossunder(fast_ma, slow_ma)

// Plot moving averages on the chart
plot(fast_ma, title="Fast MA", color=color.blue)
plot(slow_ma, title="Slow MA", color=color.red)

// Execute long and short trades
if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)

// Set stop loss and take profit levels
stop_loss_price = close * (1 - stop_loss / 100)
take_profit_price = close * (1 + take_profit / 100)
strategy.exit("Take Profit/Stop Loss", stop=stop_loss_price, limit=take_profit_price)

// Plot signals on the chart
plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)


Lebih lanjut