멀티 타임프레임 하이켄 아시 크로스오버 전략

저자:차오장, 날짜: 2023-09-18 21:50:05
태그:

전반적인 설명

이 전략은 세 가지 시간 프레임에 걸쳐 하이켄 아시 촛불을 사용하여 모든 시간 프레임이 상승 또는 하락에 맞춰지면 신호를 생성합니다. 이는 잘못된 신호를 줄이기 위해 여러 시간 프레임을 사용하여 트렌드를 확인하는 것을 목표로합니다.

원칙

하이켄 아시 촛불은 트렌드 식별을 더 쉽게 하기 위해 가격 동작을 부드럽게 함으로써 일반 촛불과 다릅니다.

이 전략은 매일, 주간 및 월간 하이켄 아시 촛불을 사용한다. 세 가지가 모두 상승률에 맞추어 녹색 촛불을 사용하면 긴 신호가 생성된다. 모든 빨간 촛불이 사용되면 짧은 신호가 생성된다.

출입 후 어떤 시간 프레임이 방향을 바꾼다면 종료됩니다.

장점

  1. 다중 시간 프레임 확인은 잘못된 신호를 줄이고 안정성을 향상시킵니다.

  2. 하이켄 아시는 트렌드를 식별하기 위해 소음을 부드럽게 합니다.

  3. 간단하고 적용하기 쉬운 규칙입니다.

  4. 유연한 시간 프레임, 다양한 제품에 적응할 수 있습니다.

  5. 매개 변수 최적화가 필요없고 사용하기 쉽습니다.

위험 및 완화

  1. 엄격한 조건은 기회를 놓칠 수도 있고 조건 요구사항을 완화시킬 수도 있습니다.

  2. 하이켄 아시 지연이 남아서 신호를 지연시킬 수 있습니다.

  3. 스톱 손실이 없습니다. 위험을 통제할 수 없습니다. 이동 스톱 손실을 추가 할 수 있습니다.

  4. 고정된 위험 보상은 유연성이 부족합니다. 동적 중지를 구현할 수 있습니다.

  5. 단지 지표로 잘못된 신호를 받을 수 있습니다. 가격-용량 확인을 추가할 수 있습니다.

더 나은 기회

  1. 15m 또는 60m 같은 추가 시간 프레임을 테스트합니다.

  2. 감수성을 위해 하이켄 아시 매개 변수를 최적화해

  3. 위험 조절을 위해 이동 스톱 손실을 추가합니다.

  4. 시장 구조 지표를 포함하여 범위가 없도록하십시오.

  5. 재입국 조건을 개발하여 보유 기간을 연장합니다.

요약

이 전략은 트렌드를 따르는 시간 프레임에 걸쳐 하이켄 아시를 활용하지만, 지표 전용 설계는 잘못된 신호에 취약하다. 추가 지표, 정지, 매개 변수 최적화를 통해 개선이 가능하여 더 신뢰할 수 있다. 전반적으로 다 시간 프레임 확인은 유용한 개념이다.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_5",true]]
*/

//@version=4
strategy("Heiken Ashi MTF Strategy")
ha_t = heikinashi(syminfo.tickerid)

res = input('D', title="TM 1")
ha_open = security(ha_t, res, open)
ha_close = security(ha_t, res, close)
ha_dif = ha_open-ha_close
ha_diff=iff(ha_dif > 0, 1, iff(ha_dif<0, 2, 3))

res2 = input('W', title="TM 2")
ha_open2 = security(ha_t, res2, open)
ha_close2 = security(ha_t, res2, close)
ha_dif2 = ha_open2-ha_close2
ha_diff2=iff(ha_dif2 > 0, 1, iff(ha_dif2<0, 2, 3))

res3 = input('M', title="TM 3")
ha_open3 = security(ha_t, res3, open)
ha_close3 = security(ha_t, res3, close)
ha_dif3 = ha_open3-ha_close3
ha_diff3=iff(ha_dif3 > 0, 1, iff(ha_dif3<0, 2, 3))

plot(15, title="TF1", color=iff(ha_diff==1, color.red, iff(ha_diff==2, color.green, color.white)), style=plot.style_circles, linewidth=5, join=true)
plot(14, title="TF2", color=iff(ha_diff2==1, color.red, iff(ha_diff2==2, color.green, color.white)), style=plot.style_circles, linewidth=5, join=true)
plot(13, title="TF3", color=iff(ha_diff3==1, color.red, iff(ha_diff3==2, color.green, color.white)), style=plot.style_circles, linewidth=5, join=true)


short = ha_diff ==1 and ha_diff2==1 and ha_diff3 ==1
long = ha_diff ==2 and ha_diff2==2 and ha_diff3 ==2

exitlong = ha_diff ==1 or ha_diff2==1 or ha_diff3 ==1
exitshort = ha_diff ==2 or ha_diff2==2 or ha_diff3 ==2

longA = input(true)
shortA = input(false)

if(longA)
    strategy.entry("long",1,when=long)
    strategy.close("long",when=exitlong)
if(shortA)
    strategy.entry("short",0,when=short)
    strategy.close("short",when=exitshort)

더 많은