Shiyun 전환 지표를 기반으로 한 개선된 롱-숏 크로스 트레이딩 전략

ICHIMOKU MA DONCHIAN CROSSOVER TK KUMO
생성 날짜: 2025-02-21 10:41:00 마지막으로 수정됨: 2025-02-21 10:41:00
복사: 1 클릭수: 398
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

Shiyun 전환 지표를 기반으로 한 개선된 롱-숏 크로스 트레이딩 전략 Shiyun 전환 지표를 기반으로 한 개선된 롱-숏 크로스 트레이딩 전략

개요

이 전략은 클래식 시가 클라우드 전환 시스템 (Ichimoku Kinko Hyo) 에 기반한 개선된 버전으로, 전환선과 기준선의 동적 교차로 거래 신호를 식별한다. 이 전략은 전통적인 시가 클라우드 시스템의 기초에 자동 거래 신호의 생성 및 실행 논리를 추가하고, 시장 추세의 가독성을 높이기 위해 시각적 태그와 함께 작동한다.

전략 원칙

전략의 핵심은 시장 클라우드 시스템의 다섯 가지 주요 곡선을 기반으로 합니다: 전환선 ((9주기), 기준선 ((26주기), 선도선 A, 선도선 B ((52주기) 및 후퇴선. 이 중 가장 중요한 거래 신호는 전환선과 기준선의 교차에서 온다. 전환선에서 기준선을 통과 할 때 더 많은 신호가 발생하고, 평준을 통과 할 때 평준을 통과한다. 전략은 동적 唐奇通道를 사용하여 각 라인을 계산하여 최고 가격과 최저 가격의 평균을 취하여 가격 변동을 반영한다.

전략적 이점

  1. 체계화된 트렌드 추적 - 다중 시간 프레임에 대한 지표 조합을 통해 시장의 트렌드를 포괄적으로 포착할 수 있다.
  2. 시각적 직관 - 색상 표기 및 클라우드 그래프를 사용하여 거래 신호를 명확하게 볼 수 있습니다.
  3. 리스크 관리 통합 - 내장된 스톱 손실 메커니즘으로, 시장이 역전될 때 자동으로 청산한다.
  4. 적응력 - 다양한 시장 환경에 적응할 수 있도록 변수를 조정할 수 있습니다.
  5. 신호 안정성 - 위조 신호를 필터링하기 위해 평선 교차를 사용하여 거래 품질을 향상시킵니다.

전략적 위험

  1. 트렌드 반전의 지연 - 이동 평균을 사용했기 때문에 약간의 지연이 있습니다.
  2. 흔들림 시장은 적용되지 않습니다 - 가로 디스크 정리 단계에서 잘못된 신호가 발생할 수 있습니다.
  3. 매개 변수 민감성 - 다른 매개 변수 설정은 전략 성능에 큰 영향을 미칩니다.
  4. 클라우드 그래프의 복잡성 - 여러 라인의 교차로 인해 신호 해석이 어려워질 수 있다.

전략 최적화 방향

  1. 변동율 필터를 도입 - ATR 지표를 추가하여 포지션 크기를 조정할 수 있습니다.
  2. 최적화된 출장 시간 - RSI와 같은 동력 지표와 함께 거래 신호를 확인한다.
  3. 개선된 손해 중지 메커니즘 - 클라우드 그래프 기반의 지지를 기반으로 하는 동적 손해 중지 설정이 가능합니다.
  4. 거래량 확인이 증가 - 신호 생성 시 거래량을 확인하여 신뢰성을 높인다.
  5. 시장 환경 필터를 추가 - 트렌드 강도 지표를 통해 적절한 거래 환경을 선택하십시오.

요약하다

이 전략은 전통적인 시장 클라우드 시스템을 개량하여 완전한 트렌드 추적 거래 시스템을 구축한다. 약간의 지연성이 있음에도 불구하고 신호 필터링과 위험 관리의 최적화를 통해 트렌드 시장에서 안정적인 성능을 얻을 수 있다. 거래자는 실제 시장을 사용할 때, 시장 환경과 개인 위험 선호와 함께 매개 변수를 조정하고 전략 성능을 지속적으로 모니터링 할 것을 권장한다.

전략 소스 코드
/*backtest
start: 2024-02-22 00:00:00
end: 2024-12-16 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6

strategy(title="Ichimoku Cloud with Lables", shorttitle="Ichimoku", overlay=true)
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(26, minval=1, title="Lagging Span")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
plot(conversionLine, color=#2962FF, title="Conversion Line")
plot(baseLine, color=#B71C1C, title="Base Line")





plot(close, offset = -displacement + 1, color=#43A047, title="Lagging Span", display = display.none)
p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
	 title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Upper Line", display = display.none) 
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Lower Line", display = display.none) 
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

if barstate.islast
    label.new(bar_index+5,baseLine,style=label.style_none,xloc=xloc.bar_index,text="Base",color=color.white,textcolor=#B71C1C)
    label.new(bar_index +8, conversionLine,style=label.style_none,xloc=xloc.bar_index,text="Conversion",color=color.white,textcolor=#2962FF)
	label.new(bar_index+(displacement-1)+5,leadLine1,style=label.style_none,xloc=xloc.bar_index,text="Lead1",color=color.white,textcolor=#A5D6A7)
	label.new(bar_index+(displacement-1)+5,leadLine2,style=label.style_none,xloc=xloc.bar_index,text="Lead2",color=color.white,textcolor=#EF9A9A)

// --- TRADING LOGIC ---

// 1) Detect bullish cross (Conversion crosses above Base)
longSignal = ta.crossover(conversionLine, baseLine)

// 2) Detect bearish cross (Conversion crosses below Base)
closeSignal = ta.crossunder(conversionLine, baseLine)

// 3) If bullish cross occurs, open a new long
if longSignal
    strategy.entry("LongTK", strategy.long)

// 4) If bearish cross occurs, close the open long
if closeSignal
    // Closes all orders opened with the ID "LongTK"
    strategy.close("LongTK")