Strategi ini menggunakan salib emas dan salib kematian Moving Averages (MA) untuk mengenal pasti titik perubahan dalam trend pasaran dan memanfaatkan turun naik harga jangka pendek saham. Ia mengira dua MA dengan tempoh masa yang berbeza, iaitu MA jangka pendek dan MA jangka panjang. Apabila MA jangka pendek melintasi di atas MA jangka panjang, isyarat beli dihasilkan. Apabila MA jangka pendek melintasi di bawah MA jangka panjang, isyarat jual dihasilkan.
Logik teras strategi ini terletak pada hubungan silang antara MA jangka pendek dan MA jangka panjang. MA jangka pendek mencerminkan perubahan harga baru-baru ini dengan lebih cepat, sementara MA jangka panjang mempunyai keupayaan pengurangan bunyi yang lebih baik untuk menggambarkan trend harga jangka panjang. Apabila MA jangka pendek melintasi di atas MA jangka panjang, ia menunjukkan harga telah mula meningkat baru-baru ini dan mungkin menandakan pembalikan jangka pendek, sehingga mencetuskan isyarat beli untuk menangkap kenaikan berikutnya. Sebaliknya, apabila MA jangka pendek melintasi di bawah MA jangka panjang, ia menandakan momentum harga menurun baru-baru ini dan potensi untuk pembalikan jangka pendek, sehingga menghasilkan isyarat jual.
Khususnya, strategi ini menggunakan fungsi ta.sma pada harga penutupan untuk mengira dua garis MA: maShort (9 tempoh) dan maLong (21 tempoh). Ia kemudian menggunakan fungsi ta.crossover dan ta.crossunder untuk menentukan sama ada MA yang lebih pendek telah melintasi di atas atau di bawah MA yang lebih lama, untuk menghasilkan isyarat beli dan jual dengan sewajarnya. Logik stop loss dan mengambil keuntungan dilaksanakan pada akhir untuk mengunci keuntungan dan menguruskan risiko.
Berbanding dengan sistem MA tunggal, strategi ini mensintesis nilai kedua-dua MA jangka pendek dan jangka panjang, mengakibatkan lebih sedikit isyarat palsu dan kemungkinan keuntungan yang lebih tinggi.
Mekanikal mengejar isyarat silang MA tanpa menilai keadaan pasaran dan ciri stok boleh membawa kepada keuntungan yang rendah atau kos urus niaga yang tinggi daripada perdagangan berlebihan.
Sebagai contoh, penunjuk teknikal lain seperti MACD, KDJ boleh digunakan untuk mengesahkan isyarat persilangan MA dan mencegah kegagalan. Parameter MA juga boleh disesuaikan berdasarkan instrumen perdagangan yang berbeza untuk meningkatkan kestabilan. Sementara itu, tahap stop loss harus ditetapkan dengan betul untuk mengelakkan kerugian yang berlebihan pada perdagangan individu. Menggunakan semua teknik pengoptimuman sedemikian secara komprehensif dapat meningkatkan prestasi strategi sebenar berdasarkan konsep persilangan MA yang mudah.
Strategi ini merancang pendekatan perdagangan jangka pendek yang mudah berdasarkan prinsip persilangan MA. Dengan menyelaraskan kekuatan MA jangka pendek dan MA jangka panjang, ia mempertimbangkan kedua-dua perkembangan harga terkini dan trend jangka panjang untuk menghasilkan isyarat perdagangan berkualiti tinggi. Ia sesuai dengan peniaga aktif yang mahir menggunakan alat analisis teknikal. Pengoptimuman lanjut di sekitar aspek seperti tempoh MA boleh membawa kepada pulangan berlebihan yang kuat.
/*backtest start: 2023-12-19 00:00:00 end: 2024-01-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Intraday MA Crossover Strategy", overlay=true) // Define MA lengths maLengthShort = input.int(9, title="Short MA Length", minval=1) maLengthLong = input.int(21, title="Long MA Length", minval=1) // Calculate MAs maShort = ta.sma(close, maLengthShort) maLong = ta.sma(close, maLengthLong) // Plot MAs on the chart plot(maShort, color=color.blue, title="Short MA") plot(maLong, color=color.red, title="Long MA") // Generate Buy Signal (Golden Cross: Short MA crosses above Long MA) buySignal = ta.crossover(maShort, maLong) strategy.entry("Buy", strategy.long, when=buySignal) // Generate Sell Signal (Death Cross: Short MA crosses below Long MA) sellSignal = ta.crossunder(maShort, maLong) strategy.entry("Sell", strategy.short, when=sellSignal) // Set stop loss and take profit levels stopLossPercent = input.float(1, title="Stop Loss %", minval=0.1, maxval=5) takeProfitPercent = input.float(1, title="Take Profit %", minval=0.1, maxval=5) strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=close * stopLossPercent / 100, profit=close * takeProfitPercent / 100) strategy.exit("Take Profit/Stop Loss", from_entry="Sell", loss=close * stopLossPercent / 100, profit=close * takeProfitPercent / 100)