
Chiến lược này sử dụng hai chu kỳ khác nhau của các chỉ số di chuyển trung bình (EMA) để giao chéo, tạo ra một tín hiệu mua khi EMA nhanh từ dưới lên vượt qua EMA chậm, và một tín hiệu bán khi EMA nhanh từ trên xuống vượt qua EMA chậm. Chiến lược này có thể được áp dụng cho một loạt các công cụ tài chính và thời gian, ví dụ như vàng hiệu quả nhất trong chu kỳ 2 giờ, Bitcoin hiệu quả nhất trên biểu đồ đường mặt trời.
Chiến lược giao chéo MACD là một chiến lược đơn giản dựa trên theo dõi xu hướng, ưu điểm là đơn giản, thực tế và có thể áp dụng rộng rãi, nhược điểm là khó nắm bắt xu hướng, lựa chọn tham số khó khăn. Bằng cách lọc xu hướng, tối ưu hóa điểm ra, lựa chọn tham số và kết hợp các chỉ số khác, chiến lược này có thể cải thiện hiệu suất và đáng để nghiên cứu và thử nghiệm thêm.
/*backtest
start: 2023-04-12 00:00:00
end: 2024-04-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('Advance EMA Crossover Strategy', overlay=true, precision=6)
//****************************************************************************//
// CDC Action Zone is based on a simple EMA crossover
// between [default] EMA12 and EMA26
// The zones are defined by the relative position of
// price in relation to the two EMA lines
// Different zones can be use to activate / deactivate
// other trading strategies
// The strategy can also be used on its own with
// acceptable results, buy on the first green candle
// and sell on the first red candle
//****************************************************************************//
// Define User Input Variables
xsrc = input(title='Source Data', defval=close)
xprd1 = input(title='Fast EMA period', defval=12)
xprd2 = input(title='Slow EMA period', defval=26)
xsmooth = input(title='Smoothing period (1 = no smoothing)', defval=1)
fillSW = input(title='Paint Bar Colors', defval=true)
fastSW = input(title='Show fast moving average line', defval=true)
slowSW = input(title='Show slow moving average line', defval=true)
plotSigsw = input(title='Plot Buy/Sell Signals?', defval=true)
//****************************************************************************//
//Calculate Indicators
xPrice = ta.ema(xsrc, xsmooth)
FastMA = ta.ema(xPrice, xprd1)
SlowMA = ta.ema(xPrice, xprd2)
//****************************************************************************//
// Define Color Zones and Conditions
BullZone = FastMA > SlowMA and xPrice > FastMA // Bullish Zone
BearZone = FastMA < SlowMA and xPrice < FastMA // Bearish Zone
//****************************************************************************//
// Strategy Entry and Exit Conditions
if (BullZone and not BullZone[1])
strategy.entry("Buy", strategy.long) // Buy on the transition into BullZone
if (BearZone and not BearZone[1])
strategy.close("Buy") // Sell on the transition into BearZone
//****************************************************************************//
// Display color on chart
plotcolor = BullZone ? color.green : BearZone ? color.red : color.gray
barcolor(color=fillSW ? plotcolor : na)
//****************************************************************************//
// Plot Fast and Slow Moving Averages
plot(fastSW ? FastMA : na, color=color.red, title="Fast EMA", linewidth=2)
plot(slowSW ? SlowMA : na, color=color.blue, title="Slow EMA", linewidth=2)
//****************************************************************************//
// Plot Buy and Sell Signals
plotshape(series=plotSigsw and BullZone and not BullZone[1], location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=plotSigsw and BearZone and not BearZone[1], location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")
//****************************************************************************//