
Esta estrategia se basa en el indicador de la banda de Brin, combinado con el indicador de la dinámica, una estrategia de negociación combinada para lograr la regresión de la banda de Brin y la ruptura de la dinámica. Haga más cuando el precio rompa la línea media desde debajo de la banda de Brin, haga un descuento cuando el precio rompa la línea media desde arriba de la banda de Brin, y rastree las paradas de pérdidas y pérdidas, y luego aplanar la posición para alcanzar el objetivo de pérdidas y ganancias.
Esta estrategia utiliza la esma de la banda central de Bryn como indicador de la línea media, y la ancho de banda a través del parámetro mult*stdev ajuste dinámico. Cuando el precio rompe la línea media desde abajo, indica que el precio obtiene un movimiento hacia arriba, y hace más; cuando el precio rompe la línea media desde arriba, indica que el precio obtiene un movimiento hacia abajo, y hace vacío.
Concretamente, el cálculo de la banda de Brin se realiza a través de los dos parámetros length y mult, donde length determina el ciclo de la línea media, y mult determina el tamaño de la banda ancha. EnterLong y enterShort determinan el momento de la ruptura, y exitLong y exitShort calculan el precio de parada de pérdida en función del precio de entrada y la proporción de parada de meta.
Esta estrategia combina la regresión de la línea media y el indicador de movimiento, lo que permite capturar una mayor cantidad de movimiento en la fase inicial de la tendencia. En comparación con el simple seguimiento de la línea media, se agrega un juicio de movimiento basado en el ancho de banda de Brin, que puede filtrar algunas falsas rupturas. La configuración de stop loss se basa directamente en el cálculo del precio de entrada, sin intervención humana.
Se puede optimizar mediante la adaptación del ciclo de la línea media de Brin, los parámetros de ancho de banda y el margen de parada para que la estrategia se adapte mejor a las diferentes condiciones del mercado.
Esta estrategia integra las ventajas de la regresión de la banda de Brin y el indicador de la dinámica, puede capturar de manera progresiva parte de la situación cuando comienza la tendencia, puede adaptarse a diferentes etapas del mercado a través de ajustes de parámetros, es un sistema de ruptura más general. La configuración de stop loss directamente desde el cálculo del precio puede reducir la intervención manual.
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("BURATINO", overlay=true)
// Входные параметры
length = input(20, minval=1, title="Length")
mult = input(2.0, minval=0.1, maxval=5, title="Multiplier")
target_percent = input(0.5, minval=0.1, title="Target Percent")
stop_loss_percent = input(95, minval=0.1, title="Stop Loss Percent")
// Расчет полос Боллинджера
basis = sma(close, length)
dev = mult * stdev(close, length)
upper = basis + dev
lower = basis - dev
// Переворот снизу вверх через среднюю линию Боллинджера для открытия лонга
enterLong = cross(close, basis) and close[1] < basis[1]
// Переворот сверху вниз через среднюю линию Боллинджера для открытия шорта
enterShort = cross(basis, close) and close[1] > basis[1]
// Закрытие лонга после роста цены на указанный процент или падения на указанный процент
exitLong = close >= strategy.position_avg_price * (1 + (target_percent / 100)) or close <= strategy.position_avg_price * (1 - (stop_loss_percent / 100))
// Закрытие шорта после падения цены на указанный процент или роста на указанный процент
exitShort = close <= strategy.position_avg_price * (1 - (target_percent / 100)) or close >= strategy.position_avg_price * (1 + (stop_loss_percent / 100))
// Управление позициями и ограничениями на открытие противоположных позиций
strategy.entry("Long", strategy.long, when = enterLong and strategy.position_size == 0)
strategy.entry("Short", strategy.short, when = enterShort and strategy.position_size == 0)
strategy.close("Long", when = exitLong)
strategy.close("Short", when = exitShort)
// Визуализация полос Боллинджера
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper")
plot(lower, color=color.green, title="Lower")