Стратегия торговли сырьевыми товарами с долгосрочным адаптацией CCI Bottom Catching


Дата создания: 2023-12-21 14:30:03 Последнее изменение: 2023-12-21 14:30:03
Копировать: 0 Количество просмотров: 726
1
Подписаться
1623
Подписчики

Стратегия торговли сырьевыми товарами с долгосрочным адаптацией CCI Bottom Catching

Обзор

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

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

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

В частности, CCI по умолчанию составляет -145. Затем следует определить местонахождение наименьшей точки CCI за последние 40-50 дней и т. д. Если минимальная точка выше уровня по умолчанию, то -90 как новый уровень входа. Если минимальная точка выше -90, то -70 как новый уровень входа, и т. д. Таким образом, уровень входа может динамически переключаться между -145 / -90 / -70 / -50 / -4 / 0 / +25 / +50 / +70.

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

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

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

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

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

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

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

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

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

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

В основном можно оптимизировать несколько аспектов, начиная с самих параметров CCI, установки уровня Entry и параметров Stop Loss. Лучшие параметры для точного определения конкретных параметров могут повысить эффективность стратегии.

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

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

Исходный код стратегии
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Extended Adaptive CCI Entry Strategy for Commodities", shorttitle="Ext_Adaptive_CCI_Entry_Com", overlay=true)

// Inputs
cciLength = input(20, title="CCI Period")
defaultCCIEntryOversold = input(-145, title="Default CCI Entry Oversold Level")
adaptiveCCIEntryLevel90 = input(-90, title="Adaptive CCI Entry Level for 40 Days")
adaptiveCCIEntryLevel70_50Days = input(-70, title="Adaptive CCI Entry Level for 50 Days")
adaptiveCCIEntryLevel50 = input(-50, title="Adaptive CCI Entry Level for 60 Days")
adaptiveCCIEntryLevel4 = input(-4, title="Adaptive CCI Entry Level for 90 Days")
adaptiveCCIEntryLevel0 = input(0, title="Adaptive CCI Entry Level for 120 Days")
adaptiveCCIEntryLevel25 = input(25, title="Adaptive CCI Entry Level for 140 Days")
adaptiveCCIEntryLevel50_160Days = input(50, title="Adaptive CCI Entry Level for 160 Days")
adaptiveCCIEntryLevel70_180Days = input(70, title="Adaptive CCI Entry Level for 180 Days")
lookback40 = input(40, title="Lookback Period for -90 Level")
lookback50 = input(50, title="Lookback Period for -70 Level")
lookback60 = input(60, title="Lookback Period for -50 Level")
lookback90 = input(90, title="Lookback Period for -4 Level")
lookback120 = input(120, title="Lookback Period for 0 Level")
lookback140 = input(140, title="Lookback Period for +25 Level")
lookback160 = input(160, title="Lookback Period for +50 Level")
lookback180 = input(180, title="Lookback Period for +70 Level")

// Indicator Calculation
cci = ta.cci(close, cciLength)

// Determine adaptive entry level based on lookback periods
var float entryLevel = defaultCCIEntryOversold // Initialize with the default level
if ta.lowest(cci, lookback40) > adaptiveCCIEntryLevel90
    entryLevel := adaptiveCCIEntryLevel90
if ta.lowest(cci, lookback50) > adaptiveCCIEntryLevel70_50Days
    entryLevel := adaptiveCCIEntryLevel70_50Days
if ta.lowest(cci, lookback60) > adaptiveCCIEntryLevel50
    entryLevel := adaptiveCCIEntryLevel50
if ta.lowest(cci, lookback90) > adaptiveCCIEntryLevel4
    entryLevel := adaptiveCCIEntryLevel4
if ta.lowest(cci, lookback120) > adaptiveCCIEntryLevel0
    entryLevel := adaptiveCCIEntryLevel0
if ta.lowest(cci, lookback140) > adaptiveCCIEntryLevel25
    entryLevel := adaptiveCCIEntryLevel25
if ta.lowest(cci, lookback160) > adaptiveCCIEntryLevel50_160Days
    entryLevel := adaptiveCCIEntryLevel50_160Days
if ta.lowest(cci, lookback180) > adaptiveCCIEntryLevel70_180Days
    entryLevel := adaptiveCCIEntryLevel70_180Days

// Entry Condition
longCondition = cci < entryLevel

// Entry and Exit
if (longCondition)
    strategy.entry("Long", strategy.long, qty=1)
    alert("Long entry executed at " + str.tostring(close), alert.freq_once_per_bar)

trailOffset = input(10.0, title="Trailing Stop Offset in USD")
strategy.exit("Trailing Stop", "Long", trail_offset = trailOffset, trail_price = close)
if (close < entryLevel - trailOffset)
    alert("Long position closed at " + str.tostring(close), alert.freq_once_per_bar)

// Plotting
plot(series=cci, color=color.purple, title="CCI")
hline(price=defaultCCIEntryOversold, color=color.red, title="Default CCI Entry Oversold Level")
hline(price=adaptiveCCIEntryLevel90, color=color.orange, title="CCI -90 Level (40 Days)")
hline(price=adaptiveCCIEntryLevel70_50Days, color=color.yellow, title="CCI -70 Level (50 Days)")
hline(price=adaptiveCCIEntryLevel50, color=color.green, title="CCI -50 Level (60 Days)")
hline(price=adaptiveCCIEntryLevel4, color=color.blue, title="CCI -4 Level (90 Days)")
hline(price=adaptiveCCIEntryLevel0, color=color.purple, title="CCI 0 Level (120 Days)")
hline(price=adaptiveCCIEntryLevel25, color=color.aqua, title="CCI +25 Level (140 Days)")
hline(price=adaptiveCCIEntryLevel50_160Days, color=color.black, title="CCI +50 Level (160 Days)")
hline(price=adaptiveCCIEntryLevel70_180Days, color=color.gray, title="CCI +70 Level (180 Days)")