Estrategia de ruptura de precios en operaciones cuantitativas


Fecha de creación: 2023-12-22 12:42:15 Última modificación: 2023-12-22 12:42:15
Copiar: 0 Número de Visitas: 599
1
Seguir
1621
Seguidores

Estrategia de ruptura de precios en operaciones cuantitativas

Descripción general

La estrategia es una estrategia de comercio de cuantificación de línea corta basada en las medias móviles simples (SMA), las medias móviles indexadas (EMA), el canal de Keltner, el indicador MACD y el indicador aleatorio (estocástico). Se basa en la forma en que el precio supera el SMA y el EMA, combinando las señales múltiples de los canales de Keltner, el indicador MACD y el indicador estocástico, para lograr entradas y salidas de comercio automatizadas.

Principio de estrategia

La estrategia utiliza el SMA de 25 ciclos, el EMA de 200 ciclos para construir el indicador de las medias móviles dobles. Se produce una señal de compra cuando el precio se rompe la media móvil dobles de abajo hacia arriba; Se produce una señal de venta cuando el precio se rompe la media móvil dobles de arriba hacia abajo.

Al mismo tiempo, la estrategia utiliza 10 ciclos para construir el canal de Keltner, y los tramos superiores y inferiores del canal de ruptura de precios también actúan como señales auxiliares. El indicador MACD genera una señal de compra y venta a través de la línea rápida, la línea lenta y la figura de la columna MACD. El indicador estocástico también forma una señal de mercado libre a través de la línea% K y la línea% D.

En concreto, cuando el precio de cierre es superior a las SMA y EMA, y está dentro del canal de Keltner, el gráfico de la columna MACD es negativo, el valor de Stochastic% K es inferior a 50, y genera una señal de compra, hacer más; cuando el precio de cierre es inferior a las SMA y EMA, y está dentro del canal de Keltner, el gráfico de la columna MACD es positivo, el valor de Stochastic% K es superior a 50, y genera una señal de venta, hacer vacío.

Ventajas estratégicas

  1. El uso de medias móviles dobles en combinación con un indicador de canal puede filtrar eficazmente los falsos saltos en el mercado.
  2. La integración de múltiples señales de indicadores técnicos puede mejorar la fiabilidad de la señal.
  3. Las reglas de la señal de múltiples espacios son claras y la ejecución programada es eficiente.
  4. Estrategias cuantitativas para operaciones frecuentes en líneas cortas.

Riesgo y optimización de la estrategia

  1. Como estrategia de negociación en línea corta, existe el riesgo de una cierta frecuencia de negociación excesiva.
  2. No hay un mecanismo de detención de pérdidas y existe un mayor riesgo de pérdidas.
  3. Se puede considerar la inclusión de un indicador de volatilidad para optimizar las condiciones de apertura y parada de posiciones.
  4. Se pueden probar los pros y los contras de los diferentes parámetros de ciclo para encontrar la combinación óptima de parámetros.

Resumir

La estrategia integra los cuatro indicadores técnicos más comunes: las medias móviles, los canales, el MACD y el indicador estocástico. Para juzgar la volatilidad a través de la ruptura o no de los precios, es una estrategia típica de comercio cuantitativo en línea corta. En comparación con un solo indicador, la aplicación combinada de la determinación de varios indicadores mejora la precisión de la señal y vale la pena realizar más pruebas y optimizaciones.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=5
strategy(title="Scalping Trading System Crypto and Stocks", overlay=true)
src = input(low, title="Source")

//sma and ema
len = input.int(25, minval=1, title="Length SMA" , group="Moving Averages")
len2 = input.int(200, minval=1, title="Length EMA", group="Moving Averages")

out = ta.sma(src, len)
out2 = ta.ema(src, len2)


//keltner
lengthk = input.int(10, minval=1, title="Length Keltner Channel",group="Keltner")
mult = input(2.0, "Multiplier",group="Keltner")
BandsStyle = input.string("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style",group="Keltner")
atrlength = input(14, "ATR Length",group="Keltner")

ma = ta.sma(src, lengthk)
rangema = BandsStyle == "True Range" ? ta.tr(true) : BandsStyle == "Average True Range" ? ta.atr(atrlength) : ta.rma(high - low, lengthk)
upper = ma + rangema * mult
lower = ma - rangema * mult

//stoch
periodK = input.int(10, title="%K Length", minval=1,group="Stochastic")
smoothK = input.int(1, title="%K Smoothing", minval=1,group="Stochastic")
periodD = input.int(1, title="%D Smoothing", minval=1,group="Stochastic")
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)

//macd 1
fast_length = input(title="Fast Length MACD", defval=4,group="MACD Fast")
slow_length = input(title="Slow Length MACD", defval=34,group="MACD Fast")
signal_length = input.int(title="Signal Smoothing MACD",  minval = 1, maxval = 50, defval = 5,group="MACD Fast")
sma_source = input.string(title="Oscillator MA Type MACD",  defval="EMA", options=["SMA", "EMA"],group="MACD Fast")
sma_signal = input.string(title="Signal Line MA Type MACD", defval="EMA", options=["SMA", "EMA"],group="MACD Fast")

fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal




long= close > out and close < upper and close > lower and hist < 0 and k < 50 and close > out2 

short= close < out and close < upper and close > lower and hist > 0 and k > 50 and close < out2 

strategy.entry("long",strategy.long,when= long)

strategy.entry("short",strategy.short,when=short)