Estrategia de doble media móvil combinada con el indicador estocástico

El autor:¿ Qué pasa?, Fecha: 2024-01-12 11:16:52
Las etiquetas:

img

Resumen general

Este artículo presenta una estrategia de negociación cuantitativa que combina la doble estrategia de promedio móvil y el indicador estocástico.

Principio de la estrategia

La estrategia consta de dos partes:

  1. Estrategia de media móvil doble

    Utilizando promedios móviles rápidos y lentos para generar señales de compra cruz dorada y señales de venta cruz muerta.

  2. Indicador estocástico

    Utilizando la característica de oscilación del estocástico para identificar situaciones de sobrecompra y sobreventa. Un estocástico superior a la línea lenta indica una señal de sobrecompra, mientras que un estocástico inferior a la línea lenta indica una señal de sobreventa.

Las señales de ambas partes se combinan para formar las señales finales de negociación.

Análisis de ventajas

  • Combina las ventajas de las medias móviles duales y estocásticas, más estables.
  • Los promedios móviles para seguir la tendencia, los estocásticos para confirmar, buen efecto.
  • Los parámetros personalizables se adaptan a las diferentes condiciones del mercado.

Análisis de riesgos

  • Las medias móviles dobles pueden generar fácilmente señales falsas.
  • Las configuraciones incorrectas de los parámetros estocásticos pueden perder las tendencias.
  • Necesidad de ajustar los parámetros para adaptarse a los cambios del mercado.

Los riesgos pueden reducirse optimizando las combinaciones de parámetros y añadiendo stop loss a las pérdidas de control.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  1. Prueba los efectos de los diferentes parámetros de la media móvil en la estrategia.
  2. Prueba los efectos de diferentes parámetros estocásticos en la estabilidad de la estrategia.
  3. Añadir indicadores de filtro de tendencia para mejorar la tasa de ganancia.
  4. Construir un mecanismo dinámico para controlar las pérdidas.

Resumen de las actividades

Esta estrategia combina las ventajas de las medias móviles duales y estocásticas. Mientras se sigue la tendencia principal del mercado, se evitan inversiones desfavorables. Se pueden obtener mejores resultados de la estrategia a través de la optimización de parámetros.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/11/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
// As the name suggests, High low bands are two bands surrounding the underlying’s 
// price. These bands are generated from the triangular moving averages calculated 
// from the underlying’s price. The triangular moving average is, in turn, shifted 
// up and down by a fixed percentage. The bands, thus formed, are termed as High 
// low bands. The main theme and concept of High low bands is based upon the triangular 
// moving average. 
//
// 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

    
HLB(Length, PercentShift) =>
    pos = 0.0
    xTMA = sma(sma(close, Length), Length)
    xHighBand = xTMA + (xTMA * PercentShift / 100)
    xLowBand = xTMA - (xTMA * PercentShift / 100)
    pos :=iff(close > xHighBand, 1,
           iff(close <xLowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & High Low Bands", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length_HLB = input(14, minval=1)
PercentShift = input(1, minval = 0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posHLB = HLB(Length_HLB, PercentShift)
pos = iff(posReversal123 == 1 and posHLB == 1 , 1,
	   iff(posReversal123 == -1 and posHLB == -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.