Estrategia de trading multiperiodo con indicador de desviación y media móvil


Fecha de creación: 2023-12-26 10:13:34 Última modificación: 2023-12-26 10:13:34
Copiar: 0 Número de Visitas: 575
1
Seguir
1623
Seguidores

Estrategia de trading multiperiodo con indicador de desviación y media móvil

Descripción general

La estrategia combina los tres indicadores de la media móvil, la banda de Brin y el indicador relativamente débil para realizar operaciones de acciones en varios períodos. Al comprar, toma en cuenta al mismo tiempo la media móvil lenta en la media móvil rápida, el indicador relativamente débil por debajo de 50 y el precio de cierre por debajo de la banda media de Brin. Al vender, toma en cuenta el indicador relativamente débil por encima de 70 y el precio de cierre por encima de la banda de Brin.

Principio de estrategia

La estrategia se basa en tres indicadores: el MACD, que consiste en un promedio móvil de dos períodos diferentes, rápido y lento, que genera una señal de compra cuando la línea rápida atraviesa la línea lenta. El segundo indicador es el Brin Belt, que consiste en tres líneas: la media, la media y la media. Cuando el precio se acerca a la media, el punto de compra es el valle oscilante, y cuando el precio se acerca a la media, el punto de parada es el pico.

En las operaciones concretas, la estrategia requiere primero que el precio de las acciones suba a un promedio móvil rápido a través de un promedio móvil lento, lo que significa que el precio de las acciones aumenta y se puede comprar. Al mismo tiempo, se requiere que el RSI esté por debajo de 50, lo que indica que las acciones pueden estar en la zona de venta excesiva y entrar en el momento de comprar. Además, se requiere que el precio de cierre esté por debajo de la banda media de Brin, lo que indica que las acciones están en el valle y son un buen punto de entrada para comprar.

En términos de paradas y paradas, cuando el RSI es superior a 70, indica que el precio de las acciones puede estar en la zona de sobrecompra, lo que indica que el impulso ascendente se ha debilitado, y se debe considerar el parón. Además, cuando el precio de cierre es superior a la banda de Brin en la vía, también indica que el precio de las acciones puede ser demasiado alto y que existe el riesgo de un retroceso, y se debe parar adecuadamente.

Ventajas estratégicas

La estrategia utiliza las ventajas de los tres indicadores: las medias móviles, las bandas de Brin y el RSI para determinar con mayor precisión el momento de comprar y vender. Las ventajas específicas son las siguientes:

  1. Los promedios móviles pueden determinar el impulso al alza de los precios de las acciones, el cinturón central de Brin puede encontrar puntos de compra en los valles de los precios de las acciones, y el RSI puede evitar los puntos altos de compra de acciones. La combinación de los tres puede determinar el mejor momento de compra en el período medio de los precios de las acciones.

  2. La combinación del RSI y el Brin en su camino puede ayudar a capturar los picos de los precios de las acciones, evitar la sobrecompra y detener el descenso a tiempo.

  3. La aplicación de un juicio multi-ciclo permite aprovechar las oportunidades de negociación en diferentes niveles y ampliar el espacio de ganancias.

  4. La lógica de negociación de esta estrategia es simple, clara y fácil de entender, y es adecuada para inversiones medianas y largas.

Riesgo estratégico

A pesar de que la estrategia integra varios indicadores, aumentando la precisión de las decisiones comerciales, los principales riesgos son:

  1. Los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros de los parámetros.

  2. En los mercados bajistas, los precios de las acciones caen más rápidamente y las medidas de deterioro de esta estrategia pueden no ser tan efectivas.

  3. Riesgo de una sola acción. Esta estrategia es más adecuada para una cartera, el riesgo de una sola acción sigue existiendo y requiere una inversión dispersa.

  4. La frecuencia de las transacciones puede ser demasiado alta. Si los parámetros están configurados correctamente, la estrategia puede realizar transacciones con frecuencia. Esto aumenta los costos de transacción y las tasas.

Resolución de las mismas:

  1. Se deben ajustar los parámetros de acuerdo con los datos de retroalimentación para que la frecuencia de la señal emitida por el indicador sea más adecuada.

  2. Se puede ajustar el ciclo de la media móvil para reducir la frecuencia de compra y reducir las pérdidas.

  3. Aumentar la variedad de inversiones y reducir el riesgo de una sola acción a través de la diversificación de las inversiones.

  4. La liberalización adecuada de las condiciones de compra y parada, y la reducción de la frecuencia de las transacciones.

Dirección de optimización de la estrategia

La estrategia aún tiene espacio para ser optimizada:

  1. Se pueden introducir más filtros de indicadores, como el indicador de volumen de transacciones, para asegurar que el volumen de transacciones se incremente al comprar y aumentar la precisión de la decisión.

  2. Se puede agregar un módulo de administración de posiciones para ajustar dinámicamente las posiciones según las condiciones del mercado.

  3. Se puede combinar con algoritmos de aprendizaje profundo para optimizar automáticamente la configuración de los parámetros mediante el entrenamiento de grandes cantidades de datos.

  4. Se pueden añadir más juicios de ciclo de tiempo para ampliar la aplicación.

Resumir

La estrategia en general es lógica clara, fácil de entender, la aplicación integral de varios indicadores de juicio, en cierta medida reduce las falsas señales. A través de la optimización de los parámetros y la adición de más indicadores técnicos, se puede mejorar aún más la precisión de la toma de decisiones, aumentar la solidez de la estrategia. La estrategia es más adecuada para inversiones de largo plazo y medio, también se puede utilizar para el comercio de la cantidad.

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

//
//@author Alorse
//@version=4
strategy("MACD + BB + RSI [Alorse]", shorttitle="BB + MACD + RSI [Alorse]", overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01) 

txtVer = "1.0.1"
version = input(title="Version", type=input.string, defval=txtVer, options=[txtVer], tooltip="This is informational only, nothing will change.")
src = input(title="Source", type=input.source, defval=close)

// MACD
fast_length = input(title="Fast Length", type=input.integer, defval=12, group="MACD")
slow_length = input(title="Slow Length", type=input.integer, defval=26, group="MACD")
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9, group="MACD")
sma_source = input(title="Oscillator MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
sma_signal = input(title="Signal Line MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)

// Bollinger Bands
bbGroup = "Bollindger Bands"
length = input(20, title="Length", group=bbGroup)
mult = input(2.0, title="StdDev", minval=0.001, maxval=5, group=bbGroup)

basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev

// RSI
rsiGroup = "RSI"
lenRSI = input(14, title="Length", minval=1, group=rsiGroup)
// lessThan = input(50, title="Less than", minval=1 , maxval=100, group=rsiGroup)
RSI = rsi(src, lenRSI)

// Strategy Conditions
buy = crossover(macd, signal) and RSI < 50 and close < basis
sell = RSI > 70 and close > upper


// Stop Loss
slGroup = "Stop Loss"
useSL = input(false, title="╔══════   Enable   ══════╗", group=slGroup, tooltip="If you are using this strategy for Scalping or Futures market, we do not recommend using Stop Loss.")
SLbased = input(title="Based on", type=input.string, defval="Percent", options=["ATR", "Percent"], group=slGroup, tooltip="ATR: Average True Range\nPercent: eg. 5%.")
multiATR = input(10.0, title="ATR   Mult", type=input.float, group=slGroup, inline="atr")
lengthATR = input(14, title="Length", type=input.integer, group=slGroup, inline="atr")
SLPercent = input(10, title="Percent", type=input.float, group=slGroup) * 0.01

longStop = 0.0
shortStop = 0.0

if SLbased == "ATR"
    longStop := valuewhen(buy, low, 0) - (valuewhen(buy, rma(tr(true), lengthATR), 0) * multiATR)
    longStopPrev = nz(longStop[1], longStop)
    longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop

    shortStop := (valuewhen(sell, rma(tr(true), lengthATR), 0) * multiATR) + valuewhen(sell, high, 0)
    shortStopPrev = nz(shortStop[1], shortStop)
    shortStop := close[1] > shortStopPrev ? max(shortStop, shortStopPrev) : shortStop
if SLbased == "Percent"
    longStop  := strategy.position_avg_price * (1 - SLPercent)
    shortStop := strategy.position_avg_price * (1 + SLPercent)

strategy.entry("Long", true, when=buy)
strategy.close("Long", when=sell, comment="Exit")

if useSL
    strategy.exit("Stop Loss", "Long", stop=longStop)