Estrategia de caída extrema del mercado basada en desviaciones estadísticas

STD SMA MA SD
Fecha de creación: 2024-11-29 16:46:33 Última modificación: 2024-11-29 16:46:33
Copiar: 0 Número de Visitas: 444
1
Seguir
1617
Seguidores

Estrategia de caída extrema del mercado basada en desviaciones estadísticas

Descripción general

La estrategia se basa en las características estadísticas de la caída extrema del mercado. Mediante el análisis estadístico de las retiradas, se mide el grado extremo de la volatilidad del mercado utilizando el diferencial estándar, y se compra cuando el mercado cae más allá de los límites normales. La idea central de la estrategia es capturar las oportunidades de sobrecaída causadas por el pánico del mercado y identificar las oportunidades de inversión derivadas de la irracionalidad del mercado mediante métodos estadísticos matemáticos.

Principio de estrategia

La estrategia utiliza las características estadísticas de la ventana de tiempo de rotación para calcular la máxima reversión y la reversión del precio. Primero se calcula el precio más alto de los últimos 50 períodos, y luego se calcula el porcentaje de reversión del precio de cierre actual en relación con el precio más alto. Luego se calcula la media y la diferencia estándar de la reversión, y se establece el 1-mucho de la diferencia estándar como umbral de activación.

Ventajas estratégicas

  1. Las estrategias se basan en principios estadísticos y tienen una sólida base teórica. El método es científico y objetivo, y mide la extrema volatilidad del mercado a través de la diferencia estándar.
  2. La estrategia es capaz de capturar eficazmente las oportunidades de inversión en los períodos de pánico en el mercado. Entrar en el mercado cuando hay una caída irracional, en consonancia con la filosofía de la inversión de valor.
  3. El uso de un método de liquidación periódica fija evita el problema de rastrear el stop loss que podría haber perdido un rebote.
  4. Los parámetros de la estrategia son muy ajustables y se pueden configurar de manera flexible según los diferentes entornos de mercado y las características de la variedad de transacción.
  5. El cálculo de los indicadores de retroceso y de desviación estándar es simple, la lógica de la estrategia es clara, fácil de entender y ejecutar.

Riesgo estratégico

  1. El mercado puede sufrir una caída continua, lo que lleva a una estrategia de entrada frecuente pero con pérdidas. Se recomienda establecer un límite en el número máximo de posiciones.
  2. Las posiciones cerradas con periodicidad fija pueden perder un mayor espacio de alza. Se puede considerar la posibilidad de agregar una posición cerrada de seguimiento de tendencias.
  3. Las características de las estadísticas de retirada pueden cambiar con los cambios en el entorno del mercado. Se recomienda actualizar periódicamente la configuración de los parámetros.
  4. La estrategia no tiene en cuenta la información de otros mercados, como el volumen de ventas. Se recomienda la verificación cruzada de varios indicadores.
  5. En un entorno de mercado muy volátil, las diferencias estándar pueden ser falsas. Se recomienda establecer medidas de control de riesgos.

Dirección de optimización de la estrategia

  1. La introducción de un indicador de volumen de transacciones para confirmar el nivel de pánico en el mercado.
  2. Aumentar los indicadores de tendencia y evitar entradas frecuentes en una tendencia bajista.
  3. Optimizar el mecanismo de liquidación de posiciones y ajustar el tiempo de mantenimiento de las posiciones en función de la dinámica del mercado.
  4. Aumentar la configuración de stop loss y controlar el riesgo de una sola transacción.
  5. Considerar el uso de parámetros de adaptación para mejorar la adaptabilidad de la estrategia a los cambios en el mercado.

Resumir

La estrategia capta las oportunidades de superación del mercado a través de métodos estadísticos, tiene una buena base teórica y un valor práctico. La lógica de la estrategia es simple y clara, los parámetros son ajustables y son adecuados para la extensión y optimización de la estrategia básica.

Código Fuente de la Estrategia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy When There's Blood in the Streets Strategy", overlay=false, shorttitle="BloodInTheStreets")


//This strategy identifies opportunities to buy during extreme market drawdowns based on standard deviation thresholds. 
//It calculates the maximum drawdown over a user-defined lookback period, identifies extreme deviations from the mean, 
//and triggers long entries when specific conditions are met. The position is exited after a defined number of bars.


// User Inputs
lookbackPeriod = input.int(50, title="Lookback Period", minval=1, tooltip="Period to calculate the highest high for drawdown")
stdDevLength = input.int(50, title="Standard Deviation Length", minval=1, tooltip="Length of the period to calculate standard deviation")
stdDevThreshold = input.float(-1.0, title="Standard Deviation Threshold", tooltip="Trigger level for long entry based on deviations")
exitBars = input.int(35, title="Exit After (Bars)", minval=1, tooltip="Number of bars after which to exit the trade")

// Drawdown Calculation
peakHigh = ta.highest(high, lookbackPeriod)
drawdown = ((close - peakHigh) / peakHigh) * 100

// Standard Deviation Calculation
drawdownStdDev = ta.stdev(drawdown, stdDevLength)
meanDrawdown = ta.sma(drawdown, stdDevLength)

// Define Standard Deviation Levels
stdDev1 = meanDrawdown - drawdownStdDev
stdDev2 = meanDrawdown - 2 * drawdownStdDev
stdDev3 = meanDrawdown - 3 * drawdownStdDev

// Plot Drawdown and Levels
plot(drawdown, color=color.red, linewidth=2, title="Drawdown (%)")
plot(meanDrawdown, color=color.blue, linewidth=2, title="Mean Drawdown")
plot(stdDev1, color=color.green, linewidth=1, title="1st Std Dev")
plot(stdDev2, color=color.orange, linewidth=1, title="2nd Std Dev")
plot(stdDev3, color=color.purple, linewidth=1, title="3rd Std Dev")

// Entry Condition
var float entryBar = na
goLong = drawdown <= meanDrawdown + stdDevThreshold * drawdownStdDev

if (goLong and strategy.position_size == 0)
    strategy.entry("Long", strategy.long)
    entryBar := bar_index

// Exit Condition
if (strategy.position_size > 0 and not na(entryBar) and bar_index - entryBar >= exitBars)
    strategy.close("Long")