Strategi ini direka berdasarkan salib emas dan salib kematian purata bergerak berganda. Ia pergi lama apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang, dan menutup kedudukan apabila purata bergerak jangka pendek melintasi di bawah purata bergerak jangka panjang. Strategi ini mudah dan mudah difahami, sesuai untuk pemula untuk belajar.
Strategi ini terutamanya berdasarkan kepada penunjuk sma (dekat, 14) dan sma (dekat, 28).
Pertama, tentukan purata bergerak pendek dan panjang:
short_ma = sma(close, 14)
long_ma = sma(close, 28)
Kemudian tentukan masuk dan keluar berdasarkan salib emas dan salib kematian:
longCondition = crossover(short_ma, long_ma)
shortCondition = crossunder(short_ma, long_ma)
Pergi panjang apabila MA pendek melintasi di atas MA panjang:
strategy.entry("Buy", strategy.long, when = longCondition)
Posisi ditutup apabila MA pendek melintasi di bawah MA panjang:
strategy.close_all(when = shortCondition)
Logiknya mudah dan jelas, menggunakan persilangan dua MA untuk menentukan masuk dan keluar.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Uji tempoh MA pendek dan panjang yang berbeza, seperti (5, 10), (10, 20), (20, 60) dan lain-lain untuk mencari kombinasi yang optimum.
Tambah penapis seperti jumlah dagangan, jurang harga dan lain-lain berhampiran persimpangan MA untuk mengelakkan dagangan berlebihan di pasaran yang berbeza.
Tetapkan harga stop loss atau gunakan MA sebagai garis stop loss untuk mengawal kerugian perdagangan tunggal.
Tambah penunjuk tambahan seperti MACD, KDJ dll untuk meningkatkan prestasi strategi.
Cari titik masuk yang lebih baik berhampiran MA dan bukannya masuk tepat di persimpangan.
Strategi MA berganda adalah mudah untuk digunakan oleh pemula. Tetapi ia sensitif terhadap turun naik pasaran dan mempunyai risiko kerugian. Kita boleh memperbaikinya dengan mengoptimumkan parameter, menambah penapis, menggabungkan stop loss, menggabungkan penunjuk lain dan lain-lain. Ia boleh berfungsi dengan baik dalam trend yang kuat tetapi harus digunakan dengan berhati-hati atau stop loss yang betul dalam pasaran 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))