
이 전략은 다중 지수 이동 평균 ((EMA) 의 교차 신호에 기반한 트렌드 추적 시스템이다. 20, 50, 150 주기의 EMA를 결합하여 전체적인 트렌드 식별 및 거래 실행 프레임워크를 구축한다. 이 전략은 시장 추세의 변화와 특정 거래 시점을 결정하기 위해 다른 주기의 EMA 간의 교차 관계를 이용한다.
전략은 세 가지 다른 주기의 지수 이동 평균을 사용합니다: EMA20는 단기 트렌드에 사용되며, EMA50는 중기 트렌드에 사용되며, EMA150는 장기 트렌드에 사용된다. EMA50 위를 EMA150을 통과하면 금색의 교차선이 형성되어 장기 상승 트렌드가 형성되는 것을 나타냅니다. EMA50 아래를 EMA150을 통과하면 사망 교차선이 형성되어 장기 하향 트렌드가 형성되는 것을 나타냅니다.
이 전략은 다중 지수 이동 평균의 조합 사용으로 완전한 트렌드 추적 거래 시스템을 구축한다. 전략 논리는 명확하고, 구현은 간단하며, 좋은 확장성을 가지고 있다. 제안된 최적화 방향을 통해 전략의 안정성과 적응성을 더욱 향상시킬 수 있다. 전략은 중장기 트렌드를 추적하는 데 적합하지만, 시장 환경의 선택과 위험을 통제하는 데 주의를 기울여야 한다.
/*backtest
start: 2024-02-20 00:00:00
end: 2025-01-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("EMA2050150 Crossover Strategy#ganges", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_value=0.1, slippage=3)
// EMAs
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema150 = ta.ema(close, 150)
// Cross conditions
longCondition = ta.crossover(ema20, ema50)
flatCondition = ta.crossunder(ema20, ema50)
deathCross = ta.crossunder(ema50, ema150)
goldenCross = ta.crossover(ema50, ema150)
// // Trade execution
// if longCondition and time >= startDate and time <= endDate and strategy.position_size == 0
// strategy.entry("Long", strategy.long)
// if flatCondition and time >= startDate and time <= endDate and strategy.position_size > 0
// strategy.close("Long")
// Plot EMAs
plot(ema20, title="EMA 20", color=color.blue)
plot(ema50, title="EMA 50", color=color.orange)
plot(ema150, title="EMA 150", color=color.red)
// Plot cross signals
plotshape(series=goldenCross, location=location.belowbar, color=color.green, style=shape.labelup, title="Golden Cross", size=size.small, text="Golden Cross")
plotshape(series=deathCross, location=location.abovebar, color=color.red, style=shape.labeldown, title="Death Cross", size=size.small, text="Death Cross")
// Plot buy and sell signals
plotshape(series=longCondition, location=location.belowbar, color=color.blue, style=shape.triangleup, title="Buy Signal", size=size.small, text="Buy")
plotshape(series=flatCondition, location=location.abovebar, color=color.orange, style=shape.triangledown, title="Sell Signal", size=size.small, text="Sell")
// Trade execution
if longCondition and strategy.position_size == 0
strategy.entry("Long", strategy.long)
if flatCondition and strategy.position_size > 0
strategy.close("Long")