트렌드를 따르는 기하급수적 이동 평균 전략은 트렌드를 기반으로 한 양적 거래 전략이다. 암호화 시장에서 잠재적 진입 및 출구 신호를 식별하기 위해 서로 다른 기간을 가진 기하급수적 이동 평균 (EMA) 을 사용합니다. 다른 EMA 간의 크로스오버를 추적함으로써 위험성을 완화하면서 잠재적 인 이익을 극대화하기 위해 인하 및 트렌드 진입 기회를 발견 할 수 있습니다.
이 전략은 각각 8, 12, 24 및 72의 기간을 가진 네 개의 EMA를 사용합니다. 그들은 트렌드 방향에 대한 차트에서 시각적인 가이드 역할을합니다. 폐쇄 가격이 느린 EMA를 통과하면 구매 기회를 신호합니다. 더 빠른 EMA가 느린 EMA를 통과하면 판매 기회를 신호합니다.
두 개의 입력 신호가 있습니다.
세 개의 출구 신호가 있습니다.
이 전략의 가장 큰 장점은 인하와 트렌드 기회를 모두 활용할 수 있는 능력이다. 더 빠르고 느린 EMA 콤보를 사용하면 단기 변동에 의해 오도되는 것을 방지한다. EMA는 또한 장기 트렌드를 포착하기 위해 가격 잡음을 효과적으로 필터링한다. 전반적인 장점은 다음과 같다:
몇 가지 위험 요소는 예방되어야 합니다.
다음 의 조치는 위 위험 을 통제 하는 데 도움이 될 수 있습니다.
더 많은 최적화를 할 수 있습니다.
전체적으로 이 EMA 추적 전략은 엔트리에 대한 EMA 크로스오버를 통해 트렌드 및 풀백 기회를 모두 활용합니다. 높은 구성성, 단순성 및 효과적인 리스크 제어로 매개 변수 조정 및 점진적인 정제로 더 높은 성능을 발휘할 수 있는 큰 잠재력을 가지고 있습니다. 강점은 권장 트렌드 다음 시스템으로 만듭니다.
/*backtest start: 2023-10-31 00:00:00 end: 2023-11-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © moondevonyt //@version=5 strategy("Cornoflower Trend Following Crypto", overlay=true) // Input Settings lenEma8 = input(8, title="Length of 8 EMA") lenEma12 = input(12, title="Length of 12 EMA") lenEma24 = input(24, title="Length of 24 EMA") lenEma72 = input(72, title="Length of 72 EMA") // Calculate the EMAs ema8 = ta.ema(close, lenEma8) ema12 = ta.ema(close, lenEma12) ema24 = ta.ema(close, lenEma24) ema72 = ta.ema(close, lenEma72) // Entry Conditions pullbackEntry = ta.crossover(close, ema12) and ta.crossover(close, ema24) and ta.crossover(close, ema72) initialEntry = ta.crossover(close, ema72) and ta.crossover(ema8, ema12) and ta.crossover(ema8, ema24) // Exit Conditions profitTarget = 100 // Example target in pips, adjust according to your preference trailingStop = 50 // Example trailing stop value in pips, adjust according to your preference exitCondition = ta.crossunder(ema12, ema24) // Execute Strategy if pullbackEntry strategy.entry("Pullback Entry", strategy.long) if initialEntry strategy.entry("Initial Entry", strategy.long) if strategy.position_size > 0 strategy.exit("Profit Target", "Pullback Entry", limit=close + (profitTarget * syminfo.mintick)) strategy.exit("Trailing Stop", "Pullback Entry", stop=close - (trailingStop * syminfo.mintick), trail_points=trailingStop) strategy.exit("Exit Condition", "Initial Entry", stop=close, when=exitCondition) // Plot EMAs plot(ema8, color=color.yellow, title="8 EMA", linewidth=1, style=plot.style_line) plot(ema12, color=color.purple, title="12 EMA", linewidth=1, style=plot.style_line) plot(ema24, color=color.blue, title="24 EMA", linewidth=1, style=plot.style_line) plot(ema72, color=color.rgb(235, 255, 59), title="72 EMA", linewidth=1, style=plot.style_line)