3개 시간 프레임 평활화 이동 평균 수렴/발산 교차 전략


생성 날짜: 2023-09-18 21:50:05 마지막으로 수정됨: 2023-09-18 21:50:05
복사: 0 클릭수: 1152
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

이 전략은 3개의 시간주기의 평평한 동시계 평균 지표에 기초하여, 다른 주기적 지표가 동시계로 부진하거나 하락할 때 거래 신호를 생성한다. 목적은 여러 시간 프레임의 트렌드 확인을 이용하여 가짜 신호의 가능성을 줄이는 것이다.

원칙

평평한 이질적 평균 ((Heiken Ashi) 지표는 일반 K선과 달리, 가격 곡선을 평평하게 계산하여 트렌드를 더 정확하게 식별한다.

이 전략은 태양선, 주경선, 달선 세 시간 주기 평평한 이질 평균 지표를 사용합니다. 세 가지 동방향 상향, 즉 모든 시간 주기 토크 라인이 녹색으로 나타나면 구매 신호를 생성합니다. 세 가지 동방향 하향, 즉 토크 라인이 모두 빨간색으로 나타나면 판매 신호를 생성합니다.

진입 후, 임의의 시간 주기 평평한 동위원 평균으로 전환할 때, 평소 위치 신호를 생성한다.

장점

  1. 다중 시간 프레임 검증은 가짜 신호를 줄이고 안정성을 향상시킵니다.

  2. 평평한 비정형 평균 지표는 트렌드를 식별하고, 소음을 줄일 수 있다.

  3. 규칙은 간단하고 명확하며 실행하기 쉽습니다.

  4. 다양한 품종에 맞는 유연한 선택 시간 주기 조합.

  5. 하지만, 이 작업은 매우 간단합니다.

위험과 해결책

  1. 다중 조건 제한, 거래 기회를 놓칠 수 있다. 조건 제한을 낮출 수 있다.

  2. 평평한 비동기 평균 지연 문제는 여전히 존재하며, 신호를 지연시킬 수 있다. 다른 지표와 함께 최적화할 수 있다.

  3. 스톱로스가 설정되지 않아 위험을 통제할 수 없습니다. 모바일 스톱로스 전략에 참여할 수 있습니다.

  4. 이윤/손실 비율이 고정되어 있고, 유연성이 부족하다. 동적 중지/손실 중지 설정이 가능하다.

  5. 지표만으로도 잘못된 신호를 발생시킬 수 있다.

더 나은 생각

  1. 테스트는 15분 또는 60분처럼 더 많은 시간 프레임을 추가합니다.

  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)