
이 전략은 클래식 시가 클라우드 전환 시스템 (Ichimoku Kinko Hyo) 에 기반한 개선된 버전으로, 전환선과 기준선의 동적 교차로 거래 신호를 식별한다. 이 전략은 전통적인 시가 클라우드 시스템의 기초에 자동 거래 신호의 생성 및 실행 논리를 추가하고, 시장 추세의 가독성을 높이기 위해 시각적 태그와 함께 작동한다.
전략의 핵심은 시장 클라우드 시스템의 다섯 가지 주요 곡선을 기반으로 합니다: 전환선 ((9주기), 기준선 ((26주기), 선도선 A, 선도선 B ((52주기) 및 후퇴선. 이 중 가장 중요한 거래 신호는 전환선과 기준선의 교차에서 온다. 전환선에서 기준선을 통과 할 때 더 많은 신호가 발생하고, 평준을 통과 할 때 평준을 통과한다. 전략은 동적 唐奇通道를 사용하여 각 라인을 계산하여 최고 가격과 최저 가격의 평균을 취하여 가격 변동을 반영한다.
이 전략은 전통적인 시장 클라우드 시스템을 개량하여 완전한 트렌드 추적 거래 시스템을 구축한다. 약간의 지연성이 있음에도 불구하고 신호 필터링과 위험 관리의 최적화를 통해 트렌드 시장에서 안정적인 성능을 얻을 수 있다. 거래자는 실제 시장을 사용할 때, 시장 환경과 개인 위험 선호와 함께 매개 변수를 조정하고 전략 성능을 지속적으로 모니터링 할 것을 권장한다.
/*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")