Estrategia combinada de inversión cuantitativa y volumen

El autor:¿ Qué pasa?, Fecha: 2023-09-21 21:07:09
Las etiquetas:

Resumen general

Esta estrategia combina dos estrategias comerciales cuantitativas para generar señales comerciales más precisas y confiables. La primera estrategia se basa en la inversión de precios y la segunda se basa en el análisis de volumen. Las señales combinadas pueden mejorar efectivamente la rentabilidad.

Estrategia lógica

La estrategia consta de dos partes:

  1. Estrategia de reversión

Utiliza el indicador STO para señales de reversión. Va largo cuando el cierre sube durante 2 días y la línea lenta de STO está por debajo de 50.

  1. Estrategia de volumen

Analiza la relación precio-volumen durante un período para determinar la dirección, con el suavizado de la media móvil.

Va largo cuando ambas estrategias señalan largo, y va corto cuando ambas señalan corto.

La combinación mejora la calidad de la señal al reducir en gran medida las señales falsas de cualquiera de las estrategias.

Ventajas

  • Combina dos estrategias independientes, mejorando la precisión
  • La inversión captura oportunidades de recuperación, el volumen pronostica la dirección futura
  • Diferentes tipos de estrategias se verifican entre sí, reduciendo las señales falsas
  • Simple combinación directa, fácil de implementar
  • Los parámetros de cada estrategia se pueden optimizar por separado

Los riesgos

  • Reversiones de riesgo sin reglas estrictas de salida
  • El análisis de volumen puede retrasarse
  • Basado únicamente en indicadores, requiere análisis técnico
  • Se necesitan series de datos más largas para las medias móviles
  • Los parámetros pueden no ser universales entre los productos

Los riesgos pueden reducirse:

  • Optimización del STO para una mejor detección de la inversión
  • Adición de indicadores para confirmar las rupturas de volumen
  • Optimización de los períodos de media móvil
  • Análisis de patrones de gráficos complementarios
  • Ensayo de parámetros por producto

Direcciones de mejora

La estrategia puede mejorarse mediante:

  1. Optimización de los parámetros STO

    Valores de ajuste fino K, D para las mejores combinaciones

  2. Confirmación secundaria de las rupturas de volumen

    Con indicadores como el MACD, el BOLL, etc.

  3. Optimización de los períodos de media móvil

    Prueba de diferentes períodos para señales más estables

  4. Añadir patrones de gráficos

    Introducción de patrones además de las señales combinadas

  5. Pruebas de parámetros específicos del producto

    Los parámetros pueden variar según los productos.

Resumen de las actividades

Esta estrategia combina estrategias de inversión y volumen para mejorar la calidad y precisión de la señal. Pero la optimización de parámetros, indicadores técnicos adicionales, etc. pueden refinar aún más el rendimiento. Podemos ajustar continuamente en función de los resultados de las pruebas de retroceso, validar en el comercio en vivo, para obtener una estrategia de combo verdaderamente robusta. Esto requiere un inmenso tiempo y esfuerzo, pero las recompensas también serán significativas.


/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/10/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This is another version of FVE indicator that we have posted earlier 
// in this forum.
// This version has an important enhancement to the previous one that`s 
// especially useful with intraday minute charts.
// Due to the volatility had not been taken into account to avoid the extra 
// complication in the formula, the previous formula has some drawbacks:
// The main drawback is that the constant cutoff coefficient will overestimate 
// price changes in minute charts and underestimate corresponding changes in 
// weekly or monthly charts.
// And now the indicator uses adaptive cutoff coefficient which will adjust to 
// all time frames automatically.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


FVI(Samples,Perma,Cintra,Cinter) =>
    pos = 0
    xhl2 = hl2
    xhlc3 = hlc3
    xClose = close
    xIntra = log(high) - log(low)
    xInter = log(xhlc3) - log(xhlc3[1])
    xStDevIntra = stdev(sma(xIntra, Samples) , Samples)
    xStDevInter = stdev(sma(xInter, Samples) , Samples)
    xVolume = volume
    TP = xhlc3
    TP1 = xhlc3[1]
    Intra = xIntra
    Vintra = xStDevIntra
    Inter = xInter
    Vinter = xStDevInter
    CutOff = Cintra * Vintra + Cinter * Vinter
    MF = xClose - xhl2 + TP - TP1
    FveFactor =  iff(MF > CutOff * xClose, 1, 
                  iff(MF < -1 * CutOff * xClose, -1,  0))
    xVolumePlusMinus = xVolume * FveFactor
    Fvesum = sum(xVolumePlusMinus, Samples)
    VolSum = sum(xVolume, Samples)
    xFVE = (Fvesum / VolSum) * 100
    xEMAFVE = ema(xFVE, Perma)
    pos :=iff(xFVE > xEMAFVE, 1,
    	   iff(xFVE < xEMAFVE, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Volatility Finite Volume Elements", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Samples = input(22, minval=1)
Perma = input(40, minval=1)
Cintra = input(0.1)
Cinter = input(0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFVI = FVI(Samples,Perma,Cintra,Cinter)
pos = iff(posReversal123 == 1 and posFVI == 1 , 1,
	   iff(posReversal123 == -1 and posFVI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Más.