이중 EMA 간격 거래 전략은 트렌드 팔링 전략으로, 두 개의 다른 기간의 EMA의 간격 비율을 계산하여 시장 추세를 판단하고 거래를합니다. 이 전략은 간단하고 직접적이며 중장선 추세를 효과적으로 추적 할 수 있으며 중장선 추세 거래자에게 매우 적합합니다.
이 전략은 주로 두 개의 EMA의 수적 크기와 그 사이의 간격을 기반으로 트렌드 방향을 결정한다. 전략은 먼저 단기 EMA와 장기 EMA를 계산하며, 전형적인 구성은 13주기 및 26주기 EMA이다. 그리고 두 개의 EMA 사이의 간격을 계산한다.
이 전략의 핵심 논리는 다음과 같습니다.
이러한 디자인을 통해 중·장기 트렌드를 효과적으로 추적하고 트렌드가 변할 때 신속하게 방향을 전환할 수 있습니다. 또한, 간격한 경미치를 설정하면 비중있는 기간의 조정이 불필요한 거래를 초래하는 것을 피할 수 있습니다.
위험은 다음과 같은 방법으로 줄일 수 있습니다.
이 전략은 다음과 같은 측면에서 최적화될 수 있습니다.
변수 최적화: EMA 주기의 변수 및 스펙트럼 값을 재검토하여 최적화하여 최적의 변수 조합을 찾습니다.
트렌드 필터: MACD, 브린 띠와 같은 다른 추세를 결정하는 지표를 추가하여 흔들림의 범위를 피하십시오.
손해 방지 전략: 단편적 손실을 제어하기 위해 이동적 손해 또는 시간적 손해를 설정
이윤 회전: 이윤의 일부를 설정한 후 이동 중지, 이윤의 일부를 잠금
양적 최적화: 전략의 양적 최적화를 구현하기 위해 기계 학습과 같은 방법을 사용하여 매개 변수 및 필터링 조건을 자동으로 최적화합니다.
조합 최적화: 이 전략을 다른 비관련 전략과 조합하여 회수량을 줄이고 안정성을 높인다.
매개 변수, 필터 조건, 손실, 수익 회전 등의 여러 가지 측면의 최적화를 통해 전략이 더 안정적이고, 더 많은 시장 상황에 적응하고, 더 과학적이고, 더 효과적입니다. 양적 및 조합 최적화는 전략의 효과를 크게 향상시킬 수 있습니다.
이중 EMA 간격 전략은 간단한 직접, 트렌드 추적에 적합한 전략이다. 그것은 단지 두 개의 EMA를 통해 트렌드 방향을 판단할 수 있으며, 중장선 지위를 유지하는 데 적합하다. 또한, 매개 변수 최적화, 트렌드 필터링, 손실 중지 전략과 같은 여러 가지 방법으로 개선할 수 있으며, 전략을 더 안정적으로 신뢰할 수 있다. 이 전략은 구현하기 쉽고, 또한 양적 최적화를 쉽게 할 수 있으며, 권장되는 트렌드 추적 전략이다.
/*backtest
start: 2023-08-19 00:00:00
end: 2023-08-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("2-EMA Strategy", overlay=true, initial_capital=100, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)
diffMinimum = input(0.95, step=0.01)
small_ema = input(13, title="Small EMA")
long_ema = input(26, title="Long EMA")
ema1 = ema(close, small_ema)
ema2 = ema(close, long_ema)
orderCondition = ema1 > ema2?((ema1/ema2)*100)-100 > diffMinimum:((ema2/ema1)*100)-100 > diffMinimum
longCondition = close > ema1 and ema1 > ema2
if (longCondition and orderCondition)
strategy.entry("Long", strategy.long)
shortCondition = close < ema1 and ema1 < ema2
if (shortCondition and orderCondition)
strategy.entry("Short", strategy.short)
strategy.close("Short", when=close > ema1)
strategy.close("Long", when=close < ema1)
plot(ema(close, small_ema), title="EMA 1", color=green, transp=0, linewidth=2)
plot(ema(close, long_ema), title="EMA 2", color=orange, transp=0, linewidth=2)