Tujuan strategi ini adalah untuk mengenal pasti titik pembalikan trend yang berpotensi dengan memerhatikan persimpangan antara purata bergerak eksponen (EMA) 20 tempoh dan purata bergerak mudah (SMA) 20 tempoh. Ia memutuskan untuk pergi panjang atau pergi pendek berdasarkan arah persimpangan.
Strategi ini menggunakan fungsi crossover dan crossunder dari perpustakaan ta untuk mengesan crossover purata bergerak.
Strategi ini menggabungkan keupayaan trend berikut purata bergerak dan penjanaan isyarat peristiwa silang, yang mempunyai kelebihan berikut:
Strategi ini juga mempunyai risiko berikut:
Penyelesaian:
Strategi ini juga boleh ditingkatkan dalam aspek berikut:
Strategi ini agak mudah dan praktikal secara keseluruhan, mengenal pasti titik pembalikan trend yang berpotensi melalui teori crossover purata bergerak. tetapi terdapat juga ruang untuk peningkatan melalui penunjuk tambahan, parameter dinamik, stop loss, perdagangan algoritma dan lain-lain untuk menjadikan strategi lebih kukuh, boleh dipercayai dan automatik.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA-SMA Crossover Strategy", overlay=true) // Define the length of the moving averages emaLength = 20 smaLength = 20 // Calculate moving averages emaValue = ta.ema(close, emaLength) smaValue = ta.sma(close, smaLength) // Buy condition buyCondition = ta.crossover(emaValue, smaValue) and close > emaValue // Short sell condition sellCondition = ta.crossunder(emaValue, smaValue) and close < emaValue // Exit conditions for both Buy and Short sell exitBuyCondition = ta.crossunder(emaValue, smaValue) exitSellCondition = ta.crossover(emaValue, smaValue) // Strategy logic if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.entry("Sell", strategy.short) if (exitBuyCondition) strategy.close("Buy") if (exitSellCondition) strategy.close("Sell") // Plot the moving averages plot(emaValue, color=color.blue, title="20 EMA") plot(smaValue, color=color.red, title="20 SMA")