이 전략은 EMA 교차와 촛불 방향에 기반한 구매 및 판매 신호를 식별하기 위해 9일 및 15일 기하급수적 이동 평균 (EMA) 을 계산합니다. 9EMA가 15EMA를 넘어서 마지막 촛불이 상승하고 9EMA가 15EMA를 넘어서 마지막 촛불이 하락할 때 구매 신호를 생성하고 판매 신호를 만듭니다. 전략은 ATR 기반의 스톱 로스도 포함합니다.
이 전략의 장점은 다음과 같습니다.
위험은 다음과 같습니다.
해결책:
최적화 할 수 있는 영역:
이것은 이중 EMA 크로스오버와 촛불 필터링을 ATR 기반의 동적 스톱 로스로 통합하는 간단하면서도 효과적인 내일 스칼핑 전략입니다. 매개 변수 및 다중 요인 조합의 추가 개선은 안정성과 수익성을 향상시킬 수 있습니다.
/*backtest start: 2023-01-17 00:00:00 end: 2024-01-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Scalping Strategy", shorttitle="EMAScalp", overlay=true) // Input parameters ema9_length = input(9, title="9 EMA Length") ema15_length = input(15, title="15 EMA Length") // Calculate EMAs ema9 = ta.ema(close, ema9_length) ema15 = ta.ema(close, ema15_length) // Plot EMAs on the chart plot(ema9, color=color.blue, title="9 EMA") plot(ema15, color=color.red, title="15 EMA") // Identify Bullish and Bearish candles bullish_candle = close > open bearish_candle = close < open // Bullish conditions for Buy Signal buy_condition = ta.crossover(close, ema9) and ema15 < ema9 and bullish_candle // Bearish conditions for Sell Signal sell_condition = ta.crossunder(close, ema9) and ema15 > ema9 and bearish_candle // Plot Buy and Sell signals plotshape(series=buy_condition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar) plotshape(series=sell_condition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar) // Optional: Add stop-loss levels atr_length = input(14, title="ATR Length for Stop Loss") atr_multiplier = input(1.5, title="ATR Multiplier for Stop Loss") atr_value = ta.atr(atr_length) stop_loss_level = strategy.position_size > 0 ? close - atr_multiplier * atr_value : close + atr_multiplier * atr_value plot(stop_loss_level, color=color.gray, title="Stop Loss Level", linewidth=2) // Strategy rules if (buy_condition) strategy.entry("Buy", strategy.long) strategy.exit("Exit Buy", from_entry="Buy", loss=stop_loss_level) if (sell_condition) strategy.entry("Sell", strategy.short) strategy.exit("Exit Sell", from_entry="Sell", loss=stop_loss_level)