이 전략은 진입 신호로 EMA 34의 모멘텀 크로스오버를 기반으로 하는 트렌드 추종 전략입니다. 이 전략은 EMA 모멘텀 라인과 EMA 34의 황금 십자가를 통과하는 가격의 돌파구 신호를 결합하여 거래 신호를 생성합니다.
이 전략은 먼저 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너스 마이너
특히, 닫기 가격이 emaHigh을 초과하면 구매 신호가 생성됩니다. 닫기 가격이 emaLow 아래있을 때 판매 신호가 생성됩니다. 신호가 생성되면 해당 시점의 닫기 가격에 입력하고 수익을 100 포인트로 설정하고 스톱 로스를 50 포인트로 설정합니다.
이러한 방식으로 전략은 EMA 34의 동력 지표를 사용하여 시장의 추세를 파악하고 추세를 따라 실행합니다.
이 전략의 가장 큰 장점은 이동 평균의 황금 십자 신호와 가격의 돌파 신호를 결합하여 입점 지점을 더 정확하게 만들고 잘못된 신호를 효과적으로 필터 할 수 있다는 것입니다. 또한, 트렌드 추적 도구로서 EMA는 트렌드 거래를 구현하기 위해 전략이 시장 추세를 적시에 파악하는 데 도움이 될 수 있습니다.
이 전략의 주요 위험은 연속적인 긴 손실에 취약하다는 것입니다. 시장이 새로운 상승 추세를 시작하기 전에 짧은 조정 충격을 받으면이 전략은 종종 손실로 포지션을 줄일 수 있습니다. 또한, 추세를 따르는 전략으로서, 측면 시장에서 이익을 얻을 수 없습니다.
최적화는 스톱 로스 포인트를 적절하게 조정하거나 전략의 승률을 향상시키기 위해 다른 지표를 추가함으로써 달성 할 수 있습니다.
이 전략은 다음과 같은 방향으로 최적화 될 수 있습니다.
필터링을 위한 다른 지표를 추가합니다. 예를 들어 부피 지표를 추가하여 가짜 파업에 걸리지 않도록 합니다.
EMA 사이클 매개 변수를 최적화하고 품종에 더 적합한 사이클 매개 변수로 조정합니다.
전략의 안정성을 높이기 위해 단순한 취득점과 스톱 로스점 대신 이윤 요인 같은 출구 메커니즘을 사용하십시오.
유동성이 낮은 기간에 거래를 피하기 위해 유동성 필터링을 높여야 유동성 손실을 줄일 수 있습니다.
이 전략은 EMA 모멘텀 지표에 기반한 트렌드를 따르는 전략으로서, 이 전략은 높은 실용적 유용성을 가지고 있다. 가격 돌파 신호와 EMA 황금 십자 신호를 결합함으로써, 새로운 트렌드 방향을 효과적으로 발견할 수 있다. 특정 매개 변수와 출구 메커니즘 최적화 후, 전략의 안정성은 더욱 향상될 수 있다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA 34 Crossover Strategy_4", overlay=true) length = 34 exitPoints = 50 emaClose = ta.ema(close, length) emaHigh = ta.ema(high, length) emaLow = ta.ema(low, length) var float[] entryPrices = array.new_float() var float[] exitLevels = array.new_float() // Long entry condition: Price crosses above EMA 34 high enterLong = ta.crossover(close, emaHigh) // Short entry condition: Price crosses below EMA 34 low enterShort = ta.crossunder(close, emaLow) // Exit condition for both long and short trades exitLong = array.size(entryPrices) > 0 ? close >= array.get(entryPrices, array.size(entryPrices) - 1) + exitPoints : false exitShort = array.size(entryPrices) > 0 ? close <= array.get(entryPrices, array.size(entryPrices) - 1) - exitPoints : false if (enterLong) array.push(entryPrices, close) array.push(exitLevels, close + exitPoints) strategy.entry("Buy", strategy.long) if (enterShort) array.push(entryPrices, close) array.push(exitLevels, close - exitPoints) strategy.entry("Sell", strategy.short) if (exitLong) strategy.close("Buy") if (exitShort) strategy.close("Sell") plot(emaClose, color=color.blue, title="EMA 34 Close") plot(emaHigh, color=color.red, title="EMA 34 High") plot(emaLow, color=color.green, title="EMA 34 Low")