크로스 타임라인 헐 이동 평균 거래 전략


생성 날짜: 2023-11-07 16:54:14 마지막으로 수정됨: 2023-11-07 16:54:14
복사: 0 클릭수: 697
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

크로스 타임라인 헐 이동 평균 거래 전략

개요

이 전략은 헐 이동 평균 지표에 기초하여, 다른 시간 축에 대한 헐 MA를 계산하고, 다른 시간 축에 대한 헐 MA의 움직임을 비교하여 트렌드의 변화를 발견한다. 짧은 기간 헐 MA에 긴 기간 헐 MA를 통과할 때 구매 신호를 생성한다. 짧은 기간 헐 MA 아래 긴 기간 헐 MA를 통과할 때 판매 신호를 생성한다.

전략 원칙

  1. 입력 매개 변수: Hull MA 주기 Period, HMA2의 시간축 Resolution2, HMA3의 시간축 Resolution3

  2. 현재 K선에서의 Hull MA값 HMA를 계산합니다.

  3. Hull MA값 HMA2를 Resolution2 시간대에서 계산한다

  4. Hull MA값 HMA3를 Resolution3 시간대에 계산한다

  5. HMA, HMA2, HMA3의 크기와 관계 비교

  6. HMA>HMA2>HMA3이 되면, 구매 신호가 생성됩니다.

  7. HMA

  8. 인터페이스 상단 왼쪽에 다양한 시간 축에 대한 Hull MA 값과 신호가 표시됩니다.

  9. 색으로 구분하는 위아래 상태

우위 분석

  1. 여러 시간 축을 사용하여 가짜 돌파구를 필터링하여 함정을 방지할 수 있습니다.

  2. 사용자 정의 시간축 변수, 다른 주기에 적용된다.

  3. 실시간 신호, 직관적인 조작.

  4. Hull MA의 움직임을 시각화하여 현재 트렌드를 판단한다.

위험 분석

  1. 잘못된 매개 변수 설정으로 인해 거래가 너무 빈번하게 이루어질 수 있습니다.

  2. 대주기 Hull MA는 지연성이 있으며, 트렌드 전환점을 놓칠 수 있다.

  3. 이 전략은 황소와 곰이 전환할 때 가짜 신호를 발생시킵니다.

  4. 횡단 전략, 가짜 교도소 침입에 노출될 수 있다.

  5. 거래 수수료가 고려되지 않아 실제 수익에 영향을 미칩니다.

최적화 변수, 다른 지표의 조합으로 필터링, 적절히 느슨한 스톱 라인을 사용하여 위험을 줄일 수 있습니다.

최적화 방향

  1. 헐 MA 사이클 파라미터를 최적화하여 다른 사이클과 변동률에 적응한다.

  2. 트랜스포메이션을 이용해서 트랜스포메이션을 이용해서 트랜스포메이션을 이용해서 트랜스포메이션을 이용해서

  3. 트렌드 강도를 확인하기 위해 지진 지표를 추가하십시오.

  4. 매매 시기를 판단하는 기계 학습 모델을 추가합니다.

  5. 감정 지표와 함께 시장의 핫 포인트를 찾아보세요.

  6. 손해 방지 전략을 조정하고, 위험 관리를 최적화한다.

  7. 구매 및 판매 조건을 사용자 정의하고 다른 지표 신호를 조합합니다.

  8. 가격 채널, 파운드에 기반한 거래 전략을 강화한다.

요약하다

이 전략은 Hull MA 지표가 다른 시간 축에 대한 평균선 움직임을 비교하여 현재의 트렌드 방향을 판단하고, 트렌드가 변할 때 구매 판매 신호를 생성한다. 단일 평균선과 비교하면, 다중 시간 축 Hull MA는 가짜 돌파구를 효과적으로 필터링 할 수 있다. 그러나 이 전략에는 파라미터 설정, 트렌드 판단 등의 문제가 있습니다. 더 많은 지표, 최적화 파라미터 설정, 중지 손실 전략 등을 통합함으로써 전략 프로파티빌리티를 향상시키고 위험을 제어 할 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-10-07 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//
strategy("wtfBUYorSELLffs",overlay=true,currency="USD",initial_capital=100000,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.percent,commission_value=0.1)
Period=input(title="Hull MA Period",type=input.integer,defval=6,minval=1)
Resolution2=input(title="HMA2 Resolution", type=input.resolution,defval="60")
Resolution3=input(title="HMA3 Resolution", type=input.resolution,defval="240")
Price=input(title="Source of Price",type=input.source,defval=open)
xOffset       = input(40, title="Panel offset (X-Axis)")
yOffset       = input(0, title="Panel offset (y-Axis)")
lightgray = #D3D3D3FF
pnlTextColor = color.silver
pnlColor = color.black
HMA = hma(Price,Period)
HMA2 = security(syminfo.tickerid, Resolution2, HMA,barmerge.gaps_off,barmerge.lookahead_off)
HMA3 = security(syminfo.tickerid, Resolution3, HMA,barmerge.gaps_off,barmerge.lookahead_off) 
HUP = HMA > HMA[1]
H1UP = security(syminfo.tickerid, Resolution2, HUP,barmerge.gaps_off,barmerge.lookahead_off)
H2UP = security(syminfo.tickerid, Resolution3, HUP,barmerge.gaps_off,barmerge.lookahead_off) 

int barSize = timeframe.isdaily ? timeframe.multiplier*86400000 : 
           timeframe.isseconds? timeframe.multiplier*1000 :
           timeframe.isminutes? timeframe.multiplier*60000 : (time[0]-time[1])
int   lapos_x = timenow + barSize*xOffset
float lapos_y = highest(20) + yOffset*syminfo.mintick * syminfo.pointvalue
f_draw_infopanel(_x, _y, _line, _text)=>
    _rep_text = ""
    for _l = 0 to _line
        _rep_text := _rep_text + "\n"
    _rep_text := _rep_text + _text
    // var label _la = na
    // label.delete(_la)
//     _la := label.new(
//          x=_x, y=_y, 
//          text=_rep_text, xloc=xloc.bar_time, yloc=yloc.price, 
//          color=pnlColor, style=label.style_labelup, textcolor=pnlTextColor, size=size.normal)
// f_draw_infopanel(lapos_x, lapos_y, 8, "╚═══════════════════════╝")
f_draw_infopanel(lapos_x, lapos_y, 6,  "HMA3 on TF " + Resolution3 + "  = " + tostring(HMA3,"#.####") + (H2UP ? " BUY" : " SELL"))
f_draw_infopanel(lapos_x, lapos_y, 4,  "HMA2 on TF " + Resolution2 + "  = " +  tostring(HMA2,"#.####") + (H1UP ? " BUY" : " SELL"))
f_draw_infopanel(lapos_x, lapos_y, 2,  "HMA1 on TF " + timeframe.period + "  = " + tostring(HMA,"#.####") + (HUP ? " BUY" : " SELL"))
f_draw_infopanel(lapos_x, lapos_y, 0,  "╔═════════ HMA(" + tostring(Period,"#") +") ════════╗")
change_color=HMA>HMA3?color.green:color.red
change_color2=HMA2>HMA3?color.lime:color.yellow
plot1=plot(HMA3,color=change_color2,title="3 Hull MA Line",linewidth=2,transp=75)
plot2=plot(HMA2,color=change_color,title="2 Hull MA Line",linewidth=2,transp=75)
plot3=plot(HMA,color=color.white,title="Hull MA Line",linewidth=2,transp=75)
fill(plot1,plot3,color=change_color,transp=90)
fill(plot2,plot3,color=change_color2,transp=75)
if (H2UP and H1UP and HUP)
    strategy.entry("BUY",strategy.long)
if (not H2UP and not H1UP and not HUP)
    strategy.entry("SELL",strategy.short)