Esta estrategia combina los indicadores CCI, ADX y AO para generar señales de negociación para posiciones largas y cortas. CCI identifica los niveles de sobrecompra y sobreventa, ADX determina la fuerza y dirección de la tendencia, y AO ayuda en los mercados oscilantes. La combinación de múltiples indicadores mejora la estabilidad y la eficiencia del sistema de negociación.
El CCI indica sobrecompra por encima de 100 y sobreventa por debajo de -100.
ADX mide la fuerza de la tendencia. DI+ muestra la fuerza de la tendencia alcista, DI- muestra la fuerza de la tendencia bajista. ADX es la fuerza media de la tendencia.
AO es SMA rápida menos SMA lenta. Un AO en alza representa un impulso alcista fortalecido, y un AO en caída representa un impulso bajista fortalecido. Esta estrategia es larga cuando AO está por debajo de 0.
Las reglas de negociación son las siguientes: ir largo cuando CCI < 0 y DI+ < 25 y AO < 0; cerrar largo cuando DI+ > 25.
Calcular dinámicamente el tamaño de la orden como capital dividido por el precio de cierre y redondear a la baja, para ajustar las órdenes a medida que cambia el capital de la cuenta.
Utilice strategy.entry para señales largas y strategy.close para señales de salida.
El CCI filtra el ruido de los diferentes mercados, reduciendo las señales falsas.
ADX identifica tendencias más fuertes desde el principio.
AO evita el comercio de mercados agitados.
Múltiples indicadores verifican las señales, aumentando la confiabilidad.
El dimensionamiento dinámico de la posición gestiona el riesgo de manera efectiva.
Lógica simple y clara, fácil de seguir.
CCI tiene problemas para identificar los rangos de vkosd.
ADX se ha retrasado en la captura de los giros de tendencia.
AO lucha con una consolidación irregular.
Los indicadores mal configurados conducen a un filtrado excesivo y a operaciones perdidas.
Posibilidad de transferencia de capital
Posibilidad de grandes extracciones, que requieren una gestión estricta del riesgo.
Optimizar los parámetros de las CCI para los diferentes mercados.
Optimizar los parámetros ADX para detectar los cambios de tendencia.
Ajustar los parámetros de AO para entornos de volatilidad.
Combinaciones de ensayos para determinar la ponderación óptima del indicador.
Añadir el stop loss para el control de descenso.
Incorpore volumen para evitar una falsa fuga.
Personalizar el tamaño de la posición fija por instrumento.
Esta estrategia combina CCI, ADX y AO para generar señales largas bastante confiables. Tamaño dinámico y control de riesgo de gestión de posición. La lógica es simple y clara para que los principiantes la sigan.
/*backtest start: 2022-10-19 00:00:00 end: 2023-10-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Strategy Niel", shorttitle="Strategy Niel", max_bars_back=2000, initial_capital=1000) //Input variables buywhenadxabove = input(25) buywhendiplusbelow = input(10) buywhenccibelow = input(0) buywhenawesomeoscillatorbelow = input(0) sellwhendiplusabove = input(25) //CCI script numberofbarsforcci = input(20) CCI = cci(close,numberofbarsforcci) //+DI and ADX adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") dirmov(len) => up = change(high) down = -change(low) truerange = rma(tr, len) plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange) minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) [adx, plus, minus] [sig, up, down] = adx(dilen, adxlen) //plot(sig, color=red, title="ADX") //plot(up, color=blue, title="+DI") //plot(down, color=orange, title="-DI") //Awesome Oscillator nLengthSlow = input(34, minval=1, title="Length Slow") nLengthFast = input(5, minval=1, title="Length Fast") xSMA1_hl2 = sma(hl2, nLengthFast) xSMA2_hl2 = sma(hl2, nLengthSlow) xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2 cClr = xSMA1_SMA2 > xSMA1_SMA2[1] ? blue : red //plot(xSMA1_SMA2, style=histogram, linewidth=1, color=cClr) buy = sig > buywhenadxabove and up < buywhendiplusbelow and CCI < buywhenccibelow and xSMA1_SMA2 < buywhenawesomeoscillatorbelow ordersize=floor(strategy.equity/close) // Floor returns largest integer, strategy.equity gives total equity remaining - allows to dynamically calculate the order size as the account equity increases or decreases. strategy.entry("long",strategy.long,ordersize,when= buy) //strategy.entry let's you enter the market variables id ("long"), strategy.long (long position entry), size of the order and when the order should happen bought = strategy.position_size[0] > strategy.position_size[1] entry_price = valuewhen(bought, open, 0) sell = up > sellwhendiplusabove strategy.close("long", when=sell ) //strategy.close let's you close your position with variables id ('long') and when this should happen