Strategi ini dirancang berdasarkan salib emas dan salib kematian dari rata-rata bergerak ganda. Ini pergi panjang ketika rata-rata bergerak jangka pendek melintasi di atas rata-rata bergerak jangka panjang, dan menutup posisi ketika rata-rata bergerak jangka pendek melintasi di bawah rata-rata bergerak jangka panjang. Strategi ini sederhana dan mudah dipahami, cocok untuk pemula untuk belajar.
Strategi ini terutama didasarkan pada indikator sma (dekat, 14) dan sma (dekat, 28).
Pertama, tentukan rata-rata bergerak pendek dan panjang:
short_ma = sma(close, 14)
long_ma = sma(close, 28)
Kemudian menentukan masuk dan keluar berdasarkan salib emas dan salib kematian:
longCondition = crossover(short_ma, long_ma)
shortCondition = crossunder(short_ma, long_ma)
Pergi panjang ketika MA pendek melintasi atas MA panjang:
strategy.entry("Buy", strategy.long, when = longCondition)
Posisi tutup ketika MA pendek melintasi di bawah MA panjang:
strategy.close_all(when = shortCondition)
Logika yang sederhana dan jelas, memanfaatkan persilangan dua MA untuk menentukan masuk dan keluar.
Strategi dapat dioptimalkan dalam aspek berikut:
Uji periode MA pendek dan panjang yang berbeda, seperti (5, 10), (10, 20), (20, 60) dll untuk menemukan kombinasi yang optimal.
Tambahkan filter seperti volume perdagangan, kesenjangan harga, dll. di dekat penyeberangan MA untuk menghindari perdagangan yang berlebihan di berbagai pasar.
Tetapkan harga stop loss atau gunakan MA sebagai garis stop loss untuk mengendalikan kerugian perdagangan tunggal.
Tambahkan indikator tambahan seperti MACD, KDJ dll untuk meningkatkan kinerja strategi.
Temukan titik masuk yang lebih baik di dekat MAs daripada masuk langsung di persimpangan.
Strategi dual MA sederhana untuk pemula untuk digunakan. Tapi sensitif terhadap fluktuasi pasar dan memiliki risiko kerugian. Kita dapat memperbaikinya dengan mengoptimalkan parameter, menambahkan filter, menggabungkan stop loss, menggabungkan indikator lain, dll. Ini dapat berkinerja baik dalam tren yang kuat tetapi harus digunakan dengan hati-hati atau stop loss yang tepat di pasar berkisar.
[/trans]
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ //@version=2 // strategy("Tester", pyramiding = 50, default_qty_type = strategy.cash, default_qty_value = 20, initial_capital = 2000, commission_type = strategy.commission.percent, commission_value = 0.25) minGainPercent = input(0.6) gainMultiplier = minGainPercent * 0.01 + 1 longCondition = crossover(sma(close, 14), sma(close, 28)) shortCondition = crossunder(sma(close, 14), sma(close, 28)) avg_protection = input(1) gain_protection = input(1) strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true)) strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))