
Ini adalah strategi pengesanan trend yang menggabungkan penggunaan 3 indeks moving averages (EMA), trend indicators (DMI) dan moving average aggregate indicators (MACD) untuk menentukan arah trend dan menghasilkan isyarat jual beli. Komponen utama termasuk isyarat EMA Gold Crossover, DMI menilai kekuatan trend dan MACD untuk pengesahan momentum.
Logik teras bergantung kepada 3 EMA - 34, 89, dan 200 - yang dikira pada kitaran M5 untuk mengenal pasti trend keseluruhan. 34 kitaran EMA memberikan arah jangka pendek, manakala 89 dan 200 EMA menentukan trend jangka panjang.
Apabila anda membeli isyarat:
Menjual semasa menghasilkan isyarat:
Indeks MACD memberikan pengesahan tambahan sebelum kemasukan.
Strategi ini mempunyai beberapa kelebihan utama:
Risiko utama:
Cara untuk mengurangkannya:
Peningkatan lebih lanjut dalam strategi:
Secara keseluruhannya, ia adalah satu sistem pengesanan trend yang kuat, yang menggabungkan beberapa rentetan petunjuk yang mudah tetapi praktikal. Tiga EMA untuk menilai trend dalam pelbagai bingkai masa, DMI dan MACD untuk memeriksa peluang masuk dan peluang keuntungan. Bersama dengan pengoptimuman dan pengurusan risiko yang sesuai, ia boleh menjadi alat yang berkesan untuk pedagang trend.
/*backtest
start: 2023-01-18 00:00:00
end: 2024-01-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("2 EMA di+ Buy Sell, strategy ", overlay=true)
// Define the EMA calculation function
ema(src, length) =>
ta.ema(src, length)
// Calculate and plot EMA on M5
ema34_M5 = ema(close, 34)
ema89_M5 = ema(close, 89)
ema200_M5 = ema(close, 200)
// Plot EMAs
plot(ema34_M5, color=color.green, title="EMA 34 M5", linewidth=2)
plot(ema89_M5, color=color.blue, title="EMA 89 M5", linewidth=2)
plot(ema200_M5, color=color.black, title="EMA 200 M5", linewidth=2)
// Define DMI parameters
len = input(14, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plusDI = 100 * ta.rma(plusDM, len) / trur
minusDI = 100 * ta.rma(minusDM, len) / trur
// Calculate ADX
adxValue = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI == 0 ? 1 : plusDI + minusDI), len)
// Define MACD parameters
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
// Create buy/sell conditions
buyCondition = close > ema34_M5 and plusDI > 17 and adxValue > minusDI
sellCondition = close < ema34_M5 and minusDI > 17 and adxValue > plusDI
// Strategy logic
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)
// Create alerts for buy/sell signals
alertcondition(buyCondition, title="Buy Signal", message="Buy Signal")
alertcondition(sellCondition, title="Sell Signal", message="Sell Signal")
// Plot buy/sell arrows on the price chart
bgcolor(buyCondition ? color.new(color.green, 90) : sellCondition ? color.new(color.red, 90) : na)
plotarrow(buyCondition ? 1 : sellCondition ? -1 : na, colorup=color.new(color.green, 0), colordown=color.new(color.red, 0), offset=-1)