
Strategi ini adalah strategi perdagangan bergerak sederhana yang melintasi rata-rata bergerak berdasarkan persilangan rata-rata bergerak jangka pendek dan jangka panjang. Ia menggunakan purata bergerak 34 dan 89 kitaran, mengamati persimpangan mereka sebagai isyarat beli dan jual pada masa perdagangan pagi. Isyarat beli dihasilkan apabila rata-rata bergerak jangka pendek menembusi rata-rata bergerak jangka panjang dari arah bawah; isyarat jual dihasilkan apabila ia menembusi dari arah atas.
Logik teras strategi ini adalah berdasarkan pada persilangan purata bergerak jangka pendek dan jangka panjang sebagai isyarat perdagangan. Secara khusus, strategi ini menentukan purata bergerak sederhana jangka pendek dan jangka panjang 34 dan 89 kitaran ((SMA)). Hanya pada masa perdagangan pagi ((08:00 - 10:00) melihat persilangan kedua-dua SMA.
Selepas menerima isyarat beli atau jual, strategi akan memasuki kedudukan dan menetapkan syarat untuk keluar dari kedudukan, iaitu selepas masuk memegang jumlah garis K akar yang ditetapkan (default 3 akar) dan kemudian aktif menghentikan kerugian. Ini dapat mengunci sebahagian keuntungan dan mengelakkan kerugian berkembang lebih jauh.
Perlu diperhatikan bahawa strategi hanya mengenal pasti isyarat persilangan pada masa awal perdagangan. Ini kerana pada masa ini jumlah perdagangan pasaran lebih besar dan kebolehpercayaan isyarat peralihan trend lebih tinggi.
Strategi ini mempunyai beberapa kelebihan:
Menggunakan kaedah penyambung purata bergerak yang mudah difahami dan sesuai untuk pemula
Hanya mengenal pasti isyarat pada masa awal yang lebih banyak isyarat berkualiti tinggi, boleh menyaring isyarat palsu pada masa lain
Tetapkan syarat hentian untuk menghentikan kerugian tepat pada masanya, mengunci sebahagian keuntungan, mengurangkan risiko kerugian
Lebih banyak parameter yang boleh disesuaikan, boleh disesuaikan dengan pasaran dan gaya peribadi
Mudah untuk diperluas, anda boleh merancang strategi yang lebih kompleks berdasarkan kerangka ini dengan penunjuk lain
Strategi ini juga mempunyai beberapa risiko, terutamanya dari aspek berikut:
Rata-rata bergerak sendiri sangat ketinggalan dan mungkin terlepas titik perubahan harga jangka pendek
Bergantung kepada penunjuk mudah, mudah gagal dalam keadaan pasaran tertentu (keadaan trend, rangkuman, dan sebagainya)
Penetapan yang salah dalam kedudukan stop loss boleh menyebabkan kerugian yang tidak perlu
Tetapan parameter yang tidak betul (berkala purata bergerak, berkala memegang kedudukan, dan lain-lain) juga boleh mempengaruhi prestasi strategi
Penyelesaian:
Meningkatkan sensitiviti terhadap perubahan jangka pendek, digabungkan dengan petunjuk pendahuluan lain
Menambah syarat penapisan untuk mengelakkan kesan isyarat cuti di pasaran bergolak dan rantaian
Mengoptimumkan logik stop loss, menyesuaikan ruang stop loss mengikut kadar turun naik pasaran
Optimumkan parameter pelbagai kombinasi untuk mencari tetapan parameter yang optimum
Strategi ini juga mempunyai banyak ruang untuk pengoptimuman, terutamanya dari aspek berikut:
Menambah syarat penapisan lain untuk mengelakkan kesan isyarat cuti di pasaran bergolak dan rantaian
Strategi penunjuk kuantiti dinamik untuk mengenal pasti isyarat penembusan yang lebih kuat
Mengoptimumkan parameter kitaran purata bergerak untuk mencari kombinasi parameter terbaik
Mengoptimumkan Stop Loss secara automatik mengikut turun naik pasaran
Cuba untuk mengoptimumkan keseluruhan strategi secara automatik berdasarkan teknologi pembelajaran mesin
Mencuba menggabungkan dengan strategi lain untuk merancang sistem pelbagai strategi yang lebih kompleks
Strategi ini secara keseluruhannya agak mudah dan praktikal, sesuai untuk pembelajaran rujukan pemula. Ia mencerminkan corak tipikal strategi silang rata-rata bergerak, untuk mengawal risiko dengan menetapkan stop loss. Tetapi strategi ini dapat dioptimumkan lebih jauh, menjadikan pengendaliannya lebih berkesan, dan menyesuaikan diri dengan lebih banyak keadaan pasaran.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("34 89 SMA Crossover Strategy", overlay=true)
// Define the length for the SMAs
short_length = input(34, title="Short SMA Length")
long_length = input(89, title="Long SMA Length")
exit_candles = input(3, title="Exit after how many candles?")
exit_at_open = input(true, title="Exit at Open?")
// Define morning session
morning_session = input("0800-1000", "Morning Session")
// Calculate SMAs
short_sma = ta.sma(close, short_length)
long_sma = ta.sma(close, long_length)
// Function to check if current time is within specified session
in_session(session) =>
session_start = na(time(timeframe.period, "0800-1000")) ? na : true
session_start
// Condition for buy signal (short SMA crosses over long SMA) within specified trading hours
buy_signal = ta.crossover(short_sma, long_sma)
// Condition for sell signal (short SMA crosses under long SMA) within specified trading hours
sell_signal = ta.crossunder(short_sma, long_sma)
// Function to exit the trade after specified number of candles
var int trade_entry_bar = na
var int trade_exit_bar = na
if (buy_signal or sell_signal)
trade_entry_bar := bar_index
if (not na(trade_entry_bar))
trade_exit_bar := trade_entry_bar + exit_candles
// Exit condition
exit_condition = (not na(trade_exit_bar) and (exit_at_open ? bar_index + 1 >= trade_exit_bar : bar_index >= trade_exit_bar))
// Execute trades
if (buy_signal)
strategy.entry("Buy", strategy.long)
if (sell_signal)
strategy.entry("Sell", strategy.short)
if (exit_condition)
strategy.close("Buy")
strategy.close("Sell")
// Plot SMAs on the chart
plot(short_sma, color=color.blue, linewidth=1)
plot(long_sma, color=color.red, linewidth=1)