
Эта стратегия объединяет индикатор супертенденции и индекс товарного коридора (CCI) для отслеживания тенденций и генерирования торговых сигналов в течение нескольких временных рамок. Основная идея этой стратегии заключается в том, чтобы использовать индикатор CCI для определения направления краткосрочных тенденций, а в сочетании с индикатором супертенденции для определения направления среднесрочных тенденций.
Показатель CCI может определить перекуп и перепродажу, когда показатель CCI пересекает 0-угол снизу вверх, это многоголовый сигнал, а не пустой сигнал. Эта стратегия использует эту особенность, чтобы определить направление краткосрочной тенденции.
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
ML = input(0, "CCI Mid Line pivot")
Вышеприведенный код определяет период и положение центральной оси показателя CCI.
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Эта часть кода определяет, пересекает ли CICI 0-ую ось, если да, то обновляет верхнюю полосу супертенденции, а нижнюю - нижнюю полосу.
Супертенденциальный индикатор определяет направление среднесрочной и долгосрочной тенденции путем сочетания показателя ATR с ценой. Когда цена прорывает супертенденциальный сигнал, то это является многоголовым сигналом, а когда цена прорывает супертенденциальный сигнал, то это является пустым сигналом.
Формула расчета показателя супертенденции в данной стратегии выглядит следующим образом:
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
где Factor и Pd являются регулируемыми параметрами。
Тренд-переменные определяют текущее направление супер-трендов:
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
Интеграция показателей CCI и супертенденционных показателей позволяет выявить тенденции в течение нескольких временных рамок.
Когда оба направления совпадают, создается более надежный торговый сигнал.
isLong = st_trend == 1
isShort = st_trend == -1
Время входа - это краткосрочное и среднесрочное равновесие, время выхода - это краткосрочное и среднесрочное обратное.
Эта стратегия включает в себя как краткосрочные, так и среднесрочные индикаторы для определения тенденций, что делает торговые сигналы более надежными.
Факторные параметры в супер трендовых показателях и cci_period в показателях CCI могут быть скорректированы в зависимости от рынка, что позволяет более гибкой стратегии.
Структура стратегии проста и понятна, легко понятна и реализуема, и идеально подходит для начинающих в количественной торговле.
Применяется для рынков, таких как акции, иностранные валюты, криптовалюты и т. Д. Применяется для различных сортов в зависимости от параметров.
Когда цена сильно колеблется, появляется много ложных сигналов. Можно соответствующим образом увеличить параметры фактора супертенденции, снизив частоту торгов стратегии.
Супертенденции сами по себе недостаточно для отслеживания сильных тенденций, их можно рассматривать в сочетании с динамическими индикаторами, чтобы отслеживать тенденции на этапе ускорения тенденции.
В этой стратегии нет установки стоп-убытков, но можно установить trails стоп-убытков в сочетании с ATR.
В зависимости от особенностей различных рынков, для повышения стабильности стратегии необходимо корректировать параметры супертенденций и CCI.
В сочетании с динамическими показателями, такими как MACD, KDJ, можно получить более высокую прибыль от отслеживания тенденции в фазе ускорения тренда.
Оптимизация параметров стратегии и правил торгов с использованием методов машинного обучения и интегрированного обучения.
Эта стратегия успешно объединяет супертенденции и показатели CCI, позволяя определять тенденции в течение нескольких временных рамок. Стратегия проста и понятна, ее параметры настраиваются, а потенциал для получения прибыли значителен. Стратегия может быть дополнительно оптимизирована путем корректировки, остановки убытков и интегрального обучения, что делает ее надежной, стабильной и эффективной торговой стратегией.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//@author=Daveatt
StrategyName = "Best Supertrend CCI Strategy"
ShortStrategyName = "Best Supertrend CCI Strategy"
strategy(title=StrategyName, shorttitle=ShortStrategyName, overlay=true )
//////////////////////////
//* COLOR CONSTANTS *//
//////////////////////////
AQUA = #00FFFFFF
BLUE = #0000FFFF
RED = #FF0000FF
LIME = #00FF00FF
GRAY = #808080FF
DARKRED = #8B0000FF
DARKGREEN = #006400FF
GOLD = #FFD700
WHITE = color.white
// Plots
GREEN_LIGHT = color.new(color.green, 40)
RED_LIGHT = color.new(color.red, 40)
BLUE_LIGHT = color.new(color.aqua, 40)
PURPLE_LIGHT = color.new(color.purple, 40)
source = input(close)
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////// CCI /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
//UL = input(80, "Upper level")
//LL = input(20, "Lower Level")
ML = input(0, "CCI Mid Line pivot")
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////// SUPERTREND /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
Factor=input(3,title="[ST] Factor", minval=1,maxval = 100, type=input.float)
Pd=input(3, title="[ST] PD", minval=1,maxval = 100)
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/////////////////////// SUPERTREND DETECTION //////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
f_supertrend(Factor, Pd) =>
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
TrendUp = 0.0
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown = 0.0
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Trend = 0.0
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown
[Trend, Tsl]
[st_trend, st_tsl] = f_supertrend(Factor, Pd)
// Plot the ST
linecolor = close >= st_tsl ? color.green : color.red
plot(st_tsl, color = linecolor , linewidth = 3,title = "SuperTrend", transp=0)
isLong = st_trend == 1
isShort = st_trend == -1
longClose = isLong[1] and isShort
shortClose = isShort[1] and isLong
strategy.entry("Long", 1, when=isLong)
strategy.close("Long", when=longClose )
strategy.entry("Short", 0, when=isShort)
strategy.close("Short", when=shortClose )