
이 전략은 두 개의 다른 주기의 지수 이동 평균 ((EMA) 을 교차하여, 빠른 EMA가 아래로 올라서 천천히 EMA를 통과하면 구매 신호를 생성하고, 빠른 EMA가 위로 내려서 천천히 EMA를 통과하면 판매 신호를 생성한다. 이 전략은 다양한 금융 도구와 시간 주기에 적용될 수 있다. 예를 들어, 금은 2 시간 주기에서 가장 효과적이며, 비트코인은 일선 차트에서 가장 효과적이다.
MACD 교차 전략은 트렌드 추적을 기반으로 한 간단한 전략으로, 장점은 간단하고 실용적이며 적용 범위가 넓으며, 단점은 트렌드 전환을 파악하기가 어렵고, 매개 변수 선택이 어렵습니다. 트렌드 필터링, 입출점 최적화, 매개 변수 선택 및 기타 지표의 조합으로 전략의 성능을 향상시킬 수 있으며, 추가 연구 및 테스트가 가치가 있습니다.
/*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")
//****************************************************************************//