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

Автор:Чао Чжан, Дата: 2023-11-24 14:38:47
Тэги:

img

Обзор

Стратегия балансирующего тренда - это стратегия, которая использует индикатор Ичимоку Кинко Хё. Она определяет направления тренда путем объединения нескольких индикаторов, идет в длинный рынок на бычьем рынке и идет в короткий рынок на медвежьем рынке, чтобы достичь долгосрочного повышения капитала.

Принцип стратегии

Ядро этой стратегии основано на индикаторе Ичимоку Кинко Хё, который состоит из Тенкан-Сен (линия конверсии), Киджун-Сен (базовая линия), Сенкоу Спан А (лидирующий Спан А), Сенкоу Спан Б (лидирующий Спан В) и Чику Спан (задерживающийся Спан).

Торговые сигналы генерируются на основе сочетания следующих условий:

  1. Тенкан-Сен пересекает Киджун-Сен в качестве сигнала роста
  2. Тенкан-Сен пересекает ниже Киджун-Сен как медвежий сигнал
  3. Чикоу-Спан пересекается вверх как бычье подтверждение
  4. Переход Chikou Span вниз как подтверждение медвежьей тенденции
  5. RSI выше 50 как бычий индикатор
  6. RSI ниже 50 как медвежий индикатор
  7. Цена выше облака указывает на тенденцию к росту
  8. Цена ниже уровня облака указывает на снижение.

Он идет длинный, когда все быстрые условия выполнены и идет короткий, когда все медвежие условия выполнены.

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

Эта стратегия сочетает в себе индикаторы тренда и показатели перекупленности и перепроданности для эффективного определения направлений тренда.

  1. Ичимоку Кинко Хё может определить средне- и долгосрочные тенденции, избегая заблуждения от краткосрочных рыночных шумов.
  2. Включение РСИ помогает определить зоны перекупа и перепродажи, предотвращая упущенные возможности для отмены.
  3. Действует только при достаточно высокой волатильности, избегая неэффективных сделок.
  4. Строгие правила въезда и выезда максимально смягчают риски.

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

Некоторые риски для этой стратегии:

  1. Ичимоку Кинко Хё имеет эффект задержки, возможно, задерживает время входа.
  2. Низкая частота появления торговых сигналов с комбинацией нескольких условий, что приводит к недостаточному количеству сделок.
  3. Никаких соображений по размерам позиций и управлению рисками, рискам из-за переоценки.

Соответствующие решения:

  1. Сократить параметры Ичимоку для повышения чувствительности.
  2. Уменьшить строгость условий входа для увеличения частоты торговли.
  3. Включить модули управления рисками и размещения позиций для контроля риска по сделкам и общей позиции.

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

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

  1. Добавьте или объедините дополнительные индикаторы, такие как KDJ, MACD, чтобы диверсифицировать источники сигналов.
  2. Оптимизируйте параметры Ичимоку для повышения чувствительности.
  3. Добавьте механизмы стоп-лосса, чтобы зафиксировать прибыль и контролировать риски.
  4. Включить модуль динамического размещения позиций на основе размера счета.
  5. Добавить модуль хеджирования для управления рисками длинных позиций.

Резюме

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


/*backtest
start: 2023-11-16 00:00:00
end: 2023-11-20 08:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Ichimoku Kinko Hyo: ETH 3h Strategy by tobuno", overlay=true)

//Inputs
ts_bars = input(22, minval=1, title="Tenkan-Sen Bars")
ks_bars = input(60, minval=1, title="Kijun-Sen Bars")
ssb_bars = input(120, minval=1, title="Senkou-Span B Bars")
cs_offset = input(30, minval=1, title="Chikou-Span Offset")
ss_offset = input(30, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

//Volatility
vollength = input(defval=2, title="VolLength")
voltarget = input(defval=0.2, type=float, step=0.1, title="Volatility Target")
Difference = abs((close - open)/((close + open)/2) * 100)
MovingAverage = sma(Difference, vollength)
highvolatility = MovingAverage > voltarget

////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE
 
// From Date Inputs
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2019, title = "From Year", minval = 1970)
 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)
 
// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
 
////////////////////////////////////////////////////////////////////////////////

middle(len) => avg(lowest(len), highest(len))

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

//RSI
change = change(close)
gain = change >= 0 ? change : 0.0
loss = change < 0 ? (-1) * change : 0.0
avgGain = rma(gain, 14)
avgLoss = rma(loss, 14)
rs = avgGain / avgLoss
rsi = 100 - (100 / (1 + rs))

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

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

// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = mom(close, cs_offset-1) > 0
cs_cross_bear = mom(close, cs_offset-1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low
rsi_bullish = rsi > 50
rsi_bearish = rs < 50
bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and rsi_bullish and highvolatility
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and rsi_bearish and highvolatility

strategy.entry("Long", strategy.long, when=bullish and long_entry and time_cond)
strategy.entry("Short", strategy.short, when=bearish and short_entry and time_cond)

strategy.close("Long", when=bearish and not short_entry and time_cond)
strategy.close("Short", when=bullish and not long_entry and time_cond)


Больше