
이 전략은 14주기 지수 이동 평균 ((EMA) 에 기반한 거래 시스템으로, 그래프 형태 분석과 가격 동력 특성을 결합한다. 이 전략은 가격과 EMA의 교차 관계를 분석하면서, 그래프의 형태 특성을 고려하면서 (예: 실체와 그림자 비율과 같은) 거래 신호를 결정하여 시장 추세의 변화점을 포착한다.
전략의 핵심 논리는 다음과 같은 핵심 요소에 기초합니다.
이 전략은 EMA, 그래프 형태 및 가격 행동 분석을 종합적으로 적용하여 전체적인 거래 시스템을 구축한다. 전략의 장점은 신호 확인의 엄격성과 위험 제어의 완벽함에 있다. 그러나 또한 전략의 성능에 대한 시장 환경의 영향을 고려해야 한다. 제안된 최적화 방향에 의해 전략의 안정성과 적응성이 더욱 향상될 전망이다.
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Buy and Sell Signals with EMA", overlay=true)
// Define the 14-period EMA
ema14 = ta.ema(close, 14)
// --- Buy Conditions ---
ema_length = input.int(14, title="EMA Length")
// Calculate the 14 EMA
ema_14 = ta.ema(close, ema_length)
// Calculate the candle body and wicks
body = close - open
upper_wick = high - close
lower_wick = open - low
total_candle_length = high - low
// Define the condition for the candle to be green (bullish)
is_green_candle = close > open
// Condition for crossing the 14 EMA (previous close was below, current close is above)
crossing_ema = ta.crossover(close, ema_14)
// Condition for at least 50% of the candle's body crossing the 14 EMA
body_crossed_ema = (close - open) * 0.5 <= (close - ema_14) and close > ema_14
// Condition for wick percent being less than or equal to 40% of the total candle length
wick_percent = (upper_wick + lower_wick) / total_candle_length
valid_wick_condition = wick_percent <= 0.4
// Define the buy condition
buy_condition = is_green_candle and crossing_ema and body_crossed_ema and valid_wick_condition
// --- Sell Conditions ---
candleIsRed = close < open
priceBelowEMA = close < ema14
prevLowAboveEMA = low[1] > ema14[1] // Previous candle's low must be above the EMA
wickTooLarge = (low - math.min(open, close)) / (high - low) <= 0.2 // Lower wick should not exceed 20%
// Sell signal condition
sellSignal = priceBelowEMA and candleIsRed and prevLowAboveEMA and wickTooLarge
// --- Plotting ---
plot(ema14, color=color.blue, linewidth=2, title="14-period EMA") // Plot the 14-period EMA
// Plot the buy signal as an arrow on the chart
plotshape(buy_condition, color=color.green, style=shape.labelup, location=location.belowbar, text="BUY")
// Plot the sell signal as an arrow on the chart
plotshape(sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")
// Optional: Add strategies for backtesting
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.entry("Sell", strategy.short)