
Стратегия основана на классической системе преобразования рынка в облаке (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")