Strategi Dagangan Jangka Pendek Berasaskan Saluran EMA dan MACD

Penulis:ChaoZhang, Tarikh: 2024-01-23 14:30:02
Tag:

img

Ringkasan

Strategi ini dinamakan EMA Channel dan MACD Based Short-Term Trading Strategy. Ia menggabungkan saluran EMA dan penunjuk MACD untuk mengenal pasti trend dan menjana isyarat perdagangan.

Prinsip-prinsip

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.

Analisis Kelebihan

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.

Analisis Risiko

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.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter EMA untuk mencari kombinasi parameter yang memaksimumkan pulangan untuk instrumen perdagangan tertentu.

  2. Mengoptimumkan parameter MACD untuk meningkatkan keberkesanan penapisan.

  3. Menggabungkan penunjuk turun naik untuk meluaskan julat stop loss apabila turun naik pasaran meningkat.

  4. Tambahkan mekanisme stop loss untuk menjadikan stop loss lebih dekat dengan harga, mengurangkan pemicu stop loss yang tidak perlu sambil memastikan keuntungan.

Kesimpulan

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")

Lebih lanjut