
이것은 다중 지수 이동 평균 (EMA) 의 교차를 기반으로 한 정량 거래 전략으로, 다른 시간 주기 EMA의 교차점을 포착하여 시장의 흐름을 식별하고 거래 신호를 생성합니다. 이 전략은 점진적 인 확인 방식으로 시장의 움직임을 포착하고 직관적인 시각적 경향 판단 장치를 제공합니다.
전략의 핵심 논리는 4개의 다른 주기적 EMA의 교차 신호에 기초한다:
전략은 컬러 코딩을 통해 시장의 정서를 직관적으로 나타냅니다. 파란색은 부진을 나타내고, 빨간색은 하락을 나타냅니다. 색채의 진한은 단기 EMA와 장기 EMA의 위치 관계를 나타냅니다.
다중 EMA 교차 전략은 점진적 신호 생성 및 직관적 시각화 메커니즘을 통해 거래자에게 시장 추세를 포착하는 체계화된 방법을 제공합니다. 일부 한계가 있음에도 불구하고 지속적인 최적화 및 위험 관리로 전략은 여전히 중요한 실용적 가치를 가지고 있습니다.
/*backtest
start: 2025-02-08 00:00:00
end: 2025-04-02 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © joll3d
//@version=5
strategy("Multi-EMA Crossover Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, pyramiding=4, default_qty_value=25)
// Calculate EMAs
ema1 = ta.ema(close, 1)
ema5 = ta.ema(close, 5)
ema3 = ta.ema(close, 3)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema40 = ta.ema(close, 40)
// Define crossover conditions
longCondition1 = ta.crossover(ema1, ema5)
longCondition2 = ta.crossover(ema3, ema10)
longCondition3 = ta.crossover(ema5, ema20)
longCondition4 = ta.crossover(ema10, ema40)
shortCondition1 = ema1 < ema5
shortCondition2 = ema3 < ema10
shortCondition3 = ema5 < ema20
shortCondition4 = ema10 < ema40
// Execute long entries
if (longCondition1)
strategy.entry("Long 1-5", strategy.long)
if (longCondition2)
strategy.entry("Long 3-10", strategy.long)
if (longCondition3)
strategy.entry("Long 5-20", strategy.long)
if (longCondition4)
strategy.entry("Long 10-40", strategy.long)
if (shortCondition1)
strategy.close("Long 1-5")
if (shortCondition2)
strategy.close("Long 3-10")
if (shortCondition3)
strategy.close("Long 5-20")
if (shortCondition4)
strategy.close("Long 10-40")
// Calculate trend strength
bullishStrength = 0
bullishStrength := (ema1 > ema5 ? 1 : 0) +
(ema3 > ema10 ? 1 : 0) +
(ema5 > ema20 ? 1 : 0) +
(ema10 > ema40 ? 1 : 0)
//set bar colors
bullishColor = color.blue
semiBullishColor = color.rgb(175, 213, 243)
semiBearishColor = color.rgb(245, 178, 178)
bearishColor = color.red
barColor = bearishColor
if bullishStrength == 2
barColor := semiBearishColor
if bullishStrength == 3
barColor := semiBullishColor
if bullishStrength == 4
barColor := bullishColor
barcolor(barColor)