이중 이동 평균 전략에 따른 경향

저자:차오장, 날짜: 2023-10-25 11:42:23
태그:

img

전반적인 설명

이 전략은 시장 트렌드를 식별하기 위해 평균 방향 움직임 지수 평가 (ADXR) 를 사용하며 트레이딩 신호를 생성하기 위해 이중 이동 평균을 결합합니다. ADXR 지표는 트렌드의 변화를 효과적으로 식별 할 수 있으며 이중 이동 평균은 일부 잘못된 신호를 추가로 필터링 할 수 있습니다. 이 전략은 주식 및 외환과 같은 트렌딩 시장에 적합하며 범위 제한 시장에서 더 나은 수익을 얻을 수 있습니다.

전략 논리

  1. ADXR 지표 값을 계산합니다. ADX는 트렌드의 강도를 반영합니다. ADXR은 ADX를 부드럽게하고 트렌드를 더 잘 표시합니다.

  2. ADXR 지표에 대해 두 개의 임계값을 설정하십시오. ADXR이 첫 번째 임계값을 넘으면 상승 추세를 나타냅니다. 두 번째 임계값을 넘으면 하락 추세를 나타냅니다.

  3. ADXR 신호를 기반으로 위치 방향을 결정합니다. ADXR이 첫 번째 임계값을 넘으면 장거리, 두 번째 임계값을 넘으면 단거리.

  4. 이중 이동 평균을 통해 신호를 필터합니다. 가격이 빠른 MA보다 높을 때만 길게 이동하고 가격이 느린 MA보다 낮을 때만 짧게 이동합니다. 이러한 필터링은 트렌드 역전 중에 잘못된 거래를 피합니다.

  5. 위치 방향에 따라 촛불을 색칠합니다. 긴 포지션은 녹색이고 짧은 포지션은 빨간색입니다.

이점 분석

  1. ADXR은 가격 변동을 완화하고 트렌드를 효과적으로 식별하여 다양한 시장에서 거래 위험을 피합니다.

  2. 이중 이동 평균 필터링은 트렌드 역전으로 인한 손실을 피함으로써 마감량을 줄입니다.

  3. 트렌드 지표와 이동 평균을 결합하면 트렌드를 따라 거래하면서 트렌드 시장에 적합한 위험을 제어 할 수 있습니다.

  4. 전략 논리는 다른 시장 환경에 대한 매개 변수 조정에 간단하고 유연합니다.

위험 분석

  1. 부적절한 ADXR 매개 변수는 트렌드 변화를 적시에 파악하지 못할 수 있습니다. 매개 변수는 특정 시장에 따라 신중하게 설정해야합니다.

  2. 부적절한 이동 평균 매개 변수는 유효한 신호를 너무 많이 필터 할 수 있습니다. 매개 변수는 시장 조건에 따라 조정해야합니다.

  3. 모든 지표는 잘못된 신호를 줄 수 있습니다. 함정을 피하기 위해 더 큰 시간 프레임 트렌드를 고려해야합니다.

  4. 손실을 제한하기 위해 다양한 시장에서 포지션 크기를 줄이세요.

최적화 방향

  1. MACD 및 볼링거 밴드와 같은 다른 지표는 ADXR 신호를 확인하고 정확도를 향상시키기 위해 추가 될 수 있습니다.

  2. 트레이일링 스톱과 타임 스톱과 같은 스톱 손실 전략은 거래 당 손실 제한에 추가 될 수 있습니다.

  3. 시장 효율을 기반으로 한 매개 변수를 최적화합니다. 저효율 시장의 평균 기간이 길어지는 것과 같은 것입니다.

  4. 전체 위험을 더 잘 제어하기 위해 고정 분자 위치 사이즈링과 같은 돈 관리 전략을 포함합니다.

결론

이 전략은 ADXR를 사용하여 트렌드 방향을 결정하고 이중 이동 평균을 사용하여 드라우다운을 줄이는 전형적인 트렌드 다음 전략입니다. 이 전략의 장점은 다른 시장에 적응 할 수있는 단순성과 유연성에 있습니다. 그러나 모든 기술적 인 지표가 잘못된 신호를 줄 수 있으며 트렌드 필터와 돈 관리로 위험을 관리해야합니다. 적절한 매개 변수 조정으로이 전략은 트렌딩 시장에 대한 좋은 위험 조정 수익을 얻을 수 있습니다.


/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/05/2018
// The Average Directional Movement Index Rating (ADXR) measures the strength 
// of the Average Directional Movement Index (ADX). It's calculated by taking 
// the average of the current ADX and the ADX from one time period before 
// (time periods can vary, but the most typical period used is 14 days).
// Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening 
// and weakening trends. However, because it represents an average of ADX, values 
// don't fluctuate as dramatically and some analysts believe the indicator helps 
// better display trends in volatile markets.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

strategy(title="Average Directional Movement Index Rating Backtest", shorttitle="ADXR")
LengthADX = input(title="Length ADX", defval=14)
LengthADXR = input(title="Length ADXR", defval=14)
reverse = input(false, title="Trade reverse")
Signal1 = input(13, step=0.01)
Signal2 = input(45, step=0.01)
hline(Signal1, color=green, linestyle=line)
hline(Signal2, color=red, linestyle=line)
xADX = fADX(LengthADX)
xADXR = (xADX + xADX[LengthADXR]) / 2
pos = iff(xADXR < Signal1, 1,
       iff(xADXR > Signal2, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xADXR, color=green, title="ADXR")

더 많은