Estrategia de inversión de la media móvil doble cruzada

El autor:¿ Qué pasa?, Fecha: 2023-11-21 11:28:27
Las etiquetas:

imgEste es el artículo que he intentado escribir a petición de ustedes:

Resumen general

Esta estrategia combina la estrategia de patrón de reversión 123 y la estrategia del indicador Bear Power. Las señales de negociación se generan cuando ambos dan señales de compra o venta en la misma dirección. Pertenece a la estrategia de negociación de reversión de ruptura.

Estrategia lógica

La estrategia consta de dos partes:

  1. 123 Estrategia de reversión del patrón

    Genera señales de compra cuando el precio de cierre se rompe hacia arriba después de dos días consecutivos de caída y el indicador de Stoch bajo rebota desde el nivel bajo; Genera señales de venta cuando el precio de cierre se rompe después de dos días consecutivos de aumento y el indicador de Stoch alto se retira desde el nivel alto.

  2. Estrategia del indicador de potencia de los osos

    El indicador Bear Power refleja la comparación de los poderes alcista y bajista. Genera señales de venta cuando está por encima de la línea de venta y genera señales de compra cuando está por debajo de la línea de compra.

Cuando se combinan las señales, se generan señales comerciales reales si las dos dan señales en la misma dirección.

Ventajas

  1. La combinación de señales de reversión y filtros de indicadores evita falsas rupturas y mejora la calidad de la señal.

  2. Aplicable a múltiples plazos, flexible para adaptarse a diferentes entornos de mercado.

  3. Las estrategias constitutivas pueden utilizarse solas o en combinación, con diseño modular.

Los riesgos

  1. Las señales de reversión pueden enfrentar grandes profundidades de retroceso.

  2. Los parámetros del indicador Bear Power necesitan pruebas y optimización repetitivas.

  3. Las estrategias integradas de múltiples factores tienen ajustes de parámetros complejos y requieren grandes cantidades de datos históricos para la prueba.

Direcciones de optimización

  1. Conectar más fuentes de datos con el módulo de unirse Quant para obtener un rango de tiempo más largo y un conjunto de datos más rico.

  2. Aplicar métodos de aprendizaje automático para buscar y evaluar automáticamente combinaciones de parámetros.

  3. Añadir mecanismos de stop loss para controlar la pérdida de una sola operación.

Conclusión

Esta estrategia combina análisis técnico de inversión e indicadores cuantitativos para mejorar la calidad de la señal a través de la doble confirmación. Tiene una alta modularidad y expansibilidad.


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

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/05/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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
//  Bear Power Indicator
//  To get more information please see "Bull And Bear Balance Indicator" 
//  by Vadim Gimelfarb. 
//
// 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

BearPower(SellLevel, BuyLevel) =>
    value =  iff (close < open ,  
              iff (close[1] > open ,  max(close - open, high - low), high - low), 
               iff (close > open, 
                 iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)), 
                  iff(high - close > close - low, 
                   iff (close[1] > open, max(close[1] - open, high - low), high - low), 
                     iff (high - close < close - low, 
                      iff(close > open, max(close - low, high - close),open - low), 
                       iff (close > open, max(close[1] - open, high - close),
                         iff(close[1] < open, max(open - low, high - close), high - low))))))
    pos = 0.0
    pos := iff(value > SellLevel, -1,
	   iff(value <= BuyLevel, 1, nz(pos[1], 0))) 

    pos

strategy(title="Combo Backtest 123 Reversal & Bear Power", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(30)
BuyLevel = input(3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBearPower = BearPower(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBearPower == 1 , 1,
	   iff(posReversal123 == -1 and posBearPower == -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 ? red: possig == 1 ? green : blue ) 

Más.