
Esta estrategia combina el indicador de tendencia súper y el índice de canales de mercancías (CCI) para lograr un seguimiento de tendencias y la generación de señales de transacción en un marco de tiempo múltiple. La idea principal de la estrategia es usar el indicador CCI para determinar la dirección de la tendencia a corto plazo, mientras que la combinación del indicador de tendencia súper para determinar la dirección de la tendencia a medio y largo plazo.
El indicador CCI puede determinar el fenómeno de sobrecompra y sobreventa, cuando el indicador CCI cruza el eje 0 de abajo hacia arriba, es una señal de más cabeza, en cambio, es una señal de cabeza vacía. Esta estrategia utiliza esta característica para determinar la dirección de la tendencia a corto plazo.
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
ML = input(0, "CCI Mid Line pivot")
El código anterior define el período y la posición del eje central del indicador CCI.
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Esta parte del código determina si la curva cc está en el eje 0 y si es así, actualiza la trayectoria superior de la tendencia súper y la trayectoria inferior actualiza la trayectoria inferior.
El indicador de tendencia súper puede determinar la dirección de la tendencia a medio y largo plazo mediante la combinación del indicador ATR con el precio. Cuando el precio rompe la tendencia súper, la señal ascendente es una señal múltiple y la baja es una señal de cabeza hueca.
La fórmula de cálculo para los indicadores de tendencia súper en esta estrategia es la siguiente:
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
Donde Factor y Pd son los parámetros ajustables.
La variable de tendencia determina la dirección actual de la tendencia:
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
Mediante la integración del indicador CCI y el indicador de tendencia súper, la estrategia permite la determinación de tendencias en marcos temporales múltiples. El indicador CCI captura tendencias a corto plazo, mientras que el indicador de tendencia súper capta tendencias a medio y largo plazo.
Cuando ambas direcciones coinciden, se produce una señal de negociación más confiable.
isLong = st_trend == 1
isShort = st_trend == -1
El tiempo de entrada es para el corto plazo y el medio plazo, y el tiempo de salida es para el corto plazo y el medio plazo.
La estrategia integra indicadores de tendencia a corto y medio plazo para que las señales de negociación sean más fiables.
Los parámetros Factor en el indicador de tendencia súper y el cici_period en el indicador CCI se pueden ajustar según el mercado, lo que hace que la estrategia sea más flexible.
La estructura de la estrategia es simple y clara, fácil de entender y implementar, muy adecuada para los principiantes en el comercio cuantitativo.
Se puede aplicar a mercados como acciones, divisas, criptomonedas, etc., y se puede ajustar según los parámetros para diferentes variedades.
Cuando los precios fluctúan fuertemente, se producen muchas señales falsas. Se puede aumentar adecuadamente el parámetro Factor de la tendencia súper, reduciendo la frecuencia de negociación de la estrategia.
La supertendencia por sí sola no es suficiente para seguir la fuerza, se puede considerar la combinación con un indicador de dinámica para seguir la tendencia en la fase de aceleración de la tendencia.
Esta estrategia no tiene un límite de pérdidas, se puede combinar con el tamaño del indicador ATR para establecer trails.
Ajustar los parámetros de la tendencia súper y el CCI según las características de los diferentes mercados para mejorar la estabilidad de la estrategia.
Combinado con indicadores de dinámica como MACD, KDJ, se puede obtener un mayor rendimiento al seguir la tendencia en la fase de aceleración de la tendencia.
Optimización de los parámetros de la estrategia y las reglas de negociación utilizando métodos de aprendizaje automático y aprendizaje integrado.
Esta estrategia combina con éxito las supertendencias y el indicador CCI, lo que permite la determinación de tendencias en marcos temporales múltiples. La estrategia es simple y fácil de entender, los parámetros son ajustables y el potencial de ganancias es alto. Se puede optimizar aún más mediante la modulación, el stop loss y el aprendizaje integrado, para que sea una estrategia de negociación confiable, estable y eficiente.
/*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 )