Ичимоку вступает в стратегию

Автор:Чао Чжан, Дата: 2024-01-31 15:23:21
Тэги:

img

Обзор

Ichimoku Entries - это количественная стратегия, которая определяет направление тренда с помощью диаграмм Ichimoku Cloud и генерирует торговые сигналы в сочетании с полосами Боллинджера и индикаторами RSI. Эта стратегия в основном определяет, находится ли рынок в настоящее время в восходящем или нисходящем тренде на основе золотого креста или смертельного креста линии Тенкан и линии Киджун, и, таким образом, производит сигналы входа для длинных и коротких позиций.

Логика стратегии

Основой этой стратегии являются две важные линии диаграммы облаков Ичимоку - линия Тенкан и линия Киджун. Линия Тенкан представляет собой среднее значение наивысшего максимума и наименьшего минимума за последние 9 дней, представляя краткосрочную тенденцию. Линия Киджун представляет собой среднее значение наивысшего максимума и наименьшего минимума за последние 26 дней, представляя среднесрочную и долгосрочную тенденцию. Когда линия Тенкан пересекает линию Киджун, это сигнализирует о входе в длинный курс. Когда линия Тенкан падает ниже линии Киджун, это сигнализирует о входе в короткий курс. Это определяет направление текущего тренда.

В дополнение к облаку Ичимоку, стратегия также рассматривает индикаторы полос Боллинджера и RSI для генерации торговых сигналов. Это считается признаком аномальной ценовой активности, когда цена закрытия прорывается через верхние или нижние полосы Боллинджера.

В логике выхода стратегия проверяет, является ли прорыв Bollinger Bands успешным и пересекает ли осциллятор Trade Proximity 0-ось, чтобы решить вопрос о блокировке прибыли или остановке потерь.

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

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

Анализ рисков

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

Руководство по оптимизации

Стратегия может быть улучшена в следующих аспектах:

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

Заключение

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


/*backtest
start: 2023-01-30 00:00:00
end: 2024-01-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ichi strategy", overlay=true)

// Input parameters
rsiLength = input(14, title="RSI Length")
bbLength = input(20, title="Bollinger Bands Length")
bbMultiplier = input(2, title="Bollinger Bands Multiplier")
stopLossPct = input(1, title="Stop Loss Percentage")
takeProfitPct = input(2, title="Take Profit Percentage")

// Calculate Ichimoku Cloud components
tenkan = ta.sma(high + low, 9) / 2
kijun = ta.sma(high + low, 26) / 2
senkouA = (tenkan + kijun) / 2
senkouB = ta.sma(high + low, 52) / 2

// Bollinger Bands
basis = ta.sma(close, bbLength)
upperBB = basis + bbMultiplier * ta.stdev(close, bbLength)
lowerBB = basis - bbMultiplier * ta.stdev(close, bbLength)

// RSI
rsiValue = ta.rsi(close, rsiLength)

// Trade Proximity Oscillator
length = input(14, title="Channels Length")
multiplier = input(2, title="Channels Multiplier")
atr_length = input(14, title="ATR Length")
threshold_percentage = input(1.5, title="Threshold Percentage (%)")

ma = ta.sma(close, length)
std_dev = ta.stdev(close, length)
upper_band = ma + multiplier * std_dev
lower_band = ma - multiplier * std_dev
distance_upper = close - upper_band
distance_lower = lower_band - close
atr_value = ta.atr(atr_length)
threshold = atr_value * threshold_percentage
oscillator = distance_upper - distance_lower

// Strategy logic
longCondition = close > upperBB and tenkan > kijun and ta.crossover(close, basis) and rsiValue < 70
shortCondition = close < lowerBB and tenkan < kijun and ta.crossunder(close, basis) and rsiValue > 30

strategy.entry("Long", strategy.long, when = longCondition)
strategy.entry("Short", strategy.short, when = shortCondition)

// Exit logic
longExitCondition = close < upperBB and ta.crossover(oscillator, 0)
shortExitCondition = close > lowerBB and ta.crossunder(oscillator, 0)

strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=close - close * stopLossPct / 100, profit=close + close * takeProfitPct / 100, when = longExitCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=close + close * stopLossPct / 100, profit=close - close * takeProfitPct / 100, when = shortExitCondition)

// Plotting
plot(senkouA, color=color.green, title="Senkou A")
plot(senkouB, color=color.red, title="Senkou B")
plot(upperBB, color=color.blue, title="Upper Bollinger Band")
plot(lowerBB, color=color.blue, title="Lower Bollinger Band")

// Additional Plots
plot(tenkan, color=color.orange, title="Tenkan")
plot(kijun, color=color.purple, title="Kijun")



Больше