Estrategia de negociación de acciones basada en el oscilador de Aroon

El autor:¿ Qué pasa?, Fecha: 2024-01-15 14:08:33
Las etiquetas:

img

Resumen de la estrategia

Esta estrategia se llama Saucius Aroon Oscillator Strategy. Se adapta a acciones, índices y materias primas con alta volatilidad pero tendencia incierta, donde las perspectivas de precios futuros son inciertas. La estrategia identifica las tendencias de precios utilizando el indicador Aroon Oscillator y establece condiciones de entrada y salida basadas en múltiples parámetros para implementar el comercio automatizado de estos activos de riesgo.

Estrategia lógica

La idea detrás de esta estrategia se originó de Tushar Chande, creador de las líneas de Aroon. Chande sugirió que las tendencias alcistas y bajistas pueden identificarse cuando el Oscilador de Aroon está por encima o por debajo de 50. Esto ayuda a mitigar las deficiencias de las líneas y cruces simples de Aroon en períodos no de tendencia.

Específicamente, la estrategia primero calcula las líneas Aroon Up, Aroon Down y Aroon Oscillator de 19 períodos. El oscilador se calcula restando la línea Down de la línea Up. La línea media se establece a -25, el carril superior a 75 y el carril inferior a -85. Cuando el oscilador pasa por encima de la línea media, se abre la posición larga. Cuando baja, se abre la posición corta. Las condiciones de salida se cierran largas cuando el oscilador pasa por encima del carril superior y se cierran cortas cuando baja por debajo del carril inferior.

Por lo tanto, la línea media se utiliza para determinar la dirección de la tendencia a la entrada, los rieles superiores e inferiores se utilizan para salir cuando la inversión de tendencia, la realización de operaciones automatizadas basadas en el indicador del Oscilador Aroon.

Ventajas

En comparación con las estrategias tradicionales de seguimiento de tendencias, esta estrategia tiene las siguientes ventajas:

  1. Se adapta a activos con alta volatilidad y tendencias poco claras, funciona mejor que las estrategias de tendencia simples
  2. Identificar tendencias a través del Oscilador Aroon es más confiable
  3. La configuración de múltiples parámetros hace que las condiciones comerciales sean rigurosas, evitando operaciones incorrectas
  4. Obtención rápida de beneficios y control eficaz del riesgo de pérdida

En resumen, al combinar las fortalezas del indicador Aroon Oscillator, la estrategia logra una negociación automatizada de activos específicos con una buena tasa de ganancia y rentabilidad.

Los riesgos

También hay algunos riesgos con esta estrategia:

  1. El ajuste de parámetros es necesario para diferentes activos, de lo contrario puede afectar el rendimiento
  2. La alta frecuencia de negociación puede aumentar los costes de transacción y deslizamiento
  3. Dependiendo de los indicadores técnicos, pueden producirse pérdidas cuando los indicadores no funcionan

Estos riesgos pueden reducirse y mejorarse ajustando los parámetros y optimizando el código. Además, el tamaño adecuado de las posiciones y la gestión del dinero también pueden controlar eficazmente los riesgos potenciales.

Optimización

Para mejorar aún más el rendimiento de la estrategia, se pueden realizar optimizaciones en los siguientes aspectos:

  1. Ajustar los parámetros y probar en diferentes activos y entornos de mercado
  2. Añadir combinaciones de otros indicadores técnicos para señales comerciales más fuertes
  3. Añadir estrategias de stop loss para limitar efectivamente el tamaño de las pérdidas por operación
  4. Incorporar indicadores de volumen para evitar falsas rupturas
  5. Optimizar las condiciones de entrada para reducir las operaciones innecesarias

A través de pruebas y optimización integrales, la estabilidad, la tasa de ganancia y la rentabilidad de la estrategia pueden mejorarse en gran medida.

Conclusión

Esta estrategia logró creativamente la negociación automatizada de activos con alta volatilidad y tendencias poco claras basadas en el indicador del Oscilador de Aroon. En comparación con las estrategias de tendencia tradicionales, tiene un mejor rendimiento en este tipo de activos, y sus condiciones de negociación rigurosas también se logran a través de configuraciones de parámetros. Las ventajas de la estrategia son notables, pero todavía hay margen de mejora. Se puede obtener una mayor mejora a través de optimizaciones específicas. La estrategia proporciona una referencia para las prácticas comerciales cuantitativas.


/*backtest
start: 2023-12-15 00:00:00
end: 2024-01-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// by Saucius Finance https://saucius-finance.blogspot.com/
// copyrights reserved :)
// This strategy derives form the consideration of the author, Tushar Chande, that, in "more patterns" paragraph, 
// long and short trends are identified by oscillator < or > line 50. 
// This helps because simple Aroon and Aroon crosses suffer in not trending periods.
// original article avabile in:" Stocks & Commodities, V. 13:9 (369-374) : A Time Price Oscillator by Tushar Chande, Ph.D.""
strategy("Aroon Oscillator strategy by Saucius", overlay=false)
//building aroon lines, Embodying both Aroon line (Up and Down) and Aroon Oscillator
length = input(19, minval=1)
level_middle = input(-25, minval=-90, maxval=90, step = 5)
levelhigh = input(75,  minval=-100, maxval=100, step = 5)
levellow = input(-85,  minval=-100, maxval=100, step = 5)
upper = 100 * (highestbars(high, length+1) + length)/length
lower = 100 * (lowestbars(low, length+1) + length)/length
oscillator = upper - lower 
plot(upper, title="Aroon Up", color=blue)
plot(lower, title="Aroon Down", color=red)
plot(oscillator, title="Aroon Oscillator", color = yellow)
hline(level_middle, title="middle line", color=gray,  linewidth=2)
hline(levelhigh, title ="upper border", color=gray,  linewidth=1)
hline(levellow, title ="lower border", color=gray, linewidth=1)

// Entry //
entryl = oscillator[1] < level_middle[1] and oscillator > level_middle
entrys = oscillator[1] > level_middle[1] and oscillator < level_middle
strategy.entry("Long", true, when = entryl)
strategy.entry("Short", false, when = crossunder (oscillator, level_middle))


// === EXIT===
exitL1 = oscillator[1] > levelhigh[1] and oscillator < levelhigh
exitS1 =  oscillator[1] < levellow[1] and oscillator > levellow
strategy.close("Long", when=entrys)
strategy.close("Short", when=entryl)
strategy.close("Long", when= exitL1)
strategy.close("Short", when= exitS1)


Más.