
La estrategia utiliza un sistema de línea media para determinar la dirección de la tendencia y, en combinación con un indicador de volatilidad, evita los mercados convulsivos de baja volatilidad y administra las operaciones con un stop loss convulsivo.
La estrategia juzga la dirección de la tendencia comparando la relación de posición entre la media rápida y la media lenta. Cuando la media rápida atraviesa la media lenta, mira más, y cuando la media rápida atraviesa la media lenta, mira menos. Para evitar mercados convulsos, la estrategia también introduce el indicador de la banda de Brin. Mediante el cálculo del índice de variación de la anchura de la banda de Brin, la operación se produce cuando la variación supera el umbral establecido.
En concreto, la lógica de negociación de la estrategia es la siguiente:
Calcula el promedio rápido (de 20 días por defecto) y el promedio lento (de 50 días por defecto).
Calcula el índice de variación de la anchura de la banda de Bryn (el 40 por defecto, el doble de la diferencia estándar).
Cuando la línea media rápida atraviesa la línea media lenta, y el índice de variación de ancho de banda de Brin supera el umbral establecido (el 9% por defecto), se genera una señal de múltiples cabezas.
Cuando la velocidad media rápida pasa por debajo de la velocidad media lenta, y el índice de variación de ancho de banda de Brin supera el umbral establecido (el 9% por defecto), se genera una señal de cabeza vacía.
Calcula el canal de aire de Chandeli como punto de parada.
El precio máximo de la parada múltiple es ATR.*El multiplicador, el stop loss en blanco es el precio mínimo + ATR*El doble.
El uso de un sistema de línea media para determinar la dirección de la tendencia permite un seguimiento eficaz de la tendencia.
La introducción de la tasa de variación del ancho de banda de Brin evitará el impacto en el mercado y reducirá las transacciones innecesarias.
El uso de la suspensión de temblor, puede detener el daño en el momento de salir de la cancha, para evitar quedar atrapado en el temblor.
Se pueden ajustar varios parámetros y optimizarlos para diferentes mercados.
La lógica de la estrategia es clara y fácil de entender, y es fácil de aprender a usar.
El sistema lineal presenta un retraso y puede perder la oportunidad de una rápida reversión.
La configuración incorrecta de los parámetros de la banda de Bryn puede filtrar las señales de negociación válidas.
La pérdida de vibración es demasiado sensible y puede causar transacciones excesivas.
La falta de optimización de los parámetros puede conducir al riesgo de tenencia de posiciones.
El mercado no puede adaptarse a los cambios drásticos de los eventos de gran importancia.
Se puede probar una combinación lineal promedio de diferentes parámetros para encontrar el mejor parámetro.
Se pueden probar los parámetros de las bandas de Bryn en diferentes períodos para encontrar el mejor efecto de filtración de la oscilación.
Se puede combinar con otros indicadores para confirmar la entrada y mejorar la calidad de la señal.
Se puede introducir una estrategia de stop loss dinámica para que el stop loss siga mejor el mercado.
Se puede combinar la tecnología de aprendizaje automático con parámetros de optimización automática para adaptarse a los cambios en el mercado.
La estrategia integra el sistema de línea de equilibrio, el indicador de la banda de Brin y la tecnología de deterioro de la oscilación, formando un sistema de seguimiento de tendencias relativamente estable. La optimización de los parámetros puede obtener un buen efecto de la estrategia.
/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 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/
// © juanchez
//@version=4
strategy("CHI", overlay = true, close_entries_rule = "ANY")
n = input(title= "highest high o lowest low period", defval= 22)
f= input(title= "multiplicador", defval= 4)
long = highest(high, n) - atr(n)*f
short= lowest(low, n) + atr(n)*f
plot(long, color= color.red)
plot(short, color= color.green)
//moving averages
period= input(title= "moving averages period", defval= 50)
period2= input(title= "moving averages period2", defval= 20)
type= input(title= "moving averages type", options= ["sma", "ema"], defval= "ema")
//moving average function
mo(p, t) =>
if t == "sma"
sma(close[barstate.islast ? 1: 0], p)
else if t== "ema"
ema(close[barstate.islast ? 1: 0], p)
m= mo(period, type)
m2= mo(period2, type)
trend= m2 > m
plot(m, color = color.maroon, linewidth = 3)
plot(m2, linewidth= 3)
//BOLLINGER BANDS ENTRIES
bb1_period= input(title= "Bollinger bands 1 period", defval=40, minval=1)
bb1_source=input(title="Bollinger band 1 source", defval=close)
bb1_multi=input(title="Bollinger Bands 1 factor", defval=2, minval=1, step=0.1)
show_bb1= input(title="Show Bollinger bands 1", defval=false)
//BOLLINGER BANDS
_bb(src, lenght, multi)=>
float moving_avg= sma(src[barstate.islast? 1: 0], lenght)
float deviation= stdev(src[barstate.islast? 1: 0], lenght)
float lowerband = moving_avg - deviation*multi
float upperband = moving_avg + deviation*multi
[moving_avg, lowerband, upperband]
[bb1, lowerband1, upperband1]= _bb(bb1_source, bb1_period, bb1_multi)
//FIRST BAND
plot(show_bb1? bb1 : na, title="BB1 Moving average", linewidth= 3, color= color.fuchsia)
plot(show_bb1? upperband1 : na, title="BB1 Upper Band", linewidth= 3, color= color.green)
plot(show_bb1? lowerband1 : na, title="BB1 Lower Band", linewidth= 3, color= color.red)
//BB's Width threshold
thresh= input(title= "widen %", defval= 9, minval = 0, step = 1, maxval= 100)
widht= (upperband1 - lowerband1)/bb1
roc= change(widht)/widht[1]*100
cross=crossover(roc, thresh)
// entry
//long
elong= input(true, title= "enable long")
longcondition= m2 > m and cross and elong
//short
eshort= input(true, title= "enable short")
shortcondition= m2 < m and cross and eshort
plotshape(longcondition? true: false , location= location.belowbar, style= shape.labelup, size= size.small, color= color.green, text= "Buy", textcolor= color.white)
plotshape(shortcondition? true: false , location= location.abovebar, style= shape.labeldown, size= size.small, color= color.red, text= "Sell", textcolor= color.white)
out= crossunder(close, long)
outt= crossover(close, short)
strategy.entry("long", strategy.long, when = longcondition)
strategy.close("long", when = out)
strategy.entry("short", strategy.short, when = shortcondition)
strategy.close("short", when = outt)