
La estrategia integra el indicador de la banda de Brin, el indicador de la fuerza relativa (RSI) y el promedio móvil (MA) con el objetivo de identificar los puntos de entrada y salida potenciales del mercado. Puede generar alertas de señal de compra y venta que pueden ejecutarse a través de operaciones manuales o sistemas de operaciones automáticas.
La estrategia utiliza dos parámetros diferentes para generar un canal de precios. El parámetro predeterminado de la banda de Brines es de 20 ciclos de longitud, con una diferencia estándar de 2. La banda de Brines funciona como resistencia y soporte dinámico en las vías superior e inferior.
El indicador RSI se utiliza para determinar la fuerza de la dinámica de los precios. Se lee el valor del RSI para determinar si se está sobrecomprando o sobrevendido.
La estrategia también integra una media móvil de 50 períodos para determinar la dirección de la tendencia general. Cuando el precio está por encima de la media móvil, indica que está en una tendencia alcista; cuando el precio está por debajo de la media móvil, indica que está en una tendencia descendente.
Condiciones de la señal de compra: el RSI está por encima de la línea de sobrecompra y la banda de Brin no se contrajo.
Condiciones de la señal de venta: RSI está por debajo de la línea de venta excesiva y la banda de Brin no se contrajo.
Condiciones de la señal de posición baja: la posición larga se cierra por debajo de la media móvil. La posición corta se cierra por encima de la media móvil.
Combina los tres indicadores de la banda de Brin, el RSI y el promedio móvil para determinar la dirección de la tendencia y evitar falsas señales.
Las bandas de Brin juzgan los puntos altos y bajos locales y confirman las rupturas, el RSI filtra las rupturas falsas, y las medias móviles juzgan la tendencia general. Los tres se verifican entre sí para identificar con precisión los puntos de cambio de tendencia.
Los parámetros de la estrategia se han optimizado, y la banda de Bryn utiliza dos parámetros de diferencia estándar para representar con mayor precisión el canal de precios.
Cuando la banda de Brin se contrae, es fácil generar una señal errónea. En este momento, el RSI también se acerca a la zona neutral, y se debe evitar el comercio.
El RSI y las medias móviles pueden generar señales erróneas en las tendencias de temblor.
La incapacidad de abordar eficazmente las brechas en los precios de los saltos debe ser evaluada en combinación con otros indicadores para determinar si se trata de una verdadera brecha.
Optimización de los parámetros de la franja del bosque y el RSI para que se ajusten mejor a las características de las diferentes variedades y períodos de tiempo.
Se ha añadido una configuración adicional de Stop Loss. Se detiene automáticamente cuando el precio supera la línea de Stop Loss.
Aumentar los filtros de tendencia, como el ADX, para determinar si se está entrando en una tendencia. Reducir los intercambios no válidos en mercados convulsivos.
En combinación con un sistema de comercio automático, las transacciones se ejecutan automáticamente sin intervención humana, utilizando las señales de comercio generadas.
La estrategia integra las ventajas de los tres indicadores de la banda de Brin, el RSI y la media móvil, y mejora la precisión de la señal mediante la optimización de los parámetros. Puede generar alertas de transacción automáticamente para ejecutar operaciones estratégicas.
/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bollinger Bands, RSI, and MA Strategy", overlay=true)
// Define input variables
b_len = input(20, title="BB Length")
bb_mult = input(2.0, title="BB Standard Deviation")
bb_deviation1 = input(1.0, title="BB Deviation 1")
rsi_len = input(14, title="RSI Length")
overbought = input(70, title="Overbought RSI Level")
oversold = input(30, title="Oversold RSI Level")
ma_len = input(50, title="MA Length")
stop_loss_percent = input(1.0, title="Stop Loss Percentage")
source = input(close, title="Source")
// Calculate Bollinger Bands
bb_upper = ta.sma(source, b_len) + bb_mult * ta.stdev(source, b_len)
bb_lower = ta.sma(source, b_len) - bb_mult * ta.stdev(source, b_len)
bb_upper1 = ta.sma(source, b_len) + bb_deviation1 * ta.stdev(source, b_len)
bb_lower1 = ta.sma(source, b_len) - bb_deviation1 * ta.stdev(source, b_len)
// Calculate RSI
rsi = ta.rsi(source, rsi_len)
// Calculate Moving Average
ma = ta.sma(source, ma_len)
// Determine if Bollinger Bands are contracting
bb_contracting = ta.stdev(source, b_len) < ta.stdev(source, b_len)[1]
// Entry conditions
enterLong = rsi > overbought and not bb_contracting
enterShort = rsi < oversold and not bb_contracting
// Exit conditions
exitLong = close < ma
exitShort = close > ma
// Exit trades and generate alerts
if strategy.position_size > 0 and exitLong
strategy.close("Long") // Exit the long trade
alert("Long Exit", alert.freq_once_per_bar_close)
if strategy.position_size < 0 and exitShort
strategy.close("Short") // Exit the short trade
alert("Short Exit", alert.freq_once_per_bar_close)
// Strategy orders
if enterLong
strategy.entry("Long", strategy.long)
if enterShort
strategy.entry("Short", strategy.short)
if exitLong
strategy.close("Long")
if exitShort
strategy.close("Short")
// Plotting Bollinger Bands
plot(bb_upper, color=color.blue, title="BB Upper 2")
plot(bb_lower, color=color.blue, title="BB Lower 2")
plot(bb_upper1, color=color.red, title="BB Upper 1")
plot(bb_lower1, color=color.red, title="BB Lower 1")
// Plotting RSI
plot(rsi, color=color.orange, title="RSI")
// Plotting Moving Average
plot(ma, color=color.green, title="Moving Average")