
Strategi ini adalah strategi trading berdasarkan moving average. Strategi ini menggunakan 45-day moving average sebagai indikator teknis utama untuk membeli dan menjual berdasarkan sinyal bahwa harga telah menembus moving average.
Ketika harga naik melewati 45 hari moving average, menghasilkan sinyal beli; ketika memegang posisi setelah 8 hari, menghasilkan sinyal jual. Setelah itu, jika harga naik lagi melewati 45 hari moving average, menghasilkan sinyal beli lagi.
Kebijakan ini mencakup:
Ini adalah logika transaksi yang menjadi inti dari strategi tersebut.
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Tanggapan:
Strategi ini dapat dioptimalkan dalam beberapa hal:
Mengoptimalkan parameter moving average untuk mencari kombinasi optimal dari parameter tersebut. Anda dapat menguji parameter bilangan hari yang berbeda, seperti 15 hari, 30 hari, dan 60 hari.
Mengoptimalkan jangka waktu, mencari optimum untuk jangka waktu 5 hari, 10 hari, 15 hari, dan lain-lain.
Tambahkan stop mobile untuk melacak tren dan mengendalikan risiko. Misalnya, stop trialing atau stop ATR.
Menyaring indikator lain seperti MACD, KDJ, dll untuk mengurangi sinyal palsu.
Optimalkan kondisi masuk kembali untuk mencegah transaksi yang terlalu sering.
Uji coba terhadap pasar dan varietas yang berbeda. Parameter perlu dioptimalkan untuk pasar yang berbeda.
Strategi lintas rata-rata bergerak secara keseluruhan adalah strategi pelacakan tren yang sederhana dan praktis. Ini menggunakan fitur pelacakan tren rata-rata bergerak untuk menghasilkan sinyal perdagangan dengan harga yang terobosan. Keuntungan adalah mudahnya implementasi, trade-off adalah kemungkinan ada beberapa kesalahan.
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Moving Average Crossover Strategy", overlay=true)
// Calculate the 45-day moving average
ma_length = 45
ma = ta.sma(close, ma_length)
// Track position entry and entry bar
var bool in_long_position = na
var int entry_bar = na
var int exit_bar = na
// Entry condition: Close price crosses above the 45-day moving average to enter the position
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1])
in_long_position := true
entry_bar := bar_index
// Exit condition: Close the position after holding for 8 trading days
if (in_long_position and bar_index - entry_bar >= 8)
in_long_position := false
exit_bar := bar_index
// Re-entry condition: Wait for price to cross over the 45-day moving average again
if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8))
in_long_position := true
entry_bar := bar_index
// Execute long entry and exit
if (in_long_position)
strategy.entry("Long", strategy.long)
if (not in_long_position)
strategy.close("Long")