Отклонение цены от среднесуточной стратегии торговли

Автор:Чао Чжан, Дата: 2023-12-15 15:44:18
Тэги:

img

Обзор

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

Стратегия использует компонентные линии Ichimoku для определения направления и силы тренда. Торговые сигналы генерируются, когда цена проходит через верхнюю или нижнюю часть Облака. Кроме того, стратегия использует возможности входа edge-to-edge, уникальные для системы Ichimoku.

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

Стратегия использует пять строк из системы Ичимоку Кинко Хё:

  1. Линия Тенкана: средний показатель за 9 периодов с наивысшим максимумом и наименьшим минимумом
  2. Линия Kijun: средний показатель за 26 периодов с наивысшим максимумом и наименьшим минимумом
  3. Сенкоу Спан А: средний показатель линии Тенкан и линии Киджун
  4. Senkou Span B: средний за 52 периода наивысшего максимума и наименьшего минимума
  5. Линия Чикоу: 26-периодическая отстающая скользящая средняя

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

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

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

Кроме того, стратегия использует кросс Tenkan/Kijun для определения уровня получения прибыли и стоп-лосса.

Преимущества

Самая большая сила этой стратегии заключается в способности Ichimoku определять направление тренда и уровни поддержки / сопротивления.

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

Кроме того, стратегия включает в себя кросс Tenkan / Kijun для частичного получения прибыли и контроля рисков.

Риски и управление

Основной риск возникает из-за потенциальных пробелов в линиях Ичимоку, вызывающих ложный прорыв.

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

Оптимизация

Некоторые аспекты стратегии могут быть улучшены:

  1. Оптимизируйте параметры Ичимоку и корректируйте периоды скользящей средней для большего числа символов и временных рамок.

  2. Включите подтверждение объема, чтобы избежать пробелов, вызывающих ложные сигналы.

  3. Добавьте другие индикаторы, такие как MACD, RSI для дополнительного тренда и фильтры осцилляторов.

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

Резюме

В общем, эта система Ichimoku определяет направление тренда и торговые шансы с облаком и компонентными линиями. Преимущества заключаются в четком определении тренда и точных сигналах входа.


/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud", shorttitle="Ichimoku", overlay=true)

previous_close = close[1]

conversionPeriods = input.int(20, minval=1, title="Conversion Line Periods"),
basePeriods = input.int(60, minval=1, title="Base Line Periods")
laggingSpan2Periods = input.int(120, minval=1, title="Lagging Span 2 Periods"),
displacement = input.int(30, minval=1, title="Displacement")

long_entry = input.bool(true, title="Long Entry")
short_entry = input.bool(true, title="Short Entry")
e2e_entry = input.bool(true, title="E2E Entry")

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

tenkan = donchian(conversionPeriods)
kijun = donchian(basePeriods)
spanA = math.avg(tenkan, kijun)
spanB = donchian(laggingSpan2Periods)

plot(tenkan, color=#0496ff, title="Conversion Line")
plot(kijun, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")

p1 = plot(spanA, offset = displacement, color=#459915, title="Lead 1")
p2 = plot(spanB, offset = displacement, color=#991515, title="Lead 2")
fill(p1, p2, color = spanA > spanB ? #459915 : #991515)

ss_high = math.max(spanA[displacement - 1], spanB[displacement - 1])
ss_low = math.min(spanA[displacement - 1], spanB[displacement - 1])

// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
kumo_twist_bull = ta.mom(close, displacement) > 0
kumo_twist_bear = ta.mom(close, displacement) < 0

price_above_kumo = close > ss_high
price_below_kumo = close < ss_low

price_enters_kumo_top = previous_close > ss_high[1] and close < ss_high
price_enters_kumo_bottom = previous_close < ss_low[1] and close > ss_low

bullish = tk_cross_bull and kumo_twist_bull and price_above_kumo
bearish = tk_cross_bear and kumo_twist_bear and price_below_kumo

bullishe2e = price_enters_kumo_bottom // and tk_cross_bull
bearishe2e = price_enters_kumo_top // and tk_cross_bear

price_touches_kumo_top = ta.cross(close, ss_high)
price_touches_kumo_bottom = ta.cross(close, ss_low)

strategy.entry("Long", strategy.long, when=bullish and long_entry)
strategy.close("Long", when=tk_cross_bear)
strategy.close("Long", when=price_enters_kumo_top)

strategy.entry("Long e2e", strategy.long, when=bullishe2e and e2e_entry)
strategy.close("Long e2e", when=price_touches_kumo_top)
strategy.close("Long e2e", when=price_below_kumo, qty_percent = 100)
// strategy.close("Long e2e", when=ta.cross(close, kijun), qty_percent = 50)

strategy.entry("Short", strategy.short, when=bearish and short_entry)
strategy.close("Short", when=tk_cross_bull)
strategy.close("Short", when=price_enters_kumo_bottom)

strategy.entry("Short e2e", strategy.short, when=bearishe2e and e2e_entry)
strategy.close("Short e2e", when=price_touches_kumo_bottom)
strategy.close("Short e2e", when=price_above_kumo, qty_percent = 100)
// strategy.close("Long e2e", when=ta.cross(close, kijun), qty_percent = 50)


Больше