Tendencia de impulso siguiendo la estrategia

El autor:¿ Qué pasa?, fecha: 2023-10-30 11:36:26
Las etiquetas:

img

Resumen general

Esta estrategia utiliza el indicador VIDYA (Variable Index Dynamic Average) para identificar la dirección de la tendencia en los mercados de criptomonedas y las operaciones basadas en la tendencia.

Estrategia lógica

La estrategia primero calcula el indicador VIDYA. El indicador VIDYA se basa en el impulso del precio y puede responder a los cambios de tendencia más rápido. Específicamente, combina el oscilador de impulso de Chande (CMO) y el promedio móvil simple (SMA). CMO mide la diferencia entre el impulso ascendente y descendente para medir la fuerza de la tendencia. SMA suaviza los datos de precios.

Después de calcular VIDYA, la estrategia juzga la dirección de la tendencia basada en la curva de VIDYA.

Análisis de ventajas

  • VIDYA responde rápidamente y puede captar los cambios de tendencia temprano en comparación con los indicadores tradicionales como SMA.

  • Combinando la fuerza y la dirección de la tendencia, puede distinguir eficazmente las tendencias fuertes y débiles y evitar tendencias falsas en mercados variables.

  • Confiar únicamente en VIDYA hace que la estrategia sea simple.

  • Los ajustes VIDYA más largos permiten rastrear las tendencias a largo plazo y capturar la dirección principal de la tendencia.

  • Buen resultado de las pruebas de retroceso con rendimientos esperados positivos.

Análisis de riesgos

  • VIDYA puede retrasarse en respuesta a eventos repentinos del mercado y perder oportunidades comerciales a corto plazo.

  • Los ajustes largos de VIDYA hacen que sea menos sensible a los cambios de tendencia a corto plazo y pueden conducir a mayores retiros.

  • El seguimiento de la tendencia pura tiene un mal rendimiento en mercados agitados.

  • Los datos limitados de backtest no pueden verificar completamente la robustez. Los parámetros necesitan optimización y pruebas iterativas en el comercio en vivo.

  • La volatilidad alta en los mercados de criptomonedas. El tamaño de las posiciones y el stop loss deben controlarse cuidadosamente para una estricta gestión del riesgo.

Direcciones de optimización

  • Prueba agregando indicadores de volumen o volatilidad para mejorar la sensibilidad a los cambios de tendencia.

  • Intenta combinar VIDYA con otros indicadores de tendencia para obtener un efecto conjunto.

  • Optimice la estrategia de stop loss para salir temprano cuando la tendencia se invierta.

  • Optimizar el tamaño de las posiciones dinámicamente en función de las condiciones del mercado.

  • Prueba la robustez en diferentes criptomonedas y plazos.

Conclusión

En general, se trata de una estrategia de seguimiento de tendencias cuantitativa. Utiliza el indicador VIDYA para determinar la dirección de la tendencia, capturando las tendencias criptográficas de manera sencilla y efectiva. Pero también tiene algunas limitaciones que requieren optimizaciones adicionales en stop loss, dimensionamiento de posiciones, etc. para hacer que la estrategia sea más robusta y prácticamente viable. En general, proporciona un marco básico y un enfoque para construir estrategias de tendencias criptográficas, pero aún se necesitan evaluaciones prudentes para aplicaciones del mundo real.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// @version=5
// Author = TradeAutomation


strategy(title="VIDYA Trend Strategy", shorttitle="VIDYA Trend Strategy", process_orders_on_close=true, overlay=true, pyramiding=25,  commission_type=strategy.commission.percent, commission_value=.075, slippage = 1, initial_capital = 1000000, default_qty_type=strategy.percent_of_equity, default_qty_value=4)


// Backtest Date Range Inputs // 
StartTime = input(defval=timestamp('01 Jan 2000 08:00'), group="Date Range", title='Start Time')
EndTime = input(defval=timestamp('01 Jan 2099 00:00'), group="Date Range", title='End Time')
InDateRange = true

// Strategy Inputs //
len = input.int(title="VIDYA Length", defval=50, step=5,group="Trend Settings")
src = input.source(title="VIDYA Price Source",defval=ohlc4, group="Trend Settings")

// VIDYA Calculations //
valpha=2/(len+1)
vud1=src>src[1] ? src-src[1] : 0
vdd1=src<src[1] ? src[1]-src : 0
vUD=math.sum(vud1,9)
vDD=math.sum(vdd1,9)
vCMO=nz((vUD-vDD)/(vUD+vDD))
var VIDYA = 0.0
VIDYA := na(VIDYA[1]) ? ta.sma(src, len) : nz(valpha*math.abs(vCMO)*src)+(1-valpha*math.abs(vCMO))*nz(VIDYA[1])
plot(VIDYA, title="VIDYA",color=(VIDYA > VIDYA[1]) ? color.green : (VIDYA<VIDYA[1]) ? color.red : (VIDYA==VIDYA[1]) ? color.gray : color.black, linewidth=2)

// Entry & Exit Signals //
if (InDateRange)
    strategy.entry("Long", strategy.long, when = VIDYA>VIDYA[1])
    strategy.close("Long", when = VIDYA<VIDYA[1])
if (not InDateRange)
    strategy.close_all()
    

Más.