
이 전략은 13과 21주기 지수 이동 평균 ((EMA) 의 교차를 기반으로 한 양적 거래 전략이다. 전략은 단기 및 장기 EMA의 교차를 관찰하여 시장 추세 변화를 식별하고, 금의 교차가 발생하면 더 많은 위치를 차지하고, 사망의 교차가 발생하면 더 많은 위치를 차지하고. 전략의 독특한 점은 시각적 효과를 높이기 위해 동적 색상의 변화를 사용하는 것으로, 거래자가 거래 신호를 더 직관적으로 식별하는 데 도움이됩니다.
전략의 핵심 논리는 두 개의 다른 주기의 지수 이동 평균을 기반으로 합니다: 13 주기 단기 EMA와 21 주기 장기 EMA. 단기 EMA를 상향으로 가로질러 올라가면 금색의 교차선이 형성되며, 상승 추세를 나타내고, 시스템에서 구매 신호를 생성합니다. 단기 EMA를 하향으로 가로질러 내려가면 사망 교차선이 형성되어, 하향 추세를 나타내고, 시스템에서 판매 신호를 생성합니다. 전략은 동적 색상을 사용하여, 교차가 발생하면 EMA 선의 색상을 변경합니다. 녹색은 다중 머리 신호를 나타냅니다. 빨간색은 빈 머리 신호를 나타냅니다. 이러한 시각적 피드백은 거래자가 시장 상태를 신속하게 판단하는 데 도움이됩니다.
쌍평선 교차 동적 색량화 전략은 기술분석의 고전적 이론과 현대적인 시각화 기술을 결합한 거래 시스템이다. 전략은 EMA를 교차하여 거래 신호를 생성하고, 동적 색상 변화를 사용하여 시각적 효과를 강화하여 거래 결정을 더 직관적으로 만든다. 일부 고유한 위험이 있지만, 합리적인 최적화와 위험 관리를 통해 전략은 효과적인 거래 도구가 될 수 있다.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-03 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Strategy by clf", overlay=true)
// Input parameters for EMAs
shortEmaLength = input(13, title="Short EMA Length")
longEmaLength = input(21, title="Long EMA Length")
// Calculate EMAs
shortEma = ta.ema(close, shortEmaLength)
longEma = ta.ema(close, longEmaLength)
// Define the color variable with type
var color emaColor = na
// Determine the colors for the EMAs based on crossovers
if (ta.crossover(shortEma, longEma))
emaColor := color.green
else if (ta.crossunder(shortEma, longEma))
emaColor := color.red
// Plot EMAs on the chart with dynamic colors
plot(shortEma, title="Short EMA", color=emaColor, linewidth=2)
plot(longEma, title="Long EMA", color=color.red, linewidth=2)
// Generate buy and sell signals
longCondition = ta.crossover(shortEma, longEma)
shortCondition = ta.crossunder(shortEma, longEma)
// Plot buy and sell signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Strategy entry and exit
strategy.entry("Long", strategy.long, when=longCondition)
strategy.close("Long", when=shortCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Short", when=longCondition)