Strategi Dagangan Crossover Titik Peralihan Purata Bergerak adalah strategi penunjuk teknikal klasik. Idea utama strategi ini adalah untuk menjana isyarat beli dan jual dengan menggabungkan purata bergerak dari tempoh yang berbeza dan lebih mengoptimumkan keluar perdagangan menggunakan titik perubahan purata bergerak. Strategi ini sesuai untuk pelbagai jangka masa dan produk dan dapat mencapai pulangan yang stabil.
Strategi ini terutamanya menggunakan dua purata bergerak, satu dengan tempoh yang lebih pendek sebagai garisan pantas dan yang lain dengan tempoh yang lebih lama sebagai garis perlahan. Apabila garisan pantas memecahkan garis perlahan ke atas, isyarat beli dihasilkan. Apabila garisan pantas memecahkan garis perlahan ke bawah, isyarat jual dihasilkan. Ini adalah mekanisme penjanaan isyarat perdagangan strategi persilangan purata bergerak klasik.
Selain itu, strategi keluar dagangan menggunakan titik perubahan purata bergerak. Apabila garis cepat berubah dari naik ke turun, kedudukan panjang akan keluar. Apabila garis cepat berubah dari jatuh ke naik, kedudukan pendek akan keluar. Titik perubahan purata bergerak boleh menangkap titik pembalikan pasaran jangka pendek, yang membantu strategi untuk mengurangkan kerugian atau mengambil keuntungan tepat pada masanya, dengan itu meningkatkan pulangan keseluruhan.
Strategi Dagangan Crossover Titik Peralihan Purata Bergerak mempunyai kelebihan berikut:
Mudah dilaksanakan. Strategi hanya menggunakan dua penunjuk: Purata Bergerak dan penunjuk ROC. Kodnya tidak rumit.
Keupayaan yang kuat untuk menahan kerugian berturut-turut. Kelemahan dan ciri-ciri penyelarasan harga yang melekat pada purata bergerak dapat menapis beberapa bunyi bising dan mengelakkan menghasilkan terlalu banyak perdagangan yang tidak sah dalam trend yang berbeza.
Dapat mengawal kerugian satu sisi dengan berkesan. Hentikan kerugian tepat pada masanya menggunakan titik perubahan purata bergerak dapat mengurangkan kerugian satu sisi yang besar.
Penggunaan yang luas. Prinsip strategi adalah mudah dan boleh digunakan untuk produk yang berbeza dan jangka masa perdagangan seperti bar harian dan sejam. Ruang pengoptimuman parameter yang besar.
Hasil yang stabil: Berbanding dengan strategi yang mengejar titik panas pasaran, strategi ini lebih memberi tumpuan kepada kawalan risiko dan bukannya mengejar pulangan yang sangat tinggi, tetapi ia boleh memperoleh pulangan positif yang stabil.
Strategi Perdagangan Crossover Turning Point Moving Average juga mempunyai beberapa risiko, terutamanya dalam aspek berikut:
Kelewatan purata bergerak Apabila pasaran cepat datang, isyarat silang purata bergerak akan kelewatan, mungkin terlepas titik masuk yang terbaik.
Tempoh pemegang kosong yang panjang. Strategi ini mempunyai keluar tepat pada masanya tetapi isyarat kemasukan yang lebih perlahan. Ini boleh menyebabkan tempoh pemegang kosong yang berlebihan. Peluang keuntungan hilang semasa tempoh pemegang kosong.
Pilihan parameter seperti panjang purata bergerak dan kitaran ROC akan mempunyai kesan yang besar terhadap prestasi strategi. Tetapi pengoptimuman parameter memerlukan banyak data sejarah untuk backtesting, menimbulkan kesukaran dalam pengoptimuman.
Prestasi yang lemah dalam trend turun naik yang tinggi. Dalam trend turun naik yang tinggi, purata bergerak akan menghasilkan pelbagai persilangan yang tidak sah, menjejaskan prestasi strategi.
Strategi perdagangan boleh dioptimumkan lagi dalam aspek berikut:
Menggabungkan penapis trend indikator. Tambah indikator seperti ADX dan ATR untuk menilai status trend. Lakatkan strategi apabila tidak ada trend yang jelas untuk mengelakkan perdagangan yang tidak berguna.
Menggabungkan pelbagai jangka masa. mengenal pasti arah trend utama pada jangka masa yang lebih tinggi untuk mengelakkan perdagangan terhadap trend utama.
Peningkatan parameter adaptif. Membolehkan parameter seperti panjang purata bergerak untuk menyesuaikan diri berdasarkan turun naik pasaran masa nyata untuk meningkatkan ketahanan parameter.
Memperkenalkan pengenalan corak. mengenal pasti corak candlestick di titik persimpangan MA untuk menapis isyarat palsu.
Secara keseluruhannya, Strategi Perdagangan Crossover Titik Balik Moving Average menyeimbangkan risiko dan pulangan. Ia mempunyai kelebihan seperti kemudahan pelaksanaan, rintangan terhadap kerugian berturut-turut, dan pulangan yang stabil. Ia juga mempunyai kelemahan seperti pengeluaran MAs yang tertinggal dan tempoh penahanan kosong yang berlebihan. Dengan mengoptimumkan parameter, menggabungkan penilaian trend, pengenalan corak dll, prestasi strategi dapat ditingkatkan lagi.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //study(title="MA Crossover Strategy", overlay = true) strategy("MA Crossover Strategy with MA Turning Point Exits", overlay=true) src = input(close, title="Source") price = request.security(syminfo.tickerid, timeframe.period, src) ma1 = input(25, title="1st MA Length") type1 = input("SMA", "1st MA Type", options=["SMA", "EMA"]) ma2 = input(50, title="2nd MA Length") type2 = input("SMA", "2nd MA Type", options=["SMA", "EMA"]) price1 = if (type1 == "SMA") sma(price, ma1) else ema(price, ma1) price2 = if (type2 == "SMA") sma(price, ma2) else ema(price, ma2) //plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0) plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0) plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0) longCondition = crossover(price1, price2) if (longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(price1, price2) if (shortCondition) strategy.entry("Short", strategy.short) lookback1 = input(1, "Lookback 1") roc1 = roc(price1, lookback1) ma1up = false ma1down = false ma2up = false ma2down = false ma1up := nz(ma1up[1]) ma1down := nz(ma1down[1]) ma2up := nz(ma2up[1]) ma2down := nz(ma2down[1]) trendStrength1 = input(2, title="Minimum slope magnitude * 100", type=float) * 0.01 if crossover(roc1, trendStrength1) ma1up := true ma1down := false if crossunder(roc1, -trendStrength1) ma1up := false ma1down := true shortexitCondition = ma1up and ma1down[1] if (shortexitCondition) strategy.close("Short") longexitCondition = ma1down and ma1up[1] if (longexitCondition) strategy.close("Long")