이 전략은 가격 트렌드를 인식하고 트렌드를 추적하기 위해 이중 EMA 지표에 기반을 두고 있습니다. 먼저 중장기 EMA와 단기 EMA를 계산하고, 두 EMA 사이에 황금 십자가가 있을 때 긴 포지션과 두 EMA 사이에 죽음의 십자가가 있을 때 짧은 포지션을 구현합니다. 한편, 잘못된 신호를 추가로 제거하기 위해 가장 높은/최저 필터링도 도입됩니다.
이 전략의 핵심 지표는 이중 EMA입니다. 하나는 단기이고 다른 하나는 장기입니다. 구체적으로 다음과 같은 변수가 전략에서 정의됩니다.
ema1: 중장기 EMA 기간, 34일까지
ema2: 단기 EMA 기간, 13일까지 기본
ema_sr: 폐쇄 가격에 기초한 중장기 EMA
highest_ema: ema_sr의 최대 EMA, 기간은 ema2입니다.
가장 낮은 EMA: EMA의 가장 낮은 EMA, 기간은 EMA2입니다.
ema_ysl: 거래 신호를 생성하는 데 사용되는 EMA, ema_sr과 최고/최저_ema 사이의 관계에 기초하여 계산됩니다.
크로스는 ema_sl과 ema_ysl 사이의 황금과 죽음의 크로스를 감지하고, 따라서 트렌드를 따르는 것을 달성합니다.
이중 EMA의 조합은 가격 추세를 더 정확하게 판단 할 수 있습니다. 중장기 EMA는 단기 소음을 필터링하고, 단기 EMA는 중장기 트렌드의 전환을 적시에 추적 할 수 있습니다. 가장 높은 / 가장 낮은 EMA를 도입하면 잘못된 신호를 추가로 제거하고 불필요한 거래를 줄일 수 있습니다.
이 전략의 가장 큰 장점은 정확한 트렌드 식별에 있다. 이중 EMA 자체는 트렌드 변화를 포착하기 위해 단일 EMA, SMA 및 기타 지표보다 우월하다. 그리고 가장 높은 / 가장 낮은 EMA의 적용은 단기 인회로 인한 잘못된 신호를 효과적으로 필터링 할 수 있습니다. 이는 트렌드 다음 전략에 중요합니다.
또한, 이 전략의 매개 변수는 간단하고 조정 및 최적화하기가 쉽습니다. 사용자는 두 개의 EMA 매개 변수에만 집중할 필요가 있습니다. 이는 매우 직관적입니다. 이것은 또한 전략을 이해하고 사용하기 쉽도록합니다.
이 전략의 주요 위험은 트렌드 반전을 식별하지 못한다는 것입니다. 가격이 장기적 조정이나 주요 전환을 형성 할 때 이중 EMA의 지연은 최고의 입구 지점을 놓치게 될 수 있습니다. 이 시점에서 과대 규모의 지점은 더 큰 손실로 이어질 수 있습니다.
또한 EMA 자체는 비상 사태에 대응할 능력이 없습니다. 전략은 또한 블랙 스완 사건이 발생하면 손실을 입을 수 있습니다.
위의 위험을 완화하기 위해 중장기 EMA의 길이를 적절하게 단축하거나 긴급 상황에 대처하기 위해 MACD와 같은 지표를 도입하는 것이 좋습니다. 동시에 최대 손실을 제어하기 위해 스톱 로스를 설정할 수도 있습니다.
이 전략은 더 많은 최적화를 할 수 있습니다. 구체적으로 주요 방향은 다음과 같습니다.
최적의 매개 변수를 찾기 위해 EMA 매개 변수의 더 많은 조합을 테스트합니다.
부피 판단을 추가하여 가격 변동에 대해 잘못된 신호를 발산하지 않도록 합니다.
트렌드 라인, 채널 및 다른 도구를 결합하여 트렌드 전환점을 더 정확하게 판단합니다.
매개 변수 최적화, 필터 조건 추가 및 기타 방법을 통해 전략의 안정성과 수익성을 더욱 향상시키는 것이 유망합니다. 이는 양적 분석가들이 지속적으로 백테스트와 최적화를 수행하도록 요구합니다.
일반적으로 이 전략은 이중 EMA로 잡음을 필터링하여 트렌드를 식별하고 가격 곡선을 효과적으로 매끄럽게 함으로써 상대적으로 강한 능력을 가지고 있습니다. 가장 높은 / 가장 낮은 EMA의 도입은 신호의 신뢰성을 향상시킵니다. 백테스트 결과를 판단하면 전략은 좋은 안정적인 수익을 얻을 수 있습니다.
그러나 전략 자체는 트렌드 반전을 적시에 식별하는 데 약간의 지연을 가지고 있습니다. 이것은 직면 한 주요 위험이며 미래의 최적화의 핵심 방향이기도 합니다. 우리는 매개 변수 조정, 신호 필터링 및 기타 방법을 통해 전략의 탄력성을 더욱 강화하여 더 많은 시장 환경에서 안정적인 수익을 얻을 수 있기를 기대합니다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // Modified from kivancfr3762's A2MK script strategy("EMA STRATEGY", overlay=true) ema2=input(13, "EMA2 Length") ema1=input(34, "EMA1 Length") ema_sr = ema((max(close[1], high) + min(close[1], low)) / 2, ema1) highest_ema = ema(highest(ema_sr, 3), ema2) lowest_ema = ema(lowest(ema_sr, 3), ema2) k1 = ema_sr > highest_ema k2 = ema_sr < lowest_ema ema_ysl = iff(k1, lowest_ema, highest_ema) longCondition = crossover(ema_ysl, ema_sr) if (longCondition) strategy.entry("Short", strategy.short) shortCondition = crossunder(ema_ysl, ema_sr) if (shortCondition) strategy.entry("Long", strategy.long)