Strategi ini dinamakan
Strategi ini menggunakan EMA 5 hari dan EMA 21 hari untuk membentuk saluran EMA. Apabila EMA 5 hari melintasi di atas EMA 21 hari, ia dianggap sebagai isyarat kenaikan. Apabila EMA 5 hari melintasi di bawah EMA 21 hari, ia dianggap sebagai isyarat penurunan. Histogram MACD dapat menapis isyarat palsu. Isyarat beli hanya dihasilkan apabila histogram MACD di atas 0. Isyarat jual hanya dihasilkan apabila histogram MACD di bawah 0. Setelah isyarat dicetuskan, pesanan diletakkan dengan stop loss tetap dan mengambil keuntungan. Jika harga kembali ke saluran EMA, isyarat akan dicetuskan lagi untuk mengikuti trend.
Strategi ini menggabungkan pengenalan trend dan penapisan penunjuk, yang dapat mengenal pasti arah trend jangka pendek dengan berkesan. Menggunakan saluran EMA untuk menentukan arah trend utama dan histogram MACD untuk menapis isyarat palsu dapat meningkatkan keuntungan.
Strategi ini terutamanya sesuai untuk perdagangan jangka pendek dan berprestasi buruk di pasaran jangka panjang dan jangka panjang. Di pasaran sampingan jangka panjang, persimpangan saluran EMA sering berlaku tetapi kebanyakannya adalah isyarat palsu. Walaupun histogram MACD dapat memainkan peranan dalam penapisan, keberkesanannya masih terhad. Juga, stop loss tetap dan mengambil keuntungan menjadikannya sukar untuk menangkap keuntungan tambahan dari trend jangka panjang. Jadi ini adalah risiko utama strategi ini. Penyelesaian adalah untuk menyesuaikan parameter secara fleksibel berdasarkan keadaan pasaran, atau beralih ke strategi lain yang lebih sesuai dengan keadaan pasaran semasa.
Strategi ini boleh dioptimumkan dalam aspek berikut:
Mengoptimumkan parameter EMA untuk mencari kombinasi parameter yang memaksimumkan pulangan untuk instrumen perdagangan tertentu.
Mengoptimumkan parameter MACD untuk meningkatkan keberkesanan penapisan.
Menggabungkan penunjuk turun naik untuk meluaskan julat stop loss apabila turun naik pasaran meningkat.
Tambahkan mekanisme stop loss untuk menjadikan stop loss lebih dekat dengan harga, mengurangkan pemicu stop loss yang tidak perlu sambil memastikan keuntungan.
Strategi ini mempunyai keuntungan yang agak tinggi dan sangat sesuai untuk perdagangan jangka pendek. Ia adalah pilihan yang baik di antara strategi perdagangan kuantitatif frekuensi tinggi. Tetapi peniaga perlu menyesuaikan parameter dengan munasabah berdasarkan keadaan pasaran ketika menggunakannya, untuk memaksimumkan pulangan strategi sambil mengawal risiko perdagangan.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © moondevonyt //@version=5 strategy("Scalping with EMA channel and MACD", overlay=true) // Exponential moving average inputs ema21 = ta.ema(close, 21) ema5 = ta.ema(close, 5) // MACD inputs fastLength = 18 slowLength = 34 signalSmoothing = 12 [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing) macdHistogram = macdLine - signalLine // Buy and sell conditions buyCondition = ta.crossover(ema5, ema21) and macdHistogram > 0 sellCondition = ta.crossunder(ema5, ema21) and macdHistogram < 0 // Re-entry conditions reEntryBuyCondition = close > ema21 reEntrySellCondition = close < ema21 // Set stop loss and take profit stopLoss = 8 takeProfit = 15 // Execute Strategy if buyCondition strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", stop=close - stopLoss, limit=close + takeProfit) if reEntryBuyCondition strategy.entry("Re-Enter Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Re-Enter Buy", stop=close - stopLoss, limit=close + takeProfit) if sellCondition strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", stop=close + stopLoss, limit=close - takeProfit) if reEntrySellCondition strategy.entry("Re-Enter Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Re-Enter Sell", stop=close + stopLoss, limit=close - takeProfit) // Plotting EMAs and MACD plot(ema21, color=color.blue, title="21 EMA") plot(ema5, color=color.orange, title="5 EMA") plot(macdHistogram, color=color.red, title="MACD Histogram") // Plot buy and sell signals plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")