Estrategia de negociación de combinación de múltiples indicadores

El autor:¿ Qué pasa?, Fecha: 2023-10-26 15:22:28
Las etiquetas:

img

Resumen general

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.

Estrategia lógica

  1. El CCI indica sobrecompra por encima de 100 y sobreventa por debajo de -100.

  2. 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.

  3. 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.

  4. Las reglas de negociación son las siguientes: ir largo cuando CCI < 0 y DI+ < 25 y AO < 0; cerrar largo cuando DI+ > 25.

  5. 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.

  6. Utilice strategy.entry para señales largas y strategy.close para señales de salida.

Ventajas

  1. El CCI filtra el ruido de los diferentes mercados, reduciendo las señales falsas.

  2. ADX identifica tendencias más fuertes desde el principio.

  3. AO evita el comercio de mercados agitados.

  4. Múltiples indicadores verifican las señales, aumentando la confiabilidad.

  5. El dimensionamiento dinámico de la posición gestiona el riesgo de manera efectiva.

  6. Lógica simple y clara, fácil de seguir.

Los riesgos

  1. CCI tiene problemas para identificar los rangos de vkosd.

  2. ADX se ha retrasado en la captura de los giros de tendencia.

  3. AO lucha con una consolidación irregular.

  4. Los indicadores mal configurados conducen a un filtrado excesivo y a operaciones perdidas.

  5. Posibilidad de transferencia de capital

  6. Posibilidad de grandes extracciones, que requieren una gestión estricta del riesgo.

Mejoras

  1. Optimizar los parámetros de las CCI para los diferentes mercados.

  2. Optimizar los parámetros ADX para detectar los cambios de tendencia.

  3. Ajustar los parámetros de AO para entornos de volatilidad.

  4. Combinaciones de ensayos para determinar la ponderación óptima del indicador.

  5. Añadir el stop loss para el control de descenso.

  6. Incorpore volumen para evitar una falsa fuga.

  7. Personalizar el tamaño de la posición fija por instrumento.

Conclusión

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




Más.