Estrategia de oscilación de distribución extrema

El autor:¿ Qué pasa?, Fecha: 2023-11-13 17:03:08
Las etiquetas:

img

Esta estrategia tiene como objetivo detectar los extremos del Oscilador de Momentum de Chande utilizando la detección de distribución extrema en marcos de tiempo de 1 minuto principalmente para Bitcoin y criptomonedas.

Después de una extensa investigación sobre el oscilador de momento de Chande, decidí crear una estrategia que utiliza niveles de percentil de distribución normal para recortar entradas. Esto a su vez puede crear buenas ganancias durante días consecutivos en el marco de tiempo de 1 minuto, con el objetivo final de obtener una versión más fuerte de esta estrategia que se ejecuta en un bot e imprimir algo de dinero. La estrategia está estrictamente definida, pero también se puede aflojar para hacer más operaciones, dando un mayor tamaño de muestra y una mejor relación Sharpe.

La estrategia comprueba si el valor de Chande está en un percentil extremo basado en los últimos cientos de valores de Chande. Si es así, abrirá una posición.

No hay stop loss o take profit implementado en el swing todavía, pero esta será la próxima adición para minimizar realmente las pérdidas y amplificar las ganancias potenciales.

Cualquier par de criptomonedas líquidas en los marcos de tiempo más bajos obtendrá un buen resultado con esta estrategia.

También tenemos una estrategia de 15M y 1H disponible.

Estrategia lógica

La estrategia primero calcula el oscilador de impulso de Chande, que se basa en el cambio entre el cierre del período actual y el cierre del período anterior.

Luego registra los valores de Chande durante un cierto período de retroceso (períodos predeterminados de 425) y calcula los diferentes niveles de percentil. Cuando el valor actual de Chande alcanza un percentil extremo preestablecido (por defecto 1% para comprar, 99% para vender), activa una señal de entrada larga / corta. Las señales de salida se activan cuando el valor de Chande alcanza los niveles de percentil normales (por defecto 97.5% y 2.5%).

De esta manera, la estrategia puede capturar rupturas extremas del valor de Chande, lo que le permite detectar movimientos repentinos de tendencia.

Análisis de ventajas

  • Captura los estallidos del mercado rápidamente utilizando el impulso del indicador de Chande
  • Riesgo de extracción bajo con detección extrema de distribución normal
  • Parámetros flexibles y adaptables a los diferentes regímenes de mercado
  • Lógica de estrategia sencilla e intuitiva, fácil de entender e implementar

Análisis de riesgos

  • Chande propenso a señales falsas como indicador de momento sensible al ruido a corto plazo
  • Periodos de extracción largos con operaciones de valor extremo, baja frecuencia de operaciones intradiarias
  • El riesgo de pérdida de fluctuaciones sin objetivo de stop loss/ganancia
  • Riesgo de sobreoptimización con ajuste incorrecto de parámetros

La gestión del riesgo debe centrarse en el uso de paradas, normalizando los parámetros extremos y filtrando las señales con tendencia.

Direcciones de optimización

La estrategia se puede optimizar en varios aspectos:

  1. Se añadirá el stop loss/profit taking para controlar las pérdidas por operación a niveles razonables.

  2. Optimiza los parámetros ajustando las búsquedas de retrospectiva corta / larga para diferentes mercados.

  3. Añadir condiciones de filtro con indicadores de tendencia como MA para eliminar señales falsas contra la tendencia general.

  4. Combinar múltiples marcos de tiempo, utilizando un TF más alto para medir la dirección de la tendencia y un TF más bajo para la entrada.

  5. Prueba la robustez de los parámetros en diferentes productos, ajusta para más variedades.

  6. Introducir el aprendizaje automático para optimizar los parámetros y filtros dinámicamente.

Conclusión

En general, esta es una estrategia que utiliza valores extremos del oscilador de momento de Chande para capturar los movimientos de tendencia. Su lógica sencilla y ejecución eficiente lo hacen muy adecuado para capitalizar rápidamente las tendencias de explosión. Al mismo tiempo, se necesita controlar el riesgo, evitar la optimización excesiva y la optimización multidimensional para adaptarlo a través de los regímenes de mercado. En resumen, proporciona un enfoque efectivo para los estallidos de mercado comerciales que vale la pena investigar y aplicar.


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

//@version=4
strategy("Chande Minute Swinger", overlay=true)

//Chande

length = input(9, minval=1)
src = close
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, length)
sm2 = sum(m2, length)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)

//Parameters to change

lengthLookback = 425 //425 golden number
buyPercentile = 1
sellPercentile = 99
linePercentileLow = 2.5
linePercentileHigh = 97.5

buy = percentile_nearest_rank(chandeMO, lengthLookback, buyPercentile)
exitBuy= percentile_nearest_rank(chandeMO, lengthLookback, linePercentileHigh)
sell = percentile_nearest_rank(chandeMO, lengthLookback, sellPercentile)
exitSell = percentile_nearest_rank(chandeMO, lengthLookback, linePercentileLow)

chandeMA = sma(chandeMO, 9) //sma for potential other strategies implementing cross / trend

//Entry conditions

closeLongCondition = chandeMO > exitBuy ? true : false
closeShortCondition = chandeMO < exitSell ? true : false
longCondition = chandeMO < buy
shortCondition = chandeMO > sell

if (longCondition)
    strategy.entry("long", strategy.long)
    

if (shortCondition)
    strategy.entry("short", strategy.short)
    
//Introducing the closes and a stoploss will minimise loss and bring up the sharpe ratio
//Current settings are enabled for maximum potential but big risk
    
//strategy.close("long", when=(closeLongCondition == true))
//strategy.close("short", when=(closeShortCondition == true))

Más.