전략에 따른 배조 이동 평균 트렌드

저자:차오장, 날짜: 2023-11-02 14:57:37
태그:

img

전반적인 설명

이 전략은 트레이딩 시스템을 따라 트렌드를 구성하기 위해 헐 이동 평균 지표에 기반합니다. 헐 곡선의 방향에 따라 길게 또는 짧게 가기로 결정하여 전형적인 트렌드 추격 전략입니다.

전략 논리

이 전략은 헐 이동 평균을 주요 기술 지표로 사용합니다. 헐 이동 평균은 2005년 미국 상인 앨런 헐에 의해 제안되었습니다. 그것은 지연을 줄이기 위해 제곱근 함수를 사용하여 이동 평균을 개선합니다.

특히, 헐 이동 평균은 두 개의 평균을 포함하고 있다. 하나는 n 기간의 이동 평균 MA (n), 다른 하나는 n 기간의 이동 평균 MA (n/2) 이다. 두 이동 평균 사이의 차이는 헐 차이 곡선을 형성한다. 헐 차이 곡선의 이동 평균을 취하면 헐 곡선이 된다.

헐 곡선이 위쪽으로 기울어지면, 짧은 기간 이동 평균은 긴 기간 1의 위를 가로질러 긴 신호를 제공합니다. 헐 곡선이 아래로 기울어지면, 짧은 MA는 긴 MA 아래를 가로질러 짧은 신호를 제공합니다.

이 전략은 헐 곡선의 기간 n을 16로 설정하고, 8주기 MA (n/2=8), 16주기 MA, 그리고 그 사이의 차이를 계산하여 헐 곡선을 얻는다. 그 다음 헐 곡선 자체의 4주기 MA (n=4의 제곱근) 를 취한다. 헐 곡선이 위로 넘어가면 길게 간다. 헐 곡선이 아래로 넘어가면 짧게 간다.

이점 분석

일반 이동 평균에 비해 Hull 이동 평균은 다음과 같은 장점을 가지고 있습니다.

  1. 지연을 줄입니다. 제곱근 함수를 사용함으로써, 헐 곡선은 가격 동작을 더 가까이 포옹하고 트렌드 반전을 더 빨리 포착합니다.

  2. 가짜 크로스를 줄여줍니다. 전통적인 MAs는 더 많은 가짜 크로스를 생성하는 경향이 있습니다. 헬 곡선은 약간의 소음을 필터링하고 불필요한 거래를 피할 수 있습니다.

  3. 더 적은 매개 변수. 헐 곡선은 하나의 매개 변수 n만을 필요로 하며 최적화를 더 쉽게 한다. 듀얼-MA 시스템은 두 개의 매개 변수를 최적화해야 한다.

  4. 사용자 정의 할 수 있습니다. 헐 곡선의 n 값은 다른 시장에 맞게 조정되고 다른 도구에 맞게 사용자 정의 할 수 있습니다.

  5. 체계적. 허크 시스템은 견고하며 기계적 거래 시스템의 일관성을 준수하여 수동 선택을 피합니다.

위험 분석

유동 평균 시스템보다 이점이 있음에도 불구하고, Hull 시스템은 여전히 다음과 같은 위험을 안고 있습니다.

  1. 트렌드를 따라가는 것의 한계. 트렌드를 추격하는 전략으로서, 헐 시스템은 급격한 트렌드 변화 때 멈출 경향이 있습니다.

  2. 과잉 거래의 잠재력. 헐 곡선의 빠른 반응은 거래 빈도를 증가시키고 과잉 거래로 이어질 수 있습니다.

  3. 파라미터의 과잉 최적화. 하나의 파라미터 n만 있으면 과잉 최적화로 인한 곡선 적합 위험으로 이어질 수 있습니다.

  4. 기기마다 효과는 다양합니다. 헬 시스템은 높은 변동성을 가진 기기에서 덜 잘 작동합니다. 매개 변수를 그에 따라 조정해야합니다.

개선 방향

위의 한계를 바탕으로, 헐의 이동 평균 전략은 다음과 같은 측면에서 개선될 수 있습니다.

  1. 잘못된 교차를 피하기 위해 추가 지표와 필터를 추가하십시오. MACD, KD 등은 추세를 측정하는 데 도움이 될 수 있습니다.

  2. 단일 거래 손실을 통제하기 위해 스톱 로스 전략을 추가하십시오. 예를 들어 트레일링 스톱 또는 수익 스톱을 사용하십시오.

  3. 과도한 최적화를 방지하기 위해 매개 변수 n 선택을 최적화한다. 워크 포워드 분석은 롤링 최적화를 위해 사용될 수 있다.

  4. RNN 같은 기계 학습 모델을 사용하여 파라미터 값을 동적으로 최적화합니다.

  5. 기계 학습 부착을 사용하여 서로 다른 도구에 대해 매개 변수를 개별적으로 최적화합니다.

  6. 거래 빈도를 낮추기 위해 포지션 크기를 최적화하십시오. 고정 분수 포지션 크기는 도움이 될 수 있습니다.

결론

헐 이동 평균 전략은 트렌드를 따르는 전형적인 전략입니다. MAs에 대한 장점에도 불구하고 과잉 최적화 및 과잉 거래와 같은 문제에 직면하고 있습니다. 우리는 매개 변수 최적화, 손실 중지, 포지션 사이징 등을 통해 전략을 개선 할 수 있습니다. 헐 시스템은 간단하고 실용적입니다. 강력한 거래 시스템을 구축하기 위해 더 많은 지표와 기술을 통합하여 추가 연구와 향상되어야합니다.


/*backtest
start: 2023-10-25 00:00:00
end: 2023-11-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's HullMA Strategy", shorttitle = "HullMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
n = input(title = "HullMA period", defval=16)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//HullMA
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)
    
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if n1 > n2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if n1 < n2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if true
    strategy.close_all()

더 많은