Strategi Trend Crossover Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-02-28 17:55:28
Tag:

img

Ringkasan

Strategi Moving Average Crossover Trend adalah strategi mengikut trend berdasarkan isyarat crossover purata bergerak. Ia menggunakan salib emas dan salib kematian purata bergerak pantas dan perlahan untuk menentukan trend pasaran, menubuhkan kedudukan pada permulaan trend, dan menutup kedudukan apabila isyarat pembalikan trend muncul.

Prinsip-prinsip

Strategi ini menggunakan persilangan histogram MACD dan garis isyarat untuk mengenal pasti permulaan dan akhir trend. Khususnya, ia membina histogram MACD berdasarkan EMA cepat 12 tempoh dan EMA perlahan 26 tempoh. Apabila histogram melintasi di atas garis isyarat, isyarat beli dihasilkan, yang menunjukkan permulaan trend menaik. Apabila histogram melintasi di bawah garis isyarat, isyarat jual dicetuskan, menandakan permulaan trend menurun.

Untuk entri, strategi hanya berjalan lama apabila isyarat beli dihasilkan pada carta 15 minit untuk memanfaatkan peringkat awal permulaan trend. Untuk keluar, ia menutup semua kedudukan apabila histogram MACD melintasi di bawah garis isyarat pada carta 4 jam, menandakan pembalikan trend.

Analisis Kelebihan

Kelebihan terbesar strategi ini adalah keupayaannya untuk menangkap permulaan trend tepat pada masanya dan keluar pada isyarat pembalikan, mencapai nisbah risiko-balasan yang baik.

  1. Menggunakan MACD untuk pengenalan trend adalah boleh dipercayai dengan kadar kemenangan yang tinggi
  2. Menggabungkan kerangka masa 15 minit dan 4 jam menyeimbangkan kekerapan dan kawalan risiko
  3. Stop loss tepat pada masanya dengan berkesan mengehadkan pengeluaran maksimum

Analisis Risiko

Terdapat juga beberapa risiko terutamanya dalam aspek berikut:

  1. MACD boleh menghasilkan isyarat palsu, menyebabkan kemasukan atau hentian yang tidak perlu
  2. Titik stop loss mungkin terlalu kasar untuk menampung turun naik pasaran
  3. Pilihan parameter yang tidak betul boleh melemahkan keberkesanan strategi

Untuk mengurangkan risiko, pengoptimuman boleh dibuat dalam:

  1. Menambah penapis dengan penunjuk lain untuk mengelakkan isyarat palsu
  2. Penyesuaian penyesuaian titik stop loss
  3. Penyesuaian parameter

Arahan pengoptimuman

Aspek utama untuk mengoptimumkan lagi strategi termasuk:

  1. Menggabungkan penunjuk lain seperti RSI, Bollinger Bands untuk menapis isyarat
  2. Uji lebih banyak kombinasi tempoh cepat dan perlahan untuk parameter optimum
  3. Menggunakan pembelajaran mesin untuk melatih parameter optimum
  4. Mengoptimumkan peraturan stop loss dengan penangguhan atau penangguhan separa
  5. Memperluas kepada lebih banyak jangka masa untuk gabungan pelbagai jangka masa

Kesimpulan

Secara keseluruhan, Strategi Trend Crossover Moving Average adalah sistem trend berikut yang mudah dan praktikal. Ia memanfaatkan trend dengan mengenal pasti permulaan dan akhir menggunakan crossover MACD, dan menggabungkan kedudukan jangka pendek dan jangka panjang. Kelebihannya terletak pada kemasukan tepat pada masanya, berhenti yang berkesan, dan imbalan risiko yang seimbang. Langkah seterusnya adalah meningkatkan ketahanan dan keuntungan melalui pengoptimuman parameter, penapisan isyarat dll.


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

//@version=5
strategy(title="Moving Average Convergence Divergence", shorttitle="MACD", overlay=true)

// Getting inputs
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

// Calculating MACD
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal_line = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)

// Entry conditions
longCondition = macd < 0 and ta.crossover(macd, signal_line) 
shortCondition = ta.crossover(signal_line, macd) 

// Plot signals
plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")

// Strategy
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)


Lebih lanjut