Ichimoku Entries - это количественная стратегия, которая определяет направление тренда с помощью диаграмм Ichimoku Cloud и генерирует торговые сигналы в сочетании с полосами Боллинджера и индикаторами RSI. Эта стратегия в основном определяет, находится ли рынок в настоящее время в восходящем или нисходящем тренде на основе золотого креста или смертельного креста линии Тенкан и линии Киджун, и, таким образом, производит сигналы входа для длинных и коротких позиций.
Основой этой стратегии являются две важные линии диаграммы облаков Ичимоку - линия Тенкан и линия Киджун. Линия Тенкан представляет собой среднее значение наивысшего максимума и наименьшего минимума за последние 9 дней, представляя краткосрочную тенденцию. Линия Киджун представляет собой среднее значение наивысшего максимума и наименьшего минимума за последние 26 дней, представляя среднесрочную и долгосрочную тенденцию. Когда линия Тенкан пересекает линию Киджун, это сигнализирует о входе в длинный курс. Когда линия Тенкан падает ниже линии Киджун, это сигнализирует о входе в короткий курс. Это определяет направление текущего тренда.
В дополнение к облаку Ичимоку, стратегия также рассматривает индикаторы полос Боллинджера и RSI для генерации торговых сигналов. Это считается признаком аномальной ценовой активности, когда цена закрытия прорывается через верхние или нижние полосы Боллинджера.
В логике выхода стратегия проверяет, является ли прорыв Bollinger Bands успешным и пересекает ли осциллятор Trade Proximity 0-ось, чтобы решить вопрос о блокировке прибыли или остановке потерь.
Наибольшее преимущество этой стратегии заключается в том, что она сочетает в себе определение тренда и аномальные колебания цен для определения направления торговли. Облако Ичимоку четко показывает тенденцию, в то время как полосы Боллинджера улавливают аномалии. RSI эффективно фильтрует ложные прорывы. Использование нескольких скоординированных индикаторов делает торговые сигналы более надежными. Кроме того, логика стоп-лосса и прибыли помогает зафиксировать прибыль и избежать огромных потерь.
Несмотря на то, что у стратегии есть преимущество в выявлении тенденций и аномалий, она по-прежнему представляет некоторые риски. Поскольку она торгуется вместе с тенденциями, на рыночных рынках может возникнуть множество ложных сигналов. Неправильные настройки параметров также могут ухудшить производительность стратегии. Рекомендуется пошаговая оптимизация для тестирования различных комбинаций параметров и поиска оптимальных значений.
Стратегия может быть улучшена в следующих аспектах:
Стратегия 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")