
이 전략은 이동 평균 ((MA) 의 교차와 트렌드 추적을 결합한 양적 거래 시스템이다. 그것은 15주기 간단한 이동 평균 ((SMA) 을 트렌드 필터로 사용하고, 동시에 9주기 및 21주기 지수 이동 평균 ((EMA) 의 교차를 사용하여 거래 신호를 생성한다. 이 전략은 엄격한 입시 조건과 고정된 1:4 위험 수익 비율을 사용하여 위험을 관리한다.
전략의 핵심 논리는 다음과 같은 핵심 요소에 기초합니다.
이것은 합리적이고 논리적으로 엄격한 트렌드 추적 전략을 설계한다. 이 전략은 여러 가지 기술 지표와 엄격한 위험 관리를 결합하여 좋은 실용성을 가지고 있다. 일부 고유한 위험이 존재하지만, 제안된 최적화 방향은 전략의 안정성과 수익성을 더욱 향상시킬 수 있다. 이 전략은 특히 트렌드가 뚜렷한 시장에서 적용하기에 적합하며, 중장기 기간 동안 사용하는 것이 좋습니다.
/*backtest
start: 2024-02-21 00:00:00
end: 2024-12-19 00:00:00
period: 4d
basePeriod: 4d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("EMA Crossover Strategy with 15 SMA Trend", overlay=true, margin_long=100, margin_short=100)
// Calculate Indicators
sma15 = ta.sma(close, 15)
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
// Trend Detection
uptrend = close > sma15
downtrend = close < sma15
// Crossover Conditions
goldenCross = ta.crossover(ema9, ema21)
deathCross = ta.crossunder(ema9, ema21)
// Candle Conditions
twoBullish = (close > open) and (close[1] > open[1])
bearishCandle = (close < open)
// Entry Conditions
longCondition = goldenCross and uptrend and twoBullish and (ema9 > sma15) and (ema21 > sma15)
shortCondition = deathCross and downtrend and bearishCandle and (ema9 < sma15) and (ema21 < sma15)
// Risk Management
var float longStop = na
var float longTarget = na
var float shortStop = na
var float shortTarget = na
if longCondition
longStop := low
longTarget := close + 4*(close - longStop)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", "Long", stop=longStop, limit=longTarget)
if shortCondition
shortStop := high
shortTarget := close - 4*(shortStop - close)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortTarget)
// Visual Elements
plot(sma15, "15 SMA", color=color.orange)
plot(ema9, "9 EMA", color=color.blue)
plot(ema21, "21 EMA", color=color.red)
// Plot trading levels
plot(longCondition ? longStop : na, "Long Stop", color=color.red, style=plot.style_linebr)
plot(longCondition ? longTarget : na, "Long Target", color=color.green, style=plot.style_linebr)
plot(shortCondition ? shortStop : na, "Short Stop", color=color.red, style=plot.style_linebr)
plot(shortCondition ? shortTarget : na, "Short Target", color=color.green, style=plot.style_linebr)
// Signal Markers
plotshape(longCondition, "Buy", shape.triangleup, location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, "Sell", shape.triangledown, location.abovebar, color=color.red, size=size.small)