HullMA 비율 범위에 기반한 양상 거래 전략

저자:차오장, 날짜: 2024-03-01 12:16:45
태그:

img

전반적인 설명

이 전략은 Hull 이동 평균과 그 비율 대역을 계산하여 입점 및 스톱 로스 결정을 내리기 위해 양적 거래를 구현합니다. 이의 장점은 조정 가능한 매개 변수, 간단한 구현 및 엄격한 스톱 로스입니다. 그러나 피크를 추구하고 다이프를 죽이는 것과 같은 위험, 빈번한 거래도 있습니다. 스톱 로스 전략에 대한 추가 최적화 및 단기 운영을 추가하면 더 나은 성과를 낼 수 있습니다.

전략 원칙

  1. 선체 이동 평균 선체 크기를 길이 길이로 계산합니다.

  2. 표면 비율 xL1, xL3, xL2, xL4는 배체 크기에 따라

  3. 클로즈가 xL2 또는 xL4 이하로 넘어가면 긴, 클로즈가 xL1, xL2 또는 xL3 이상으로 넘어가면 긴

이점 분석

이점으로는 다음과 같습니다.

  1. 헐마는 가격 변화에 민감하고, 트렌드를 잘 추적합니다.

  2. 이 비율은 다른 제품에 따라 매우 조절이 가능합니다.

  3. 이중 대역 전략은 잘못된 신호를 효과적으로 필터링합니다.

  4. 스톱 로스 전략은 위험을 효과적으로 통제합니다.

위험 분석

몇 가지 위험:

  1. 정상을 쫓고, 을 죽이고

  2. 빈번한 거래로 인한 미끄러짐

  3. 부적절한 매개 변수 조정으로 인해 과잉 거래가 발생합니다.

  4. 스톱 로스 포지션은 반복적으로 최적화되어야 합니다.

최적화 방향

몇 가지 최적화 방향:

  1. 각기 다른 제품들을 위해 hullMA 길이 매개 변수를 최적화합니다.

  2. 잘못된 트레이드를 줄이기 위해 비율 범위를 최적화합니다.

  3. 더 많은 수익을 얻기 위해 단기 거래를 추가합니다.

  4. 효율성을 보장하기 위해 스톱 로스 전략을 최적화하십시오.

  5. 다양한 제품에서 견고성을 테스트합니다.

결론

이 전략은 HullMA와 비율 대역을 사용하여 비교적 간단한 브레이크아웃 거래 시스템을 구축합니다. 명확한 장단점과 매개 변수 및 기능에 대한 추가 최적화와 함께 매우 실용적인 양 전략이 될 수 있습니다.


/*backtest
start: 2023-03-01 00:00:00
end: 2024-02-29 00:00:00
period: 5d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("hullma percentage lines", overlay=true)



length = input(9, minval=1)
src = input(close, title="Source")
hullma = wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(hullma)



Uband1 = input(3, minval=1, step = .5)
Lband1 = input(3, minval=1, step = .5)
Uband2 = input(6, minval=1, step = .5)
Lband2 = input(6, minval=1, step = .5)


v1 = Uband1+100
v2 = 100 - Lband1
v3 = Uband2+100
v4 = 100 - Lband2


xL1 = (hullma / 100) * v1
xL2 = (hullma / 100) * v2 
xL3 = (hullma / 100) * v3
xL4 = (hullma / 100) * v4 


plot(xL1, color=yellow, title="H1")
plot(xL2, color=yellow, title="L1")
plot(xL3, color=yellow, title="H2")
plot(xL4, color=yellow, title="L2")




longCondition1 =  crossover(close, xL4) 
if (longCondition1)  
    strategy.entry("l1", strategy.long)

longCondition2 =  crossover(close, xL2) 
if (longCondition2)  
    strategy.entry("l1", strategy.long)


shortCondition1 = crossover(close, xL1)
if (shortCondition1) 
    strategy.close("l1", strategy.long)
    
shortCondition2 = crossover(close, xL2)
if (shortCondition2) 
    strategy.close("l1", strategy.long)
    
shortCondition3 = crossover(close, xL3)
if (shortCondition3) 
    strategy.close("l1", strategy.long)
    


더 많은