이 전략은 Hull 이동 평균과 그 비율 대역을 계산하여 입점 및 스톱 로스 결정을 내리기 위해 양적 거래를 구현합니다. 이의 장점은 조정 가능한 매개 변수, 간단한 구현 및 엄격한 스톱 로스입니다. 그러나 피크를 추구하고 다이프를 죽이는 것과 같은 위험, 빈번한 거래도 있습니다. 스톱 로스 전략에 대한 추가 최적화 및 단기 운영을 추가하면 더 나은 성과를 낼 수 있습니다.
선체 이동 평균 선체 크기를 길이 길이로 계산합니다.
표면 비율 xL1, xL3, xL2, xL4는 배체 크기에 따라
클로즈가 xL2 또는 xL4 이하로 넘어가면 긴, 클로즈가 xL1, xL2 또는 xL3 이상으로 넘어가면 긴
이점으로는 다음과 같습니다.
헐마는 가격 변화에 민감하고, 트렌드를 잘 추적합니다.
이 비율은 다른 제품에 따라 매우 조절이 가능합니다.
이중 대역 전략은 잘못된 신호를 효과적으로 필터링합니다.
스톱 로스 전략은 위험을 효과적으로 통제합니다.
몇 가지 위험:
정상을 쫓고,
빈번한 거래로 인한 미끄러짐
부적절한 매개 변수 조정으로 인해 과잉 거래가 발생합니다.
스톱 로스 포지션은 반복적으로 최적화되어야 합니다.
몇 가지 최적화 방향:
각기 다른 제품들을 위해 hullMA 길이 매개 변수를 최적화합니다.
잘못된 트레이드를 줄이기 위해 비율 범위를 최적화합니다.
더 많은 수익을 얻기 위해 단기 거래를 추가합니다.
효율성을 보장하기 위해 스톱 로스 전략을 최적화하십시오.
다양한 제품에서 견고성을 테스트합니다.
이 전략은 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)