리소스 로딩... 로딩...

트렌드 다음 전략 Hull 이동 평균 및 진정한 범위에 기초

저자:차오장, 날짜: 2024-01-15 15:26:08
태그:

img

전반적인 설명

이 전략의 핵심 아이디어는 헐 이동 평균과 평균 진정한 범위 (ATR) 를 결합하여 시장 트렌드 방향을 파악하고, 트렌드 방향이 확인된 후 포지션을 입력하는 것입니다. 구체적으로, 특정 기간과 이전 기간의 헐 이동 평균 사이의 차이를 계산합니다. 차이가 상승하면 상승 추세를 나타냅니다. 차이가 감소하면 하락 추세를 나타냅니다. 동시에 ATR 인덱스는 진폭을 결정하는 데 사용됩니다. 트렌드가 확인되고 진폭이 계속 확장되면 포지션을 입력합니다.

전략 논리

이 전략은 주로 두 가지 유형의 지표에 의존합니다. Hull 이동 평균과 ATR.

헐 이동 평균 (Hull moving average) 은 미국의 선물 거래자 앨런 헐 (Alan Hull) 이 개발한 트렌드를 따르는 지표이다. 이동 평균과 비슷하게, 헐 이동 평균은 더 높은 민감성을 가지고 있으며 가격 변화와 추세를 더 빠르게 파악할 수 있다. 전략은 헐 이동 평균의 기간을 제어하기 위해 조정 가능한 매개 변수 hullLength를 설정한다. 현재 기간 Hull MA와 이전 기간 MA 사이의 차이를 계산함으로써, 현재 가격 트렌드 방향을 결정한다.

ATR는 평균 진 범위 (Average True Range) 를 의미합니다. 그것은 매일 가격 변동의 폭을 반영합니다. 변동성이 증가하면 ATR이 상승하고 변동성이 감소하면 ATR이 떨어집니다. 전략은 ATR 계산을 제어하기 위해 atrLength 및 atrSmoothing과 같은 매개 변수를 설정합니다. 그리고 ATR은 항목에 대한 한 참조로 차트에 그려집니다.

구체적으로, 전략 논리는 다음과 같습니다.

  1. 현재 기간 Hull MA (hullLength) 와 이전 기간 Hull MA를 계산합니다.
  2. 이차를 계산합니다: hullDiff = currentHullMA - previousHullMA
  3. hullDiff > 0이면 상승 추세를 나타냅니다. hullDiff < 0이면 하락 추세를 나타냅니다.
  4. 음폭 기준으로 한 기간의 ATR (atrLength) 를 계산합니다.
  5. 올림 추세가 확인되고 ATR > 가격 > atrLength 기간 전의 가격, 긴 갈. 하락과 ATR < 가격 < AtrLength 기간 전의 가격, 짧은 갈.
  6. 디프의 긍정/부작용을 사용하여 근접 신호를 결정합니다.

이점 분석

이 전략의 장점:

  1. 트렌드 판단과 변동성 지수를 결합하여 가격 추세가 명확하고 변동성이 상승할 때 지위를 진입하여 범주 시장에서 휘프사를 피할 수 있습니다.
  2. 헐 MA는 가격 변화에 더 빠르게 반응하고 새로운 트렌드 방향을 빠르게 파악할 수 있습니다.
  3. ATR는 시장 변동성과 열을 반영하여 진입 시기를 안내합니다.
  4. 여러 개의 조절 가능한 매개 변수를 최적화하여 최상의 매개 변수 조합을 얻을 수 있습니다.

위험 분석

이 전략의 몇 가지 위험:

  1. 헬스 MA와 ATR 모두 가짜 탈출을 완전히 피할 수 없으며 함락 될 위험이 있습니다.
  2. 부적절한 매개 변수 설정은 과도한 거래 또는 불충분한 감수성을 초래하여 전략의 효과를 약화시킬 수 있습니다.
  3. 급격한 상승이나 추락과 같은 폭력적인 가격 행동을 효과적으로 처리 할 수 없습니다.

해결책:

  1. 잘못된 탈출에 걸리지 않도록 적절한 스톱 손실을 설정합니다.
  2. 다른 시장 환경에 맞게 매개 변수를 테스트하고 최적화합니다.
  3. 격렬한 변동에 직면했을 때 전략을 중단하십시오.

최적화 방향

여전히 최적화 할 여지가 있습니다.

  1. 현재 시장에 최적의 설정을 찾기 위해 다양한 배체 길이 매개 변수를 테스트합니다.
  2. 시장 열을 가장 잘 파악하기 위해 ATR 기간 조합을 테스트합니다.
  3. 다른 ATR 부드러운 방법을 시도하여 어떤 것이 가장 잘 작동하는지 확인하십시오.
  4. ATR과 결합된 반응과 같은 다른 변동성 지표와 입시 조건을 최적화하십시오.
  5. 스톱 로스를 최적화해서 갇히지 않도록

결론

이 전략은 추세에 따른 함선 MA의 용량과 ATR의 열 판단 능력을 통합합니다. 추세가 확인되고 변동성이 증가하면 일부 유효하지 않은 신호를 필터링하기 위해 포지션을 입력합니다. 파라미터 최적화와 더 나은 위험 관리로 추가 향상이 가능합니다. 요약하면이 전략은 트렌드 추적 및 열 판단의 여러 요인을 결합합니다. 파라미터가 정밀하게 조정되면 좋은 결과를 얻을 수 있습니다.


/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//                                                Hull cross and ATR
strategy("Hull cross and ATR", shorttitle="H&ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Hull Length",defval=50)
length = input(title="ATR Length", defval=50, minval=1)
smoothing = input(title="ATR Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
ma_function(source, length) => 
    if smoothing == "RMA"
        rma(p, length)
    else
        if smoothing == "SMA"
            sma(p, length)
        else
            if smoothing == "EMA"
                ema(p, length)
            else
                wma(p, length)
plot(ma_function(tr(true), length), title = "ATR", color=black, transp=50)
closelong = n1<n2
if (closelong)
    strategy.close("buy")
closeshort = n1>n2
if (closeshort)
    strategy.close("sell")
if (ma_function(tr(true), length)<p and p>p[length] and n1>n2)
    strategy.entry("buy", strategy.long, comment="BUY")
if (ma_function(tr(true), length)>p and p<p[length] and n1<n2)
    strategy.entry("sell", strategy.short, comment="SELL")

더 많은