Strategi dagangan jangka pendek berdasarkan saluran EMA dan MACD


Tarikh penciptaan: 2024-01-23 14:30:02 Akhirnya diubah suai: 2024-01-23 14:30:02
Salin: 0 Bilangan klik: 741
1
fokus pada
1617
Pengikut

Strategi dagangan jangka pendek berdasarkan saluran EMA dan MACD

Gambaran keseluruhan

Strategi ini dinamakan strategi perdagangan garis pendek berdasarkan saluran EMA dan MACD. Ia menggabungkan saluran EMA dan penunjuk MACD untuk mengenal pasti trend dan memberikan isyarat perdagangan.

Prinsip Strategi

Strategi ini menggunakan 5 hari EMA dan 21 hari EMA untuk membentuk saluran EMA. Apabila 5 hari EMA melintasi 21 hari EMA, ia dianggap sebagai masuk ke arah yang lebih tinggi, dan apabila 5 hari EMA melintasi 21 hari EMA, ia dianggap sebagai masuk ke arah yang lebih rendah.

Analisis kelebihan

Strategi ini menggabungkan pengenalan trend dan penapisan penunjuk, yang dapat mengesan arah pergerakan garis pendek dengan berkesan. Menggunakan saluran EMA untuk menentukan arah trend utama, dan menapis isyarat palsu dengan penunjuk MACD, dapat meningkatkan peluang keuntungan dengan ketara.

Analisis risiko

Strategi ini digunakan terutamanya untuk perdagangan garis pendek, dan tidak berkesan dalam keadaan garis panjang dan goyah. Di pasaran di sepanjang garis panjang, isyarat silang saluran EMA sering berlaku, tetapi sebahagian besarnya adalah isyarat palsu, di mana grafik lurus MACD dapat memainkan peranan penapisan tertentu, tetapi kesannya masih terbatas. Selain itu, mekanisme stop loss tetap menjadikannya sukar untuk menangkap keuntungan tambahan yang dibawa oleh trend garis panjang.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Mengoptimumkan parameter EMA, mencari kombinasi parameter yang memaksimumkan pulangan yang lebih sesuai dengan jenis transaksi tertentu;
  2. Mengoptimumkan parameter MACD untuk penapisan yang lebih baik;
  3. Menggabungkan indikator kadar turun naik, meluaskan ruang stop loss apabila turun naik pasaran meningkat;
  4. Menambah mekanisme pengesanan yang dapat mengesan kerugian, menjadikan kerugian lebih dekat dengan harga, dan mengurangkan kemungkinan kerugian yang tidak perlu dicetuskan dengan jaminan keuntungan.

ringkaskan

Strategi ini mempunyai keuntungan keseluruhan yang tinggi, terutama sesuai untuk perdagangan garis pendek, dan merupakan pilihan yang baik dalam strategi perdagangan kuantitatif yang mengejar perdagangan frekuensi yang lebih tinggi. Tetapi apabila digunakan, pedagang harus berhati-hati untuk menyesuaikan parameter yang masuk akal mengikut keadaan pasaran, untuk memaksimumkan keuntungan strategi, dan juga untuk mengawal risiko perdagangan.

Kod sumber strategi
/*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")