Strategi ini adalah sistem perdagangan trend-mengikuti berdasarkan pelbagai Exponential Moving Averages (EMA) dan Smoothed Moving Average (SMMA). Ia menjana isyarat perdagangan melalui persilangan EMA jangka pendek dan jangka panjang, menggunakan SMMA sebagai penanda pengesahan trend, dan menggabungkan garis EMA tambahan sebagai rujukan sokongan dan rintangan. Pendekatan ini membolehkan kedua-dua trend menangkap dan kawalan yang berkesan terhadap risiko pecah palsu.
Strategi ini menggunakan EMA 10 hari dan 22 hari sebagai garis isyarat utama, SMMA 200 hari sebagai penapis trend, bersama-sama dengan EMA 50 hari, 100 hari, dan 200 hari sebagai penunjuk tambahan. Isyarat beli dihasilkan apabila EMA jangka pendek melintasi EMA jangka panjang dan harga di atas SMMA; isyarat jual dihasilkan apabila EMA jangka pendek melintasi EMA jangka panjang dan harga di bawah SMMA. Tiga baris EMA tambahan menyediakan rujukan sokongan teknikal dan rintangan lanjut.
Ini adalah strategi trend-mengikuti yang mengintegrasikan pelbagai sistem purata bergerak, menangkap trend sambil mengawal risiko melalui penggunaan yang diselaraskan purata bergerak tempoh yang berbeza. kekuatan teras strategi ini terletak pada mekanisme pengesahan berbilang, walaupun perhatian mesti diberikan kepada prestasi di pasaran yang berbeza. Melalui pengoptimuman parameter yang sesuai dan pengurusan risiko, strategi ini dapat mencapai hasil yang baik di pasaran trend.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 2d basePeriod: 2d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover with SMMA and Additional EMAs", overlay=true) // Input parameters for EMAs and SMMA emaShortLength = input.int(10, title="Short EMA Length") emaLongLength = input.int(22, title="Long EMA Length") smmaLength = input.int(200, title="SMMA Length") // Additional EMA lengths ema1Length = input.int(50, title="EMA 1 Length") ema2Length = input.int(100, title="EMA 2 Length") ema3Length = input.int(200, title="EMA 3 Length") // Calculate EMAs and SMMA emaShort = ta.ema(close, emaShortLength) emaLong = ta.ema(close, emaLongLength) smma = ta.sma(ta.sma(close, smmaLength), 2) // SMMA approximation ema1 = ta.ema(close, ema1Length) ema2 = ta.ema(close, ema2Length) ema3 = ta.ema(close, ema3Length) // Plot EMAs and SMMA on the chart plot(emaShort, color=color.blue, linewidth=2, title="Short EMA") plot(emaLong, color=color.red, linewidth=2, title="Long EMA") plot(smma, color=color.white, linewidth=2, title="SMMA") plot(ema1, color=color.green, linewidth=1, title="EMA 1") plot(ema2, color=color.purple, linewidth=1, title="EMA 2") plot(ema3, color=color.yellow, linewidth=1, title="EMA 3") // Buy condition: Short EMA crosses above Long EMA and price is above SMMA buyCondition = ta.crossover(emaShort, emaLong) and close > smma // Sell condition: Short EMA crosses below Long EMA and price is below SMMA sellCondition = ta.crossunder(emaShort, emaLong) and close < smma // Execute Buy order if (buyCondition) strategy.entry("Buy", strategy.long) alert("Buy Signal: Short EMA crossed above Long EMA and price is above SMMA.", alert.freq_once_per_bar_close) // Execute Sell order if (sellCondition) strategy.entry("Sell", strategy.short) alert("Sell Signal: Short EMA crossed below Long EMA and price is below SMMA.", alert.freq_once_per_bar_close)