Tendencia de reversión media de doble indicador siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2024-02-01 10:55:30
Las etiquetas:

img

Resumen general

Esta estrategia genera señales de compra y venta mediante la combinación de un indicador de media móvil y un índice de facilitación del mercado.

Principios

La estrategia utiliza dos indicadores para la generación de señales. El primero es el indicador de promedio móvil, específicamente la combinación de línea rápida y línea lenta del Oscilador Estocástico. Produce una señal de venta cuando el precio cierra durante dos días consecutivos y la línea rápida está por encima de la línea lenta. Produce una señal de compra cuando el precio cierra durante dos días consecutivos y la línea rápida está por debajo de la línea lenta. Al monitorear la inversión de precios y la relación entre la línea rápida y la línea lenta, tiene como objetivo predecir posibles puntos de inflexión de la tendencia del precio.

El segundo indicador es el índice de facilitación del mercado. Mide la eficiencia del movimiento de precios mediante el cálculo de la relación entre el rango de precios y el volumen. Cuando el índice aumenta, indica una mejora de la liquidez del mercado y una mayor eficiencia de operación, lo que indica un mercado en tendencia. Cuando el índice disminuye, muestra un empeoramiento de la liquidez y una disminución de la eficiencia, lo que implica un posible mercado de variación lateral o una inversión de tendencia.

Esta estrategia genera órdenes reales de compra y venta cuando ambos indicadores emiten señales comerciales concordantes simultáneamente.

Ventajas

  • Mejora de la precisión de la señal al exigir la confirmación de dos indicadores, evitando señales falsas
  • La combinación del indicador de reversión media y el indicador de evaluación de tendencias ayuda a evitar la negociación en contra de la tendencia principal
  • Reducción de las necesidades de ajuste frecuente de los parámetros y menor intervención manual

Riesgos y soluciones

  • Dificultad para capitalizar las oportunidades de reversión en caso de una tendencia alcista o bajista unidireccional prolongada, incapaz de entrar en el mercado

  • Puede relajar los parámetros del indicador de reversión media para aumentar las posibilidades de capturar señales de compra y venta

  • También puede escalar el tamaño de la posición para montar la tendencia para compensar los beneficios

  • Las señales de inversión inexactas pueden invalidar la estrategia

  • Puede optimizar parámetros o agregar etapas de confirmación de señal para filtrar señales falsas

Áreas de mejora

  • Prueba más combinaciones de parámetros para encontrar la configuración óptima
  • Explorar más indicadores de reversión media, evaluar el rendimiento de diferentes indicadores
  • Introducir el stop loss para limitar las pérdidas de una sola operación
  • Incorporar modelos de aprendizaje automático entrenados en big data para generar señales de inversión más precisas

Resumen de las actividades

Esta estrategia combina un indicador de reversión media y un indicador de juicio de tendencia, entrando en el mercado cuando emerge la señal de reversión mientras se respeta la dirección de la tendencia principal.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 02/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
// The Market Facilitation Index is an indicator that relates price range to 
// volume and measures the efficency of price movement. Use the indicator to 
// determine if the market is trending. If the Market Facilitation Index increased, 
// then the market is facilitating trade and is more efficient, implying that the 
// market is trending. If the Market Facilitation Index decreased, then the market 
// is becoming less efficient, which may indicate a trading range is developing that 
// may be a trend reversal.
//
// 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(BuyZone,SellZone) =>
    pos = 0.0
    xmyVol = volume
    xmyhigh = high
    xmylow = low
    nRes = (xmyhigh - xmylow) / xmyVol * 10000
    pos := iff(nRes > BuyZone, 1,
             iff(nRes < SellZone, -1, nz(pos[1], 0)))
    pos

strategy(title="Combo Backtest 123 Reversal & Market Facilitation Index", 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, "---- MFI ----")
SellZone = input(6.2, minval=0.01, step = 0.01)
BuyZone = input(1, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMFI = MFI(BuyZone,SellZone)
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.