Estrategia estocástica con indicador de media móvil doble


Fecha de creación: 2024-01-29 11:54:10 Última modificación: 2024-01-29 11:54:10
Copiar: 0 Número de Visitas: 392
1
Seguir
1238
Seguidores

Estrategia estocástica con indicador de media móvil doble

Descripción general

La estrategia de aleatoriedad de dos indicadores de línea media es una estrategia que intenta utilizar una combinación de indicadores de línea media y indicadores aleatorios para buscar oportunidades de negociación. Produce una señal de negociación al atravesar un SMA lento en un EMA rápido, y al mismo tiempo utiliza el valor de K del indicador aleatorio para determinar si se está sobrecomprando o sobrevendido para eliminar parte de la señal.

Principio de estrategia

La estrategia se basa principalmente en dos indicadores técnicos:

  1. Línea media: calcula la media de los tres parámetros diferentes de la EMA rápida, SMA lenta y VWMA lenta, que genera una señal de negociación cuando la EMA rápida pasa por encima o por debajo de la SMA lenta.

  2. Indicador aleatorio: Calcula el valor del %K, cuando supera el umbral de la zona de sobreventa o de sobreventa establecida, se considera que el mercado puede revertirse y se puede eliminar parte de la señal de comercio de línea media.

En concreto, la lógica de las señales estratégicas es la siguiente:

  1. Haga más cuando el EMA rápido atraviesa el SMA lento y el K% está por debajo del umbral de la zona de venta por encima de la zona de venta por encima de la zona de venta por debajo de la zona de venta por encima de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por encima de la zona de venta por encima de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por encima de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de venta por debajo de la zona de

  2. Para las posiciones abiertas de más de una posición, se cerrará si el valor del% K vuelve a entrar en la zona de sobreventa o si el precio cae por encima de la línea de parada. Para las posiciones abiertas de más de una posición, se cerrará si el valor del% K vuelve a entrar en la zona de sobreventa o si el precio cae por encima de la línea de parada.

Mediante la combinación de indicadores de línea media y indicadores aleatorios, la estrategia intenta emitir una señal de entrada en un punto de señal de línea media de alta probabilidad, mientras que aprovecha la oportunidad de que una parte del indicador aleatorio se filtre por error.

Análisis de las ventajas

La estrategia tiene las siguientes ventajas:

  1. La combinación de varios indicadores técnicos permite un análisis más completo de la situación que un solo indicador.
  2. El uso de indicadores aleatorios para filtrar las señales puede evitar errores hasta cierto punto.
  3. La mediana de varios conjuntos de parámetros mixtos es más precisa en su totalidad.
  4. El sistema de suspensión de pérdidas integrado controla las pérdidas individuales.

Análisis de riesgos

La estrategia también tiene sus riesgos:

  1. Los indicadores de línea media son propensos a generar más señales de incertidumbre, mayor probabilidad de error y capacidad limitada de detener el daño.
  2. Los indicadores aleatorios también pueden generar señales erróneas.
  3. La configuración de los parámetros (por ejemplo, el tamaño de la zona de venta excesiva, el ciclo de la línea media, etc.) puede necesitar optimización, y una configuración incorrecta puede afectar el rendimiento de la estrategia.
  4. La estrategia es puramente técnica y no se ha prestado suficiente atención a los factores fundamentales.

El método de respuesta:

  1. Optimización de parámetros para encontrar la combinación óptima de parámetros indicadores.
  2. Reducir adecuadamente el tamaño de las posiciones y construir almacenes en lotes.
  3. El análisis de los hechos, combinado con el análisis de los fundamentos, evita grandes incidentes.

Dirección de optimización

La estrategia se puede optimizar principalmente en los siguientes aspectos:

  1. Optimización de la prueba de los parámetros de la línea media para encontrar la combinación óptima de parámetros.
  2. Prueba los parámetros de los indicadores aleatorios, como el tamaño de la zona de sobreventa y sobreventa, para encontrar el parámetro óptimo.
  3. Intenta agregar otros indicadores, como el VOLUME para mejorar el juicio o el indicador de fluctuación para medir el riesgo, Enriquecer la lógica de entrada.
  4. Aumentar los métodos de detención de pérdidas, como el seguimiento de las detenciones, para controlar el riesgo.
  5. Optimización de la gestión de fondos, como ajuste de posiciones en función de la dinámica de ATR.
  6. En combinación con indicadores de pánico como el VIX, evitar eventos de riesgo significativo.

Resumir

La estrategia de aleatoriedad de indicadores de doble línea promedio diseña una estrategia de seguimiento de tendencias más sólida mediante la combinación de indicadores de línea promedio y aleatorios rápidos y lentos. Sin embargo, también hay algunos espacios de optimización, como la selección de parámetros, la forma de detener el daño, etc. Si se introducen más indicadores de juicio y optimización, se espera que la estrategia obtenga ganancias adicionales más estables.

Código Fuente de la Estrategia
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("TVIX MEAN REV V2 TREND", overlay=true)
length = input(16, minval=1)
OverBought = input(80)
OverSold = input(20)
TradeLong = input (true)
TradeShort = input (true)

OverBoughtClose = input(80)
OverSoldClose = input(20)

smoothK = 3
smoothD = 3
trail_points = input(50)

k = sma(stoch(close, high, low, length), smoothK)
d = sma(k, smoothD)
k2 = sma(stoch(close, high, low, length), smoothK)
d2 = sma(k, smoothD)


// === GENERAL INPUTS ===
// short Ema
maFastSource = input(defval=close, title="Fast EMA Source")
maFastLength = input(defval=1, title="Fast EMA Period", minval=1)
// long Sma
maSlowSource = input(defval=close, title="Slow SMA Source")
maSlowLength = input(defval=100, title="Slow SMA Period", minval=1)
// longer Sma
maSlowerSource = input(defval=close, title="Slower SMA Source")
maSlowerLength = input(defval=30, title="Slower SMA Period", minval=1)

//ATR Stop Loss Indicator by Keith Larson
atrDays = input(7, "ATR Days Lookback")
theAtr = atr(atrDays)
atrModifier = input(5.0, "ATR Modifier")
//plot(atr * atrModifier, title="ATR")

LstopLoss = close - (theAtr * atrModifier)
SstopLoss = close + (theAtr * atrModifier)



// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)
maSlower = vwma(maSlowerSource, maSlowerLength)
rsi = rsi(maSlowerSource, maSlowerLength)

// === PLOTTING ===
fast = plot(maFast, title="Fast MA", color=color.red, linewidth=2, style=plot.style_line, transp=30)
slow = plot(maSlow, title="Slow MA", color=color.green, linewidth=2, style=plot.style_line, transp=30)
slower = plot(maSlower, title="Slower MA", color=color.teal, linewidth=2, style=plot.style_line, transp=30)


// === LOGIC === Basic - simply switches from long to short and vice-versa with each fast-slow MA cross
LongFilter = maFast > maSlow
ShortFilter = maSlow > maFast




BUY=crossover(k, d) and k < OverSold
SELL=crossunder(k, d) and k > OverBought

SELLCLOSE=crossover(k, d) and k < OverSoldClose
BUYCLOSE=crossunder(k, d) and k > OverBoughtClose

Open = open


if not na(k) and not na(d)
    if crossover(k, d) and k < OverSold and LongFilter and TradeLong
        strategy.entry("$", strategy.long, limit = Open, comment="Long")
    
    strategy.close("$",when = crossunder(k, d) and k > OverBoughtClose or open < LstopLoss  )
    ///strategy.close("$",when = open < LstopLoss  )
    
if not na(k) and not na(d)
    if crossunder(k, d) and k > OverBought and ShortFilter and TradeShort
        strategy.entry("$1", strategy.short, limit = Open, comment="S")
        
    strategy.close ("$1", when = crossover(k, d) and k < OverSoldClose or open > SstopLoss  )
    ///strategy.close ("$1", when = open < SstopLoss)