Estrategia de doble indicador de negociación cuantitativa

El autor:¿ Qué pasa?, Fecha: 15 de enero de 2024 12:18:53
Las etiquetas:

img

Resumen general

La estrategia se llama Quantitative Trading Dual Indicator Strategy. Utiliza tanto las bandas de Bollinger como el índice de fuerza relativa (RSI) como señales de negociación para implementar una estrategia de negociación filtrada por dos indicadores.

Estrategia lógica

La lógica central de esta estrategia es utilizar tanto las bandas de Bollinger como el RSI para juzgar las condiciones de sobrecompra y sobreventa en el mercado para el filtrado de señales de negociación.

Específicamente, las bandas superiores e inferiores de las bandas de Bollinger pueden determinar si los precios están fuera del rango de volatilidad, y así juzgar si el mercado está sobrecomprado o sobrevendido.

La estrategia está configurada para que las operaciones de compra o venta se realicen solo cuando las bandas de Bollinger y el RSI muestran señales de sobrecompra o sobreventa al mismo tiempo.

Ventajas de la estrategia

La mayor ventaja de esta estrategia es el uso de indicadores duales para el filtrado, lo que puede reducir las operaciones engañosas y mejorar la fiabilidad de la señal.

En comparación con un solo indicador de Bandas de Bollinger, la estrategia de indicadores duales puede reducir en gran medida la probabilidad de señales falsas.

En general, la estrategia de dos indicadores tiene en cuenta de manera exhaustiva múltiples situaciones y tiene una mejor adaptabilidad y estabilidad.

Riesgos de la estrategia y soluciones

El principal riesgo de esta estrategia es que la configuración de los parámetros tanto de las bandas de Bollinger como del RSI puede ser inapropiada. Si los parámetros de las bandas de Bollinger están configurados para ser demasiado sensibles, es propenso a generar señales redundantes. Si los parámetros del RSI están configurados demasiado sueltos, el efecto se debilitará.

Además, la combinación de indicadores duales en sí misma significa menos señales. Si el mercado solo cumple con las señales de un indicador mientras que el otro no ha alcanzado el nivel de activación, esta estrategia no generará ninguna señal. Por lo tanto, en comparación con las estrategias de indicadores únicos, la frecuencia de negociación de esta estrategia será menor.

Las soluciones incluyen principalmente el establecimiento de parámetros más adecuados, la modificación de los niveles de activación de RSI y Bollinger Bands, etc. Si la frecuencia de negociación es demasiado baja, considere reducir los requisitos de parámetros para aumentar las oportunidades de entrada.

Direcciones de optimización

Esta estrategia puede optimizarse en los siguientes aspectos:

  1. Prueba diferentes combinaciones de bandas de Bollinger y parámetros RSI para encontrar mejores coincidencias.

  2. Además, las estrategias de stop loss y take profit mejoran la rentabilidad.

  3. Añadir mecanismos de dimensionamiento de posiciones. Utilice el dimensionamiento dinámico de posiciones para aumentar las posiciones cuando la tendencia va bien, y reducir las pérdidas cuando la tendencia va mal.

  4. Añadir autoadaptación de parámetros basados en datos históricos. Permitir que los parámetros del indicador se optimicen automáticamente para adaptarse a las últimas condiciones del mercado.

Conclusión

Como una estrategia filtrada por dos indicadores, esta estrategia tiene una buena estabilidad general y adaptabilidad. Al tiempo que reduce la proporción de señales falsas, también reduce la frecuencia de negociación. Al optimizar los parámetros del indicador y agregar funciones auxiliares, el potencial de ganancia de la estrategia se puede mejorar aún más.


/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-11 23:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Bollinger Bands + RSI, Double Strategy (by SlumdogTrader)", shorttitle="BolBand_RSI_Strat", overlay=true)

// SlumdogTrader's Bollinger Bands + RSI Double Strategy - Profit Trailer
//
// Version 1.0
// Script by SlumdogTrader on July Fri 13(!), 2018.
//
// This strategy uses a normalise Bollinger Bands + RSI.
//
// Bollinger Band triggers
// SELL - when the price is above the upper band.
// BUY - when the price is below the lower band.
//
// RSI triggers
// SELL - when the price is above 55.
// BUY - when the price is below 45.
//
// This simple strategy only triggers when
// both the BB and the RSI
// indicators, at the same time, are in
// a overbought or oversold condition.
//
// Visit my TradingView work at:
// https://www.tradingview.com/u/SlumdogTrader/
//
// Visit my website at:
// https://www.slumdogtrader.com
//

///////////// Bollinger Bands Settings
BBlength = input(20, minval=1,title="Bollinger Bands SMA Period Length")
BBmult = input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
price = input(close, title="Source")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=aqua,title="BBs SMA Basis Line")
p1 = plot(BBupper, color=silver,title="BBs Upper Line")
p2 = plot(BBlower, color=silver,title="BBs Lower Line")
fill(p1, p2)

///////////// RSI Settings
RSIlength = input( 16 ,title="RSI Period Length")
RSIvalue = input( 45 ,title="RSI Value Range")
RSIoverSold = 0 + RSIvalue
RSIoverBought = 100 - RSIvalue
vrsi = rsi(price, RSIlength)


///////////// Colour Settings
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) ? red : RSIoverSold and (price[1] < BBlower and price > BBlower)  ? green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))

    if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
        strategy.entry("RSI_BB_L", strategy.long, stop=BBlower,  comment="RSI_BB_L")
    else
        strategy.cancel(id="RSI_BB_L")

    if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
        strategy.entry("RSI_BB_S", strategy.short, stop=BBupper,  comment="RSI_BB_S")
    else
        strategy.cancel(id="RSI_BB_S")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


Más.