Ичимоку-облако и стратегия движения импульса MACD

Автор:Чао Чжан, Дата: 2023-11-22 13:59:36
Тэги:

img

Обзор

Ичимоку-облако и MACD Momentum Riding - это стратегия, объединяющая индикатор Ичимоку-облака и индикатор импульса MACD. Стратегия использует Облако Ичимоку для определения направления тренда и уровня поддержки / сопротивления, а также индикатор MACD для обнаружения перелома импульса, и входит на рынок во время тренда. Между тем стратегия использует остановку потерь, чтобы зафиксировать прибыль и уменьшить снижение.

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

Облако Ичимоку

Облако Ичимоку состоит из линии поворота (Tenkan-Sen), базовой линии (Kijun-Sen), ведущей линии A (Senkou-Span A), ведущей линии B (Senkou-Span B) и линии подтверждения (Chikou-Span).

  • Цена выше Cloud - восходящий тренд
  • Цена ниже Cloud - понижающийся тренд
  • Переломная линия пересекает базовую линию - бычий сигнал
  • Линия поворота пересекается ниже базовой линии - медвежий сигнал

Индикатор MACD

Движущаяся средняя конвергенция дивергенции, или MACD, является индикатором импульса. В этой стратегии, когда быстрая линия MACD пересекает над медленной линией это сигнал покупки, а когда быстрая линия пересекает ниже медленной линии это сигнал продажи.

Входы и выходы

Когда линия поворота пересекает базовую линию, линия подтверждения пересекает цену закрытия 26 бар, цена закрытия превышает верхнюю полосу облака, а быстрая линия MACD имеет бычий перекресток над медленной линией.

Когда цена повышается на 3%, стратегия перемещает стоп-лосс до 97% текущей цены, чтобы зафиксировать прибыль и отследить подъем.

Когда линия поворота пересекается ниже базовой линии, линия подтверждения пересекается ниже цены закрытия 26 бар, цена закрытия прерывается ниже нижней полосы облака, а быстрая линия MACD имеет медленный перекресток ниже медленной линии.

Когда цена падает на 3%, стратегия перемещает стоп-лосс на 103% текущей цены, чтобы зафиксировать прибыль и отследить движение вниз. Если рост превышает 3%, остановитесь с потерей.

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

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

  1. Ichimoku Cloud может четко определить направление тренда.

  2. MACD эффективен в обнаружении краткосрочных изменений импульса.

  3. Следующая стоп-лосс позволяет стратегии продолжать работать во время тренда. Правильное размещение позиций обеспечивает контролируемый риск на сделку.

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

Эта стратегия также сопряжена с определенными рисками:

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

  2. MACD колеблется с ценой и может генерировать ложные сигналы.

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

  4. Стратегия сама по себе не управляет рисками. Пользователь должен реализовать внешние методы управления рисками для контроля потерь.

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

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

  1. Настройка параметров - настройка линии поворота, периоды обратного отсчета базовой линии, оптимизация параметров MACD для более четких сигналов.

  2. Добавьте фильтрацию - Используйте другие индикаторы, такие как RSI, Bollinger Bands, чтобы отфильтровать плохие сигналы, уменьшая ложные сигналы.

  3. Динамические остановки - процентная база остановки потерь на волатильности рынка и предпочтения риска.

  4. Включить размер позиции - предельный максимальный убыток на сделку для контроля общего снижения.

  5. Автоматический выбор контрактов и ребалансировка - расширение адаптивности на большее количество рынков.

Заключение

Стратегия Ichimoku Cloud и MACD Momentum Riding рассматривает как тренд, так и сроки, которые могут достичь хорошей доходности, когда параметры правильно настроены и находятся под контролем риска.


/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-03 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Ichimoku Cloud with MACD and Trailing Stop Loss',
         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, 6, 1, 0, 0)


// 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])


// MACD
[macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9)


// 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 ta.crossover(macd, macd_signal)
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and ta.crossunder(macd, macd_signal)

// Configure trail stop level with input options
longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01
shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01

// Determine trail stop loss prices
longStopPrice = 0.0
shortStopPrice = 0.0

longStopPrice := if strategy.position_size > 0
    stopValue = close * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0

shortStopPrice := if strategy.position_size < 0
    stopValue = close * (1 + shortTrailPerc)
    math.min(stopValue, shortStopPrice[1])
else
    999999

strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod)
strategy.exit('Exit', stop = longStopPrice, limit = shortStopPrice)
//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)




Больше