Тенденция к нулевому пересечению CCI в соответствии со стратегией

Автор:Чао Чжан, Дата: 2023-09-28 16:00:36
Тэги:

Обзор

Эта стратегия использует нулевые пересечения индикатора CCI в качестве сигналов входа и выхода для определения направления тренда.

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

  • Для показателя CCI используется 20 периодов.
  • Когда CCI пересекает предел 0, переходите на длинный с остановкой потери на уровне -100.
  • Когда CCI пересекает ниже нуля, переходите на короткий с стоп-лосом на 100.
  • Выйти, когда CCI снова перейдет нуль.

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

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

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

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

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

Решения:

  • Добавить другие индикаторы для подтверждения, избегать ложных пересечений CCI.
  • Динамически регулируйте дистанцию остановки.
  • Оптимизировать длину CCI для отслеживания тенденций в разных временных рамках.
  • Расслабьте правила въезда, не требуйте строго нулевых переходов CCI.

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

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

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

  2. Добавьте другие индикаторы, такие как KDJ, MACD для подтверждения, избегайте ложных сигналов CCI. Требуйте постоянного прорыва ценовых уровней или одновременных сигналов.

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

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

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

Заключение

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


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

//@version=2
strategy("CCI Level Zero Strategy (by Marcoweb) v1.0", shorttitle="CCI_L_Z_Strat_v1.0", overlay=true)

///////////// CCI
CCIlength = input(20, minval=1, title="CCI Period Length") 
CCIoverSold = -100
CCIoverBought = 100
CCIzeroLine = 0
CCI = cci(hlc3, CCIlength)
price = hlc3
vcci = cci(price, CCIlength)

source = close
buyEntry = crossover(source, CCIzeroLine)
sellEntry = crossunder(source, CCIzeroLine)
plot(CCI, color=black,title="CCI")
p1 = plot(CCIoverSold, color=blue,title="-100")
p2 = plot(CCIoverBought, color=red,title="100")
p3 = plot(CCIzeroLine, color=orange,title="0")


///////////// CCI 0Trend v1.0 Strategy 
if (not na(vcci))

    if (crossover(CCI, CCIzeroLine))
        strategy.entry("CCI_L", strategy.long, stop=CCIoverSold,  comment="CCI_L")
    else
        strategy.cancel(id="CCI_L")
        
    if (crossunder(CCI, CCIzeroLine))
        strategy.entry("CCI_S", strategy.short, stop=CCIoverBought,  comment="CCI_S")
    else
        strategy.cancel(id="CCI_S")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Больше