추세 추종 이중 이동 평균 전략


생성 날짜: 2023-10-25 11:42:23 마지막으로 수정됨: 2023-10-25 11:42:23
복사: 3 클릭수: 875
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

추세 추종 이중 이동 평균 전략

개요

이 전략은 평균 방향 지수 등급 지표 ((ADXR) 를 사용하여 시장 추세를 식별하고, 쌍평선과 결합하여 거래 신호를 형성하며, 전형적인 추세 추적 유형 전략에 속한다. ADXR 지표는 추세의 변화를 효과적으로 식별할 수 있고, 쌍평선은 허위 신호의 일부를 더 필터링 할 수 있다. 이 전략은 주식, 외환 등과 같은 추세성이 강한 시장에 적합하며, 불안정한 상황에서 더 나은 수익을 얻을 수 있다.

전략 원칙

  1. ADXR 지표값을 계산한다. ADX는 평균 방향 지수를 나타내며, 트렌드의 강도를 나타낸다. ADXR은 ADX를 부드럽게 처리하여 트렌드를 더 잘 나타낸다.

  2. ADXR 지표의 쌍값을 설정하여, ADXR 상의 첫 번째값을 넘으면 부어, 하의 두 번째값을 넘으면 하락한다. 이것은 현재 트렌드 상태임을 나타낸다.

  3. ADXR 신호에 따라 포지션 지향을 판단한다. ADXR 상위에서 첫 번째 하락점을 통과하면 더 많이 한다. ADXR 아래에서 두 번째 하락점을 통과하면 공백한다.

  4. 쌍평평선 필터링 신호와 함께. 가격이 빠른 선 위에 있을 때만 더하고, 가격이 느린 선 아래에 있을 때 비어 있다. 이 필터링은 트렌드 반전이 있을 때 잘못된 거래를 피할 수 있다.

  5. K선 색깔을 지점 방향에 따라 그리세요. 초록색으로 더하고 빨간색으로 더하세요.

우위 분석

  1. ADXR 지표는 가격 변화를 평형화하여 트렌드를 효과적으로 식별하고, 불안정한 시장의 조정으로 인한 거래 위험을 피하는 것이 좋습니다.

  2. 이중 평선 필터링은 회귀를 줄이고, 트렌드 반전의 손실을 방지한다.

  3. 트렌드 지표와 쌍평균선과 결합하여, 트렌드에 따라 거래되는 것을 보장하고, 위험을 통제하며, 트렌드 시장에 적합합니다.

  4. 전략은 명확하고 이해하기 쉽고, 매개 변수 설정은 유연하며, 필요에 따라 조정할 수 있으며, 다른 시장 환경에 적합하다.

위험 분석

  1. ADXR 지표 파라미터를 잘못 설정하면 트렌드 전환을 적시에 잡을 수 없습니다. 특정 시장에 따라 ADXR 파라미터를 신중하게 설정해야합니다.

  2. 양평선 변수 설정이 잘못되면 과도한 신호를 필터링하여 거래 기회를 놓치게 될 수 있습니다. 시장에 따라 양평선 변수를 조정해야합니다.

  3. 모든 지표는 잘못된 신호를 보낼 수 있으며, 더 큰 차원의 추세와 함께 검증해야 함에 따라 틀리지 않도록 해야 한다.

  4. 진동 동향에서 지위 규모를 낮추어 손실이 확대되는 것을 막아야 한다.

최적화 방향

  1. ADXR 신호를 MACD, 브린 밴드 등과 결합하여 검증하여 신호의 정확도를 높일 수 있다.

  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")