Estrategia de oscilador estocástico y media móvil

STOCH MA SL
Fecha de creación: 2024-04-30 16:45:30 Última modificación: 2024-04-30 16:45:30
Copiar: 1 Número de Visitas: 642
1
Seguir
1617
Seguidores

Estrategia de oscilador estocástico y media móvil

Descripción general

La estrategia combina el indicador de oscilación aleatoria (estocástico) y el promedio móvil (moving average) para determinar el estado de sobrecompra y sobreventa del mercado y determinar la dirección de la operación en función de la dirección de la tendencia de la media móvil. La estrategia abre una posición de venta cuando el indicador de oscilación aleatoria cruza hacia arriba en la zona de venta por encima de la norma y la media móvil está en tendencia alcista. La estrategia abre una posición de venta en blanco cuando el indicador de oscilación aleatoria cruza hacia abajo en la zona de compra por encima de la norma y la media móvil está en tendencia alcista.

Principio de estrategia

  1. Calcular los valores K y D de un indicador de oscilación aleatoria, donde K es la posición del precio con respecto a los máximos y mínimos, y D es la media móvil de los valores de K.
  2. Calcular el promedio móvil de un período especificado.
  3. Para determinar las condiciones de entrada: cuando el valor de K cruza el nivel de sobreventa de abajo hacia arriba y el promedio móvil hacia arriba, abra una posición de más cabeza; cuando el valor de K cruza el nivel de sobreventa de arriba hacia abajo y el promedio móvil hacia abajo, abra una posición de cabeza vacía.
  4. Para juzgar las condiciones de salida: Cuando el valor de K se cruza con la media móvil y la media móvil cambia de dirección, la posición se iguala.
  5. Establecer el stop loss y controlar el riesgo.

Análisis de las ventajas

  1. La combinación de un indicador de oscilación aleatorio y una media móvil permite una mejor captura de las tendencias del mercado y de las situaciones de sobrecompra y sobreventa.
  2. El uso de las medias móviles para filtrar las señales de negociación y mejorar la calidad de las transacciones.
  3. Establecer un alto riesgo para controlar el riesgo.
  4. La estructura del código es clara, fácil de entender y modificar.

Análisis de riesgos

  1. Los indicadores de oscilación aleatoria y las medias móviles son indicadores de retraso, lo que puede ocasionar un retraso en la señal.
  2. En un mercado convulso, esta estrategia puede generar transacciones frecuentes y elevar los costos de las transacciones.
  3. El porcentaje de pérdidas fijas puede no adaptarse a diferentes condiciones de mercado y debe ajustarse a la volatilidad del mercado.

Dirección de optimización

  1. Se puede considerar la introducción de otros indicadores técnicos, como MACD, RSI, etc., para mejorar la fiabilidad de la señal.
  2. Para el stop loss, se puede utilizar el stop loss dinámico o el stop loss basado en el ATR (Average True Range) para adaptarse mejor a los cambios en el mercado.
  3. Los parámetros de los indicadores de oscilación aleatoria y las medias móviles se pueden ajustar dinámicamente en función de las tendencias y la volatilidad del mercado para optimizar el rendimiento de la estrategia.
  4. Introducción de la gestión de posiciones, que ajusta dinámicamente el tamaño de las posiciones en función de las condiciones del mercado y el riesgo de la cuenta.

Resumir

La estrategia utiliza la dirección de la tendencia de las medias móviles para filtrar las señales de negociación y establecer paros para controlar el riesgo, al mismo tiempo que capta el estado de sobrecompra y sobreventa del mercado. La estrategia es clara, fácil de entender y implementar. Sin embargo, la estrategia también tiene algunas limitaciones, como el retraso de los indicadores, el comercio frecuente, etc.

Código Fuente de la Estrategia
/*backtest
start: 2024-04-22 00:00:00
end: 2024-04-29 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Pablo_2uc

//@version=5
strategy("Estrategia Stoch + MA c/ SL", overlay=true)

// Parámetros del Estocástico
length = input.int(14, title="Longitud Estocástico")
smoothK = input.int(3, title="Suavizado K")
smoothD = input.int(3, title="Suavizado D")
oversold = input.int(20, title="Sobreventa")
overbought = input.int(80, title="Sobrecompra")

// Parámetros de la Media Móvil
maLength = input.int(9, title="Longitud MA")
maSource = input(close, title="Fuente MA")

// Capital inicial
capital = 500

// Tamaño de posición (10% del capital)
positionSize = 1

// Stop Loss (2% del precio de entrada)
stopLossPercent = input.int(2, title="Stop Loss (%)") / 100

// Cálculo del Estocástico
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)

// Cálculo de la Media Móvil
ma = ta.sma(maSource, maLength)

// Condiciones de entrada en largo y corto
longCondition = ta.crossunder(k, oversold) and ma > ma[1]
shortCondition = ta.crossover(k, overbought) and ma < ma[1]

// Condiciones de salida
exitLongCondition = ta.crossover(k, ma) and ma < ma[1]
exitShortCondition = ta.crossunder(k, ma) and ma > ma[1]

// Estrategia
if (longCondition)
    strategy.entry("Long", strategy.long, qty=positionSize)
    strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent))
if (shortCondition)
    strategy.entry("Short", strategy.short, qty=positionSize)
    strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent))

// Cierre de posiciones
if (exitLongCondition)
    strategy.close("Long")
if (exitShortCondition)
    strategy.close("Short")