Оптимизация стратегии Ichimoku Cloud Band


Дата создания: 2024-01-19 14:45:21 Последнее изменение: 2024-01-19 14:45:21
Копировать: 0 Количество просмотров: 641
1
Подписаться
1617
Подписчики

Оптимизация стратегии Ichimoku Cloud Band

Обзор

Эта стратегия является стратегией отслеживания тенденций, которая сочетает в себе один индикатор облачного графика и несколько вспомогательных индикаторов. Основное направление тенденции определяется с помощью одного облачного графика, дополнительно фильтруется с помощью таких показателей, как MACD, CMF, TSI, чтобы улучшить качество сигнала.

Стратегический принцип

Эта стратегия использует преимущественно изменения в облачной карте, чтобы определить направление тренда. Когда антенна пересекает облачную полосу, делается больше, а когда она пересекает облачную полосу, делается пусто. При этом в сочетании с запасными шинами, диаграммой столбов MACD, показателем денежных потоков CMF и индексом истинной силы TSI проводится многослойная фильтрация, обеспечивающая качество сигнала.

В частности, условия для запуска многосигналов:

  1. Облачные полосы в антенне
  2. Облачная полоса более широкая, поворотное направление выше базового.
  3. Линия задержки на оси 0
  4. Закрытие цены на фоне туманности
  5. MACD-пост над нулевой оси
  6. CMF больше 0,1
  7. TSI над 0-й осью

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

Стратегические преимущества

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

  1. Облачная карта, чтобы определить направление основных тенденций и убедиться, что они правильные
  2. Вспомогательные индикаторы фильтруют сигналы и снижают риски
  3. Сигналы более надежны, учитывая всевозможные временные циклы
  4. Условия строгие, торгуйте только высококачественными сигналами, избегайте плохих рынков
  5. Максимальная прибыль от отслеживания тенденций

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

Стратегический риск

Основные риски, связанные с этой стратегией, следующие:

  1. Риск ложного прорыва. Когда происходит ложный прорыв цены, это может привести к ошибочным сигналам.
  2. Риск обратного тренда. Движение акций имеет закономерность, в долгосрочной перспективе обязательно будет обратный тренд, существует вероятность потери всей прибыли.
  3. Частота торговли снижает риск. Условия более строгие, возможно, вы пропустите часть возможностей.

Ограничение риска может быть достигнуто путем:

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

Направление оптимизации стратегии

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

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

  2. Увеличение механизма сдерживания убытков. Надлежащее смягчение условий входа, но установка сдерживания убытков для контроля риска.

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

  4. Оптимизируйте показатели фильтрации. Можно тестировать больше показателей, чтобы найти лучшие комбинации сигналов фильтрации.

  5. Добавить правила автоматического распознавания поддельных взломов. Избегать риска преследования.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2024-01-11 00:00:00
end: 2024-01-13 14:00:00
period: 1m
basePeriod: 1m
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/
// © exlux99

//@version=4
strategy("Ichimoku with MACD/ CMF/ TSI", overlay=true, margin_long=0, margin_short=0)



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

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)


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
fast_length = input(title="Fast Length", type=input.integer, defval=17)
slow_length = input(title="Slow Length", type=input.integer, defval=28)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 5)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=true)

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


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


//CMF
lengthA = input(8, minval=1, title="CMF Length")
ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume
mf = sum(ad, lengthA) / sum(volume, lengthA)


//TSI
long = input(title="Long Length", type=input.integer, defval=8)
short = input(title="Short Length", type=input.integer, defval=8)
price = close
double_smooth(src, long, short) =>
	fist_smooth = ema(src, long)
	ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)



bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and hist > 0 and mf > 0.1 and tsi_value > 0
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and hist < 0  and mf < -0.1 and tsi_value < 0



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

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