Стратегия следования тренду Ichimoku Kinko Hyo


Дата создания: 2024-02-27 16:41:02 Последнее изменение: 2024-02-27 16:41:02
Копировать: 0 Количество просмотров: 625
1
Подписаться
1617
Подписчики

Стратегия следования тренду Ichimoku Kinko Hyo

Обзор

Стратегия отслеживания трендов на горизонтальном графике (Ichimoku Cloud Trend Following Strategy) - это стратегия технического анализа, которая использует пять линий индикатора на горизонтальном графике для определения направления тенденции рынка, поддержки сопротивления и времени входа в рынок.

Принципы

Основные направления стратегии включают в себя:

  1. Переходящая линия: среднее значение высоких и низких значений за последние 9 дней, отражающее краткосрочную тенденцию.
  2. Базовые линии: средние значения высоких и низких значений за последние 26 дней, отражающие среднесрочные и долгосрочные тенденции.
  3. Ведущая линия A: среднее значение переходной линии по сравнению с базовой линией, смещение на 26 дней, для определения промежуточной поддержки и сопротивления
  4. Линия B: среднее значение последних 52-дневных максимумов и минимумов, смещение на 26 дней для определения долгосрочной поддержки и сопротивления.
  5. Случайная линия: цена сдвинулась на 26 день, отражая динамику тренда.

Когда переходная линия пересекает базисную линию, это сигнал покупки; переходная линия - сигнал продажи. При движении линия находится над ценой, а цвет облака - зеленый для многоголовной тенденции, в противном случае - пустой.

Стратегия определяет направление тренда в зависимости от отношения конверсионной линии и базовой линии. Например, конверсионная линия, прорывающаяся вверх по базовой линии, определяется как многоголовый вход, в то время как сигнал к покупке создается, если выполняется условие, что произвольная линия выше цены.

Стоп или стоп-стоп устанавливается в зависимости от предыдущей линии A или базовой линии. Если выбрать базовую линию стоп, то при падении цены на базовую линию, она будет закрыта.

Анализ преимуществ

Эта стратегия имеет следующие преимущества:

  1. Повышенная точность с использованием комплекса многомерных суждений.
  2. Первая линия может предсказать поддержку и сопротивление.
  3. Исключительно для проверки динамики тренда и предотвращения ложных прорывов.
  4. Базовые линии, используемые в качестве индикатора среднесрочных и долгосрочных тенденций, могут снизить уровень шума торговли.

Риск и оптимизация

Основная опасность этой стратегии заключается в том, что она может создавать ложные сигналы.

  1. Настройка параметров среднего цикла, оптимизация чувствительности индикатора.
  2. Добавить другие индикаторы или графические фильтры, такие как MACD, Brinband.
  3. Снижение частоты торгов, отслеживание средне-длинных трендов.

Подвести итог

Стратегия сбалансированной диаграммы на первый взгляд включает в себя множество показателей для определения движения рынка, учитывает как краткосрочную динамику, так и уделяет особое внимание среднесрочным тенденциям. Отношение конверсионной линии к базовой линии определяет время покупки и продажи на рынке, а базовая линия используется в качестве стоп-лосс для блокировки прибыли и эффективного контроля риска.

Исходный код стратегии
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Ichimoku Cloud - BitBell", shorttitle="Ichimoku Cloud - BitBell", 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)
leadLine1bbbbb = math.avg(conversionLine, baseLine)[displacement - 1]
plot(leadLine1bbbbb)
leadLine2 = donchian(laggingSpan2Periods)
leadLine2bbbbbb = donchian(laggingSpan2Periods)[displacement - 1]
plot(leadLine2bbbbbb)

support = leadLine1bbbbb > leadLine2bbbbbb
Resistance = leadLine1bbbbb < leadLine2bbbbbb


TrailStop = input.string(title='Choose Trail Line', options=["ConversionLine", "BaseLine"], defval="ConversionLine")





var stopLong = 0.0
var stopShort = 0.0
var TagetLong = 0.0
var TargetShort = 0.0


if close > leadLine1bbbbb and close > leadLine2bbbbbb and conversionLine[1] <= baseLine[1] and conversionLine > baseLine and close > conversionLine and support
	strategy.entry("Long",strategy.long)
	stopLong := conversionLine
// if close < stopLong and strategy.position_size > 0 
// 	strategy.close("Long")
// 	stopLong := 0.0
if (close < conversionLine and strategy.position_size > 0) and (TrailStop == 'ConversionLine')
	strategy.close("Long")
	stopLong := 0.0
if (close < baseLine and strategy.position_size > 0) and (TrailStop == 'BaseLine')
	strategy.close("Long")
	stopLong := 0.0

if close < leadLine1bbbbb and close < leadLine2bbbbbb and conversionLine[1] >= baseLine[1] and conversionLine < baseLine and close < conversionLine and Resistance
	strategy.entry("Short",strategy.short)
	stopShort := conversionLine
// if close > stopShort and strategy.position_size < 0 
// 	strategy.close("Short")
// 	stopShort := 0.0
if (close > conversionLine and strategy.position_size < 0) and (TrailStop == 'ConversionLine')
	strategy.close("Short")
	stopShort := 0.0
if (close > baseLine and strategy.position_size < 0) and (TrailStop == 'BaseLine')
	strategy.close("Short")
	stopShort := 0.0
// if close >= 1.0006 * strategy.position_avg_price and strategy.position_size > 0 
// 	strategy.close("Long")
// 	stopLong := 0.0
plot(conversionLine, color=#2962FF, title="Conversion Line")
plot(baseLine, color=#B71C1C, title="Base Line")
plot(close, offset = -displacement + 1, color=#43A047, title="Lagging Span")
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))