
La estrategia de comercio de la banda de Brin de selección múltiple es una estrategia de comercio cuantitativa que combina el indicador de la banda de Brin, el indicador de la línea media, el indicador RSI y la característica del gráfico de línea K para filtrar múltiples condiciones y emitir una señal de comercio cuando se cumplen las condiciones. Esta es una estrategia típica de seguimiento de tendencias para obtener ganancias capturando las fluctuaciones de la tendencia de precios en la línea media y larga.
La estrategia utiliza principalmente tres indicadores: la banda de Brin, la mediana y el RSI. Dentro de la banda de Brin, la mediana es la media móvil simple de n días del precio, y la mediana y la mediana son la mediana + 2 veces la diferencia estándar y la mediana - 2 veces la diferencia estándar.
La estrategia genera señales de negociación a través de tres condiciones principales:
(1) Brin con la ruptura de la vía descendente y la línea de la entidad K rebatida. Cuando el precio de cierre se rompe la vía descendente y el color de la entidad de la línea de la K es contrario a la dirección de la tendencia actual, haga más.
(2) La correlación de la brecha en la línea de Brin y la contravención de la entidad de la línea K. Cuando la entidad de la línea K se pone en trayectoria por debajo del precio de cierre y el color de la entidad de la línea K es contrario a la dirección de la tendencia actual.
(3) La entidad de la línea K gira. Si la dirección de la posición coincide con el color de la entidad de la línea K gira, la posición está en blanco.
Además de esto, la estrategia también establece condiciones auxiliares como filtros de línea uniforme, filtros de entidad de línea K y filtros RSI para controlar estrictamente la entrada.
Se puede reducir el riesgo ajustando los parámetros de la banda de Bryn y controlando estrictamente el stop loss.
Esta estrategia en su conjunto es una estrategia típica de seguimiento de tendencias de línea media larga. Mediante la selección de múltiples condiciones, el control estricto de la entrada y salida, y la adopción de un método de negociación de tendencias, se pueden reducir las transacciones innecesarias y capturar las tendencias de la línea media larga del mercado. La estrategia tiene un gran espacio de optimización, y se puede mejorar aún más la estabilidad y la rentabilidad de la estrategia mediante el ajuste de parámetros y la adición de más herramientas auxiliares.
/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy("Noro's Bollinger Strategy v1.4", shorttitle = "Bollinger str 1.4", overlay = true )
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(1, defval = 1, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")
usebf = input(true, defval = true, title = "Use body-filter")
usecf = input(true, defval = true, title = "Use color-filter")
userf = input(true, defval = true, title = "Use RSI-filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
showbands = input(true, defval = true, title = "Show Bollinger Bands")
//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
//Lines
col = showbands ? black : na
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)
//Body filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebf == false
//Color filter
bar = close > open ? 1 : close < open ? -1 : 0
gb = bar == 1 or usecf == false
rb = bar == -1 or usecf == false
//RSI Filter
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
ursi = rsi > 70 or userf == false
drsi = rsi < 30 or userf == false
//Signals
up = close <= lower and rb and body and drsi and (close < strategy.position_avg_price or strategy.position_size == 0)
dn = close >= upper and gb and body and ursi and (close > strategy.position_avg_price or strategy.position_size == 0)
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body
//Trading
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
if exit
strategy.close_all()