Estrategia combinada de inversión y flujo de efectivo

El autor:¿ Qué pasa?, Fecha: 2023-09-17 22:37:54
Las etiquetas:

Esta estrategia combina 123 patrones de reversión y un indicador de flujo de efectivo para identificar las inversiones de tendencia.

Estrategia lógica

En primer lugar, 123 patrones de reversión se utilizan para detectar puntos de reversión potenciales. Específicamente, se genera una señal de compra cuando los precios cierran en los primeros dos días y luego se cierran el tercer día, con el oscilador estocástico por debajo del umbral. Una señal de venta se genera cuando los precios cierran en los primeros dos días y luego se cierran el tercer día, con el oscilador estocástico por encima del umbral.

En segundo lugar, se calculan líneas rápidas y lentas del indicador de flujo de dinero. La línea rápida consiste en el promedio móvil exponencial de corto período del flujo de dinero, mientras que la línea lenta es la EMA de período más largo. Cuando la línea rápida está por encima de la línea lenta, indica la entrada de dinero y genera una señal de compra. El opuesto sugiere la salida de dinero y genera una señal de venta.

Por último, cuando las señales de inversión y de flujo de dinero coinciden, se genera una señal de negociación.

Análisis de ventajas

  • La combinación de múltiples señales mejora la confiabilidad.
  • 123 reversiones detectan puntos de inflexión y el flujo de dinero indica flujos de fondos.
  • Los parámetros se pueden ajustar para diferentes productos y plazos.
  • Las señales individuales también pueden utilizarse de forma independiente.

Análisis de riesgos

  • Las inversiones pueden generar señales falsas.
  • El flujo de dinero tiene un efecto de retraso, incapaz de capturar los puntos de inflexión a tiempo.
  • Lógica compleja con múltiples señales combinadas.
  • Necesitamos ajustar los parámetros para evitar el exceso.

Los riesgos se pueden gestionar mejorando la fiabilidad de la inversión, ajustando la sensibilidad del flujo de efectivo, implementando el stop loss, etc.

Direcciones de optimización

  • Prueba diferentes conjuntos de parámetros para encontrar valores óptimos.
  • Ajustar los umbrales de compra/venta para reducir las operaciones incorrectas.
  • Añadir otros indicadores técnicos para mejorar la calidad de la señal.
  • Implementar un stop loss para controlar las pérdidas de una sola operación.
  • Optimizar las estrategias de gestión del dinero para gestionar el riesgo general.

Conclusión

La estrategia integra las ventajas del trading de reversión y el seguimiento de tendencias. Puede identificar efectivamente los puntos de inflexión del mercado. Sin embargo, es necesario ajustar los parámetros y controlar el riesgo para evitar señales falsas excesivas al rastrear tendencias. Si se usa correctamente, puede convertirse en una estrategia comercial eficiente.


/*backtest
start: 2023-08-17 00:00:00
end: 2023-09-16 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/02/2021
// 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
//    Indicator plots Money Flow Indicator (Chaikin). This indicator looks 
//    to improve on Larry William's Accumulation Distribution formula that 
//    compared the closing price with the opening price. In the early 1970's, 
//    opening prices for stocks stopped being transmitted by the exchanges. 
//    This made it difficult to calculate Williams' formula. The Chaikin 
//    Oscillator uses the average price of the bar calculated as follows 
//    (High + Low) /2 instead of the Open.
//    The indicator subtracts a 10 period exponential moving average of the 
//    AccumDist function from a 3 period exponential moving average of the 
//    AccumDist function.  
//
// 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


MFI(Fast,Slow) =>
    pos = 0.0
    lenMax = max(Fast, Slow)
    lenMin = min(Fast, Slow)
    xDiv = (high - low) * volume
    SumMax = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMax)
    SumMin = sum(iff(xDiv > 0, (close - open) / (high - low) * volume , 0) , lenMin)
    emaMax = ema(SumMax, lenMax)
    emaMin = ema(SumMin, lenMin)
    nRes = emaMax - emaMin
    pos:= iff(nRes > 0, 1,
           iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Money Flow Indicator", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Money Flow ----")
Fast = input(3, minval=1)
Slow = input(10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMFI = MFI(Fast,Slow)
pos = iff(posReversal123 == 1 and posMFI == 1 , 1,
	   iff(posReversal123 == -1 and posMFI == -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.