이 전략은 다중 기하급수적인 이동 평균 (EMA) 과 매끄러운 이동 평균 (SMMA) 에 기반한 트렌드-추천 거래 시스템이다. 단기 및 장기 EMA의 교차를 통해 거래 신호를 생성하고, 트렌드 확인 지표로 SMMA를 사용하고, 지원 및 저항 참조로 추가 EMA 라인을 통합합니다. 이 접근법은 트렌드 포착과 잘못된 브레이크아웃 위험을 효과적으로 제어 할 수 있습니다.
이 전략은 10일 및 22일 EMA를 주요 신호 라인, 200일 SMMA를 트렌드 필터, 그리고 50일, 100일 및 200일 EMA를 보조 지표로 사용한다. 단기 EMA가 장기 EMA를 넘어서고 가격이 SMMA를 넘어서면 구매 신호가 생성된다. 단기 EMA가 장기 EMA를 넘어서고 가격이 SMMA를 넘어서면 판매 신호가 생성된다. 추가적인 3개의 EMA 라인은 추가적인 기술 지원 및 저항 기준점을 제공한다.
이 전략은 여러 이동 평균 시스템을 통합하여 다양한 기간 이동 평균을 조정하여 위험을 제어하는 동시에 트렌드를 포착하는 트렌드를 따르는 전략입니다. 전략의 핵심 강점은 여러 가지 확인 메커니즘에 있지만, 범위 시장에서의 성능에주의를 기울여야합니다. 적절한 매개 변수 최적화 및 위험 관리를 통해이 전략은 트렌딩 시장에서 좋은 결과를 얻을 수 있습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-10 08:00:00 period: 2d basePeriod: 2d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover with SMMA and Additional EMAs", overlay=true) // Input parameters for EMAs and SMMA emaShortLength = input.int(10, title="Short EMA Length") emaLongLength = input.int(22, title="Long EMA Length") smmaLength = input.int(200, title="SMMA Length") // Additional EMA lengths ema1Length = input.int(50, title="EMA 1 Length") ema2Length = input.int(100, title="EMA 2 Length") ema3Length = input.int(200, title="EMA 3 Length") // Calculate EMAs and SMMA emaShort = ta.ema(close, emaShortLength) emaLong = ta.ema(close, emaLongLength) smma = ta.sma(ta.sma(close, smmaLength), 2) // SMMA approximation ema1 = ta.ema(close, ema1Length) ema2 = ta.ema(close, ema2Length) ema3 = ta.ema(close, ema3Length) // Plot EMAs and SMMA on the chart plot(emaShort, color=color.blue, linewidth=2, title="Short EMA") plot(emaLong, color=color.red, linewidth=2, title="Long EMA") plot(smma, color=color.white, linewidth=2, title="SMMA") plot(ema1, color=color.green, linewidth=1, title="EMA 1") plot(ema2, color=color.purple, linewidth=1, title="EMA 2") plot(ema3, color=color.yellow, linewidth=1, title="EMA 3") // Buy condition: Short EMA crosses above Long EMA and price is above SMMA buyCondition = ta.crossover(emaShort, emaLong) and close > smma // Sell condition: Short EMA crosses below Long EMA and price is below SMMA sellCondition = ta.crossunder(emaShort, emaLong) and close < smma // Execute Buy order if (buyCondition) strategy.entry("Buy", strategy.long) alert("Buy Signal: Short EMA crossed above Long EMA and price is above SMMA.", alert.freq_once_per_bar_close) // Execute Sell order if (sellCondition) strategy.entry("Sell", strategy.short) alert("Sell Signal: Short EMA crossed below Long EMA and price is below SMMA.", alert.freq_once_per_bar_close)