Количественная стратегия торговли на основе Ichimoku Cloud Breakout и индекса ADX

Автор:Чао Чжан, Дата: 2024-02-02 17:50:30
Тэги:

img

Обзор

Название этой стратегии Квантитативная торговая стратегия на основе Ichimoku Cloud Breakout и индекса ADX. Она сочетает в себе графики Ichimoku Cloud с индексом среднего направленного движения (ADX), чтобы определить, когда занять длинные или короткие позиции. В частности, она входит в позиции, когда цена прорывается через ключевые области облачного графика, и ADX показывает сильный тренд.

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

Стратегия использует Ichimoku Cloud от индикаторов Ichimoku Kinko Hyo для определения ключевых зон поддержки и сопротивления.

Сигналы длинного входа:

  • Линия преобразования пересекается над базовой
  • Пересечение линии отставания над 0 осями
  • Цена выше верхней облачности
  • ADX ниже 45 (что указывает на тенденцию, которая не является чрезмерно распространенной)
  • +DI выше -DI (указывает на восходящий тренд)

Короткие сигналы входа:

  • Линия преобразования пересекается ниже базовой линии
  • Пересечение линии задержки ниже 0 оси
  • Цена ниже дна
  • ADX выше 45 (что указывает на возможное изменение тренда)
  • +DI ниже -DI (указывает на понижающийся тренд)

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

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

  1. Использование облака Ichimoku для определения ключевых уровней поддержки / сопротивления для обнаружения сильных тенденций
  2. Включение индекса ADX для измерения истинной силы тренда, избежание ложных сделок
  3. Ясные правила, которые легко следовать для торговли в режиме реального времени

Риски и решения

Существуют некоторые риски этой стратегии, в основном связанные с нестабильностью в определении тренда ADX. Риски и решения:

  1. ADX имеет задерживающий эффект, может пропустить быстрые обратные действия.
  2. ADX не работает хорошо в диапазоне рынков. может добавить фильтры, как канал BOLL
  3. Ичимоку облако также может потерпеть неудачу. может регулировать параметры или добавить вспомогательные индикаторы

Советы по оптимизации

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

  1. Настройка параметров Ичимоку для большего количества инструментов
  2. Добавление стоп-лосса для контроля потери от одной сделки
  3. Включите больше индикаторов для фильтрации сигналов
  4. Добавить прогноз машинного обучения для дальнейшего определения сигналов тренда

Заключение

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


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=5
strategy('Ichimoku Cloud with ADX (By Coinrule)',
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)


// Stop Loss and Take Profit for Shorting
Stop_loss = input(1) / 100
Take_profit = input(5) / 100
longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)


// Inputs
ts_bars = input.int(9, minval=1, title='Tenkan-Sen Bars')
ks_bars = input.int(26, minval=1, title='Kijun-Sen Bars')
ssb_bars = input.int(52, minval=1, title='Senkou-Span B Bars')
cs_offset = input.int(26, minval=1, title='Chikou-Span Offset')
ss_offset = input.int(26, minval=1, title='Senkou-Span Offset')
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')

middle(len) => math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_bars)

// Plot Ichimoku Kinko Hyo
plot(tenkan, color=color.new(#0496ff, 0), title='Tenkan-Sen')
plot(kijun, color=color.new(#991515, 0), title='Kijun-Sen')
plot(close, offset=-cs_offset + 1, color=color.new(#459915, 0), title='Chikou-Span')
sa = plot(senkouA, offset=ss_offset - 1, color=color.new(color.green, 0), title='Senkou-Span A')
sb = plot(senkouB, offset=ss_offset - 1, color=color.new(color.red, 0), title='Senkou-Span B')
fill(sa, sb, color=senkouA > senkouB ? color.green : color.red, title='Cloud color', transp=90)

ss_high = math.max(senkouA[ss_offset - 1], senkouB[ss_offset - 1])
ss_low = math.min(senkouA[ss_offset - 1], senkouB[ss_offset - 1])


// ADX
[pos_dm, neg_dm, avg_dm] = ta.dmi(14, 14)


// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = ta.mom(close, cs_offset - 1) > 0
cs_cross_bear = ta.mom(close, cs_offset - 1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low

bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and avg_dm < 45 and pos_dm > neg_dm
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and avg_dm > 45 and pos_dm < neg_dm

strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod)
strategy.close('Long', when=bearish and not short_entry)

strategy.entry('Short', strategy.short, when=bearish and short_entry and timePeriod)
strategy.close('Short', when=bullish and not long_entry)




Больше