Ini adalah strategi dagangan berdasarkan crossover purata bergerak berganda. Ia menghasilkan isyarat beli dan jual apabila dua purata bergerak dengan panjang yang berbeza bersilang. Khususnya, ia pergi lama apabila MA yang lebih cepat melintasi di atas MA yang lebih perlahan, dan pergi pendek apabila MA yang lebih cepat melintasi di bawah MA yang lebih perlahan.
Logik teras strategi ini terletak pada prinsip silang antara dua purata bergerak. purata bergerak adalah harga purata aritmetik dalam tempoh masa tertentu. Ia membantu menapis bunyi pasaran dan mendedahkan trend harga yang lebih jelas.
Dalam strategi ini, MA jangka pendek menangkap trend jangka pendek manakala MA jangka panjang menangkap trend jangka panjang.
Secara khusus, strategi ini mengira MA menggunakan ta.sma selama jangka_panjang dan jangka_pendek yang ditakrifkan oleh pengguna. Kemudian ia menggunakan ta.crossover dan ta.crossunder untuk mengesan persilangan emas dan persilangan kematian antara kedua-dua MA. Apabila MA pendek melintasi di atas MA panjang, pergi panjang. Apabila MA pendek melintasi di bawah, pergi pendek.
Kelebihan utama strategi ini termasuk:
Terdapat juga beberapa risiko:
Untuk mengurangkan risiko, parameter boleh disesuaikan, stop loss dan mengambil keuntungan boleh dimasukkan, atau penunjuk teknikal lain boleh ditambah.
Terdapat ruang untuk pengoptimuman lanjut:
Kesimpulannya, ini adalah strategi permulaan yang ideal untuk perdagangan algoritma, terima kasih kepada kesederhanaan dalam logik dan parameter sambil masih dapat menangkap pembalikan pasaran dengan berkesan.
/*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=5 strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true) // User-defined input for moving averages long_period = input(20, title="Long Period") short_period = input(5, title="Short Period") type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"]) // Calculating moving averages long_ma = ta.sma(close, long_period) short_ma = ta.sma(close, short_period) // Plot moving averages plot(long_ma, title="Long Moving Average", color=color.red) plot(short_ma, title="Short Moving Average", color=color.green) // Strategy logic for crossing of moving averages longCondition = ta.crossover(short_ma, long_ma) shortCondition = ta.crossunder(short_ma, long_ma) // Entry orders if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Optional: Add stop loss and take profit stop_loss_perc = input(1, title="Stop Loss (%)") / 100 take_profit_perc = input(2, title="Take Profit (%)") / 100 strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc)) strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))