
Эта стратегия основана на классическом индексе товарного канала (CCI) и выполняется только в несколько шагов. Система выходит на рынок, когда показатель CCI находится на очень низком уровне (CCI <-150 или пользовательское определение), и вновь получает силу (CCI на корневой K-линии CCI) и одновременно отфильтровывает саму ценную силу (K-линия, которая сигнализирует о том, что цена закрытия должна быть выше определенной величины от цены открытия - фиксированной на 0,25%).
Эта стратегия используется для получения высокой выигрышной доли (более 50%), а не для целого длины тренда. Таким образом, она подходит для трейдеров, которые не могут терпеть потенциальные потери.
Используйте функции ta.sma() и ta.dev() для построения индекса CCI и его полосы интервала.
Выберите дату начала торгов с помощью ввода и установите окно обратной связи.
Условия входа: CCI пробивает низкую линию и начинает расти, требуя, чтобы цена закрытия линии K была на 0.25% выше, чем цена открытия.
Условия выхода из игры 1: нанесение на линию по CCI, остановка и выход из игры.
Условия выхода из игры 2: преодоление линии стоп-лоста, убыток выхода из игры.
Стратегия просто делает больше, выбирая время входа в игру в соответствии с интенсивностью показателя CCI, используя при этом риск контроля остановки убытков.
Эта стратегия имеет следующие преимущества:
Использование показателя CCI для выявления случаев перепродажи и перекупа позволяет эффективно использовать возможности для обратного пути.
Это позволяет избежать чрезмерного риска, связанного с ошибочным управлением.
Используйте ценовую силу, чтобы убедиться, что цены на входе уже сформировали поддержку.
Сорт-оф-дефолт (СОД) - это механизм, используемый для эффективного управления капиталом.
Параметры отслеживания гибкие, можно регулировать условия фильтрации входа.
Высокая вероятность победы, подходящая для инвесторов, уделяющих внимание управлению капиталом.
Явная стратегия и понятный код.
Однако эта стратегия также несет в себе определенные риски:
Если мы будем делать это в разных направлениях, то легко пропустим короткую линию, которая идет вниз.
Неправильная настройка параметров CCI может привести к сбоям.
Стойкость к убыткам слишком слабая, чтобы эффективно контролировать убытки.
В результате, по мнению экспертов, в результате сбоев в торговле, которые были вызваны прорывом, убытки были значительными.
Слишком высокая частота сделок приводит к снижению стоимости сделок.
Соответствующие меры управления рисками:
Оптимизируйте параметры CCI, чтобы найти оптимальные значения.
Корректировка величины стоп-ложа, чтобы найти баланс между риском и вероятностью прорыва стоп-ложа.
С учетом расходов на транзакции, контролируется частота входа.
В сочетании с тенденциями и интервалом, избегайте односторонней торговли.
Эта стратегия может быть оптимизирована в следующих аспектах:
Применение динамического стоп-диапазона с корректировкой стоп-диапазона в зависимости от степени волатильности рынка.
В сочетании с MACD и другими показателями, избегайте слишком мягкой остановки.
Повышение возможности продажи, рассмотрение пустоты при перегреве индекса ЦИЦИ.
Учитывайте стоимость сделки и установите минимальную остановочную дистанцию.
Параметры оптимизации в сочетании с стратегическими временными рамками для поиска оптимального сочетания.
Автоматическая оптимизация параметров с использованием методов машинного обучения.
Добавление модуля управления капиталом, динамическая корректировка позиций.
В целом, эта стратегия использует черты сверхпокупа и сверхпродажи показателя CCI, делая больше, когда цены формируют поддержку, стремясь к высокой выигрышной торговле путем контроля риска при остановке. Преимущества стратегии заключаются в простоте и легкости использования, контролируемом риске. Существующие недостатки заключаются в том, что просто делать больше, останавливать потерю, чем фиксировать, и т. Д. Эти проблемы могут быть улучшены путем оптимизации параметров, увеличения точки продажи, динамического остановки потерь и т. Д.
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title='CCI High Performance long only', overlay=false )
src = input(close)
length = input.int(20, title='Period', minval=1)
lossp = input.float(8, title='Stop Loss percentage', minval=0.5, step=0.5)
scart = input.float(0.25, title='Close of the signal bar higher than Open %', minval = 0)
upperline = input.int(150, title='Upper Band', minval=0, step=10)
lowline = input.int(-150, title='Low Band', maxval=0, step=10)
// construction of CCI (not on close but in totalprice) and of bands
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
plot(cci, 'CCI', color=color.new(#996A15, 0))
band1 = hline(upperline, 'Upper Band', color=#C0C0C0, linestyle=hline.style_dashed)
band0 = hline(lowline, 'Lower Band', color=#C0C0C0, linestyle=hline.style_dashed)
fill(band1, band0, color=color.new(#9C6E1B, 90), title='Background')
// === INPUT BACKTEST RANGE ===
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromDay = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromYear = input.int(defval = 2016, title = "From Year", minval = 1970)
thruMonth = input.int(defval = 1, title = "Thru Month", minval = 1, maxval = 12)
thruDay = input.int(defval = 1, title = "Thru Day", minval = 1, maxval = 31)
thruYear = input.int(defval = 2112, title = "Thru Year", minval = 1970)
// === FUNCTION EXAMPLE limit for backtest ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
//ENTRY CONDITIONS
// strategy: enter when CCI is under the low line and starts increasing. The filter is that the signal candle should mark a close higher than a x-percent
// (0.25%) of the open
// Exit when either when it reaches the target of a prices highest than high level of CCI or fixed stop loss (in percentage)
scart_level = open * (1+scart/100)
entryl = cci[1] < lowline[1] and cci > cci[1] and close > scart_level and window()
exit1 = cci> upperline
strategy.entry('Long', strategy.long, when=entryl)
strategy.close('Long', when=exit1, comment='target')
// money management (only stop loss)
losspel = strategy.position_avg_price * (1 - lossp / 100)
fixed_stop_long = close < losspel
strategy.close('Long', when=fixed_stop_long, comment='Stop Loss')