HMA의 일일 크로스오버 거래 전략

저자:차오장, 날짜: 2023-09-22 17:07:15
태그:

전반적인 설명

이 전략은 HMA 라인 및 일일 촛불 교차에 기반한 거래를 입력하고 스톱 로스 및 영업 로직을 사용하여 포지션을 관리합니다. 트렌드 거래를위한 다른 시간 프레임 지표를 결합합니다.

전략 논리

주요 신호와 규칙:

  • HMA 라인: 중장기 트렌드를 결정하기 위해 Hull 이동 평균을 계산합니다.

  • 매일 폐쇄 가격: 단기 가격 행동을 판단합니다.

  • 엔트리 신호: HMA가 이전 일일 폐쇄보다 높게 통과하고, 가격은 이전 날의 가격보다 높습니다. 짧은 경우 역전됩니다.

  • 스톱 로스/프로피트 취득: 포지션이 타격되면 닫을 수 있는 고정 레벨

장점

  • 적응력을 위한 조절 가능한 HMA 매개 변수

  • 더 높은 품질의 신호를 위해 여러 시간 프레임 지표를 고려합니다.

  • 스톱 로스/프로피트 취득은 리스크 관리를 용이하게 합니다.

  • 명확한 출입 규칙과 위치 관리

  • 백테스트 매개 변수는 다른 시장에 최적화 될 수 있습니다.

위험성

  • HMA 지연은 가장 좋은 출입 시기를 놓칠 수 있습니다.

  • 고정된 스톱 로스/트랙 이윤은 너무 공격적이거나 보수적일 수 있습니다.

  • 트렌드 강도 필터가 없어서 역트렌드 거래가 위험합니다.

  • 간단한 규칙은 잘못된 신호에 취약합니다.

개선 사항:

  1. HMA 매개 변수를 최적화해

  2. 고정된 대신 후속 스톱 손실을 사용하세요.

  3. 트렌드 강도를 판단하기 위해 볼륨 또는 추진력 지표를 추가합니다.

  4. 신호 확인을 위해 MACD와 같은 다른 지표를 포함합니다.

최적화

전략을 최적화할 수 있는 방법:

  1. 이상적인 조합을 위해 HMA 매개 변수를 최적화합니다.

  2. 트렌드 강도 필터를 추가하여 역트렌드를 피합니다.

  3. 고정된 레벨 대신 동적 정지 사용

  4. 자동 매개 변수 최적화를 위해 기계 학습을 통합합니다.

  5. 실제 세계 성능을 테스트하기 위해 시뮬레이션 거래를 추가합니다.

요약

전략 논리는 명확하지만 개선할 여지가 있습니다. 트렌드 필터, 동적 정지 추가로 안정성을 향상시킬 수 있습니다. 전반적으로 중장기 트렌드를 잡는 합리적인 틀을 제공합니다.


/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// created by SeaSide420       Enters on crossovers, exits Basket when profit $ = TP
// strategy(title="HMA & D1 crossover", overlay=true, currency="BTC", initial_capital=1, default_qty_type=strategy.percent_of_equity, default_qty_value=1, commission_type=strategy.commission.percent,commission_value=0.25,slippage=1)
SL=input(defval=-0.05,title="StopLoss $",type=input.float,step=0.01, maxval=-0.01)
TP=input(defval=0.05,title="TargetPoint $",type=input.float,step=0.01, minval=0.01)
price=input(title="Source",type=input.source,defval=open)
Period=input(14, minval=1)
hma = wma(2*wma(price, Period/2)-wma(price, Period), round(sqrt(Period)))
s1=security(syminfo.tickerid, timeframe.period, price, barmerge.gaps_off, barmerge.lookahead_off)
s2=security(syminfo.tickerid, "D", price, barmerge.gaps_off, barmerge.lookahead_off)
cp=s2<price?color.lime:color.red
cp1=plot((s2),color=color.black,title="DailyCandle1",linewidth=2,transp=0)
cp2=plot((s2[1]),color=color.black,title="DailyCandle2",linewidth=2,transp=0)
cp3=plot(hma,title="HMA",color=color.black)
fill(cp1,cp2,color=cp,transp=1)
fill(cp1,cp3,color=cp,transp=75)
closeall=strategy.openprofit<SL or strategy.openprofit>TP
if closeall
    strategy.close_all(comment = "Close All")
if (hma>hma[1] and s1>s2 and s2[1]>s2[2] and s1>s2[1])
    strategy.order("Buy", strategy.long)
if (hma<hma[1] and s1<s2 and s2[1]<s2[2] and s1<s2[1])
    strategy.order("Sell", strategy.short)

더 많은