Estrategia cuantitativa agresiva de barrido de fondo

El autor:¿ Qué pasa?, Fecha: 2024-01-18 16:25:33
Las etiquetas:

img

Resumen general

Esta estrategia identifica los fondos a corto plazo al detectar un volumen sobrante en una tendencia a la baja, y toma posiciones largas durante condiciones de sobreventa.

Principios de estrategia

Cuando el volumen excede 2 desviaciones estándar por encima del volumen promedio basado en la SMA, se considera volumen pendiente. Mientras tanto, el RSI por debajo de 30 indica el estado de sobreventa. Cuando se cumplen ambas condiciones, se juzga como un fondo a corto plazo y se toma inmediatamente una posición larga. La posición se cerrará después de un cierto período de tiempo (por ejemplo, 10 bares).

Así que la lógica de esta estrategia es simple:

  1. Calcular la SMA de volumen de 20 bares como referencia
  2. Calcular 2 desviaciones tipo de volumen de 20 bares como umbral para el volumen pendiente
  3. Calcular el RSI de 20 bares para juzgar el estado de sobreventa
  4. Cuando el volumen exceda el valor de referencia + 2 desviación estándar y el RSI < 30, se considerará que el valor de referencia es inferior a corto plazo.
  5. Tome posición larga inmediatamente en la parte inferior
  6. Posición de cierre después de 10 bares automáticamente

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. Lógica sencilla, fácil de entender y optimizar
  2. Utilice el volumen pendiente para detectar puntos de inflexión a corto plazo
  3. RSI asegura sólo tomar largos en la zona de sobreventa, evitando perseguir los tops
  4. El stop loss automático maximiza la evasión del riesgo en los fondos

En resumen, esta estrategia aprovecha las rupturas de volumen para detectar inversiones de tendencia, controlando estrictamente los riesgos.

Análisis de riesgos

Los principales riesgos de esta estrategia incluyen:

  1. El volumen y el RSI pueden generar falsas señales de ruptura, causando compras y pérdidas erróneas.
  2. El tiempo fijo de detención de pérdidas puede no detener la pérdida o detener la pérdida demasiado pronto durante una inversión significativa del mercado.
  3. El ajuste de parámetros subóptimo puede dar lugar a muy pocas o demasiadas señales.

Para hacer frente a estos riesgos, la optimización puede realizarse en los siguientes aspectos:

  1. Añadir otros indicadores para filtrar las falsas señales de fuga.
  2. Configurar el stop loss de seguimiento dinámico en lugar de un número fijo de barras.
  3. Pruebas y ajustes completos de parámetros para garantizar la robustez.

Direcciones de optimización

Esta estrategia puede optimizarse aún más en los siguientes aspectos:

  1. Añadir el modelo ML para juzgar la fiabilidad de las interrupciones de volumen para evitar señales falsas
  2. Añadir un mecanismo de pérdida de parada adaptativo en lugar de barras fijas
  3. Optimización de conjuntos de datos multidimensionales para parámetros de volumen pendientes
  4. Aumentar la precisión de las señales de sobreventa mediante la detección de ML
  5. Incorporar análisis de sentimiento para mejorar el alfa

Mediante la introducción de técnicas más avanzadas, se puede lograr una mejora significativa en la estabilidad, la relación alfa y Sharpe.

Conclusión

En resumen, esta es una estrategia de ruptura a corto plazo muy simple, directa y lógica. Al aprovechar adecuadamente el volumen para detectar inversiones de tendencia y controlar estrictamente los riesgos, se puede lograr un rendimiento sólido. Pero existen riesgos de señales falsas y robustez de parámetros. Estos pueden abordarse gradualmente introduciendo técnicas más avanzadas para mejorar aún más la estrategia.


/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
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/
// © footlz

//@version=4
strategy("Bottom catch strategy", overlay=true)

v_len = input(20, title="Volume SMA Length")
mult = input(2)
rsi_len = input(20, title="RSI Length")
oversold = input(30, title="Oversold")
close_time = input(10, title="Close After")

v = volume
basis = sma(v, v_len)
dev = mult * stdev(v, v_len)
upper_volume = basis + dev

rsi = rsi(close, rsi_len)

long = v > upper_volume and rsi < oversold

strategy.entry("Long", true, when=long)

passed_time = 0.0
if strategy.position_size != 0
    passed_time := 1
else
    passed_time := 0

if strategy.position_size != 0 and strategy.position_size[1] != 0
    passed_time := passed_time[1] + 1

if passed_time >= close_time
    strategy.close_all()

// If want to enable plot, change overlay=false.
v_color = close >= close[1] ? color.new(#3eb370, 0) : color.new(#e9546b, 0)

// plot(v, title="volume", color=v_color, style=plot.style_columns)
// plot(upper_volume, title="Threshold", color=color.aqua)

Más.