ATR, EOM 및 VORTEX에 기반한 장기 트렌드 전략

저자:차오장, 날짜: 2024-02-18 16:01:07
태그:

img

전반적인 설명

이 전략은 주식 및 암호화폐 시장의 장기 트렌드 전략입니다. 트렌드 방향을 식별하기 위해 세 가지 지표 - ATR (평균 진정한 범위), EOM (운동의 편리함) 및 VORTEX를 결합합니다.

전략 논리

  • ATR는 시장 변동성을 측정합니다. 여기서 우리는 10 기간 ATR을 계산하고 5 기간 EMA로 평평합니다. 현재 ATR이 ATR의 EMA보다 높다면 높은 변동성과 황소 시장을 나타냅니다. 그렇지 않으면 곰 시장입니다.

  • EOM는 볼륨 가격 지표에 속합니다. 여기서 우리는 10 기간 EOM을 계산합니다. 만약 EOM이 긍정적이라면 거래량이 증가하고 황소 시장이 있음을 나타냅니다. 그렇지 않으면 곰 시장입니다.

  • VORTEX는 장기적인 트렌드 방향을 판단하는 소용돌이 지표를 나타냅니다. 우리는 VMP와 VMM을 얻기 위해 지난 10 기간 동안의 절대 가격 변동의 합을 계산합니다. 그런 다음 ATR의 합을 지명자로 사용하여 정상화하고 VIP와 VIM을 얻습니다. 평균을 계산하십시오. 1보다 크면 황소 시장을 제안하고 1보다 작으면 곰 시장을 제안합니다.

요약하자면 이 전략은 ATR/EMAATR을 단기 변동성, EOM을 양량 가격 특징과 VORTEX을 장기 트렌드를 결합하여 최종 장기 방향만을 결정합니다.

이점 분석

  • 이 전략은 변동성, 부피 가격 및 트렌드를 포함한 세 가지 주요 유형의 지표를 합성하여 포괄적인 판단과 강력한 신호로 트렌드 방향을 식별합니다.

  • ATR과 VORTEX 모두 범위 시장의 소음을 필터링하고 잘못된 긴 신호를 피하기 위해 평평화 기능을 가지고 있습니다.

  • 단기 인하로 인한 위험을 최대한 피할 수 있는 것은 단기 인하가 없는 단기뿐입니다.

  • 트렌드를 따르는 전략으로서 중장기 방향의 기회와 주요 트렌드로부터의 이익을 포착하는 데 초점을 맞추고 있습니다.

위험 분석

  • 실제 거래 성과와 매개 변수를 더 이상 최적화하고 테스트해야 하는 검증과 함께 백테스트 데이터가 충분하지 않습니다.

  • 역전이나 범위 제한 시장에서 수익 기회를 찾지 못해 수익 잠재력을 제한합니다.

  • 순수한 트렌드 전략은 특정 자본 잠금 위험과 함께 포지션 리스크를 효과적으로 제어 할 수 없습니다.

  • 더 큰 손실 공간으로 헤딩을 위해 단축 할 수 없습니다.

최적화 방향

  • ATR와 VORTEX에 대한 다른 기간의 테스트 안정성

  • 스톱 손실 방법을 도입하려고 노력하십시오. 예를 들어 이동 스톱 손실, 단일 손실을 제어하기 위해 시간 스톱 손실.

  • 높은 변동성 환경에서의 위험을 줄이기 위해 ATR 값에 기초한 포지션 크기를 설정합니다.

  • 평균 역행 요인을 포함하여 입시 시기를 확인하고 불필요한 자본 잠금을 피합니다.

결론

이 장기 트렌드 다음 전략은 세 가지 범주에 걸쳐 ATR, EOM 및 VORTEX의 확인에 기초하여 입력되며 주요 트렌드로부터 이익을 얻기 위해 단숨에 오래 가지 않습니다. 포괄적 인 판단과 명확한 신호의 장점이 있지만 데이터 검증 부족, 약한 위험 제어 기능의 단점이 있습니다. 향후 개선은 스톱 로스 도입, 매개 변수 설정 최적화 및 위치 사이징과 같은 분야에서 이루어질 수 있습니다.


/*backtest
start: 2023-02-11 00:00:00
end: 2024-02-17 00:00:00
period: 1d
basePeriod: 1h
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/
// © SoftKill21

//@version=4
strategy("atr+eom+vortex strat", overlay=true )

//atr and ema
atr_lenght=input(10)
atrvalue = atr(atr_lenght)


//plot(atrvalue)
ema_atr_length=input(5)
ema_atr = ema(atrvalue,ema_atr_length)

//plot(ema_atr,color=color.white)

//EOM and ema
lengthEOM = input(10, minval=1)
div = 10//input(10000, title="Divisor", minval=1)
eom = sma(div * change(hl2) * (high - low) / volume, lengthEOM)
// + - 0 long/short

//VORTEX
period_ = input(10, title="Length", minval=2)
VMP = sum( abs( high - low[1]), period_ )
VMM = sum( abs( low - high[1]), period_ )
STR = sum( atr(1), period_ )
VIP = VMP / STR
VIM = VMM / STR
avg_vortex=(VIP+VIM)/2
//plot(avg_vortex)

long= atrvalue > ema_atr and eom > 0 and avg_vortex>1 
short=atrvalue < ema_atr and eom < 0 and avg_vortex<1 

strategy.entry("long",1,when=long)
//strategy.entry("short",0,when=short)

strategy.close("long",when=short)

더 많은