
La estrategia de negociación para romper la oscilación de la banda de Brin es una estrategia de negociación cuando el mercado está en un estado de oscilación. La estrategia utiliza el indicador de la banda de Brin para juzgar el estado de oscilación del mercado y emite una señal de negociación cuando el precio toca la banda de Brin y se desvía. A diferencia de la estrategia tradicional de seguimiento de tendencias, la estrategia es más adecuada para un entorno de mercado de ordenamiento horizontal.
La estrategia se basa principalmente en el indicador de las bandas de Brin. Las bandas de Brin se componen de trayectorias medias, altas y bajas. Cuando el precio está cerca de la trayectoria alta o baja, lo que representa un mercado excesivamente optimista o pessimist, es más probable que ocurra una reversión.
Concretamente, la estrategia utiliza primero el indicador DMI para determinar si el mercado está en estado de oscilación. Cuando la diferencia entre + DMI y -DMI es menor que 20, se considera que el mercado está en oscilación horizontal. En esta condición, se hace más cuando el precio sube por la órbita descendente y se vacía cuando el precio baja por la órbita descendente. El punto de parada se establece cerca de la órbita opuesta.
En comparación con la estrategia de seguimiento de tendencias, esta estrategia es más adecuada para un entorno de mercado de oscilación horizontal y no pierde intereses al perseguir una tendencia. En comparación con la estrategia de comercio de oscilación tradicional, esta estrategia utiliza el indicador de la banda de Brin para determinar con mayor precisión la situación de sobrecompra y sobreventa en el mercado, lo que aumenta la probabilidad de entrada.
La estrategia se basa principalmente en el uso de la banda de Brin para determinar la volatilidad del mercado y las situaciones de sobreventa y sobrecompra. Cuando la banda de Brin se dispersa o se contrae de manera irregular, esto puede causar señales erróneas. Además, el punto de parada está cerca y el único punto de parada puede ser más grande.
Se puede considerar la posibilidad de combinar otros indicadores para filtrar las señales de entrada, como el RSI y otros indicadores de la oscilación, para mejorar la precisión de la entrada. Además, es importante optimizar la estrategia de stop loss para evitar un solo gran stop loss. También se puede elegir una variedad de operaciones más adecuada para la estrategia, como las monedas de bajo valor de mercado.
La estrategia en su conjunto es adecuada para mercados convulsivos, y se puede usar cuando la estrategia de tendencia falla. Sin embargo, la eficacia de su dependencia de los indicadores para determinar el estado del mercado todavía tiene espacio para la optimización. Podemos perfeccionar aún más la estrategia a través de combinaciones de múltiples indicadores, administración de fondos, etc., para que su eficacia sea más estable y excelente.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(shorttitle='Sideways Strategy DMI + Bollinger Bands',title='Sideways Strategy DMI + Bollinger Bands (by Coinrule)', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)
// Works on ETHUSD 3h, 1h, 2h, 4h
//Backtest dates
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2021, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 12, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 31, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2022, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true
[pos_dm, neg_dm, adx] = dmi(14, 14)
lengthBB = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthBB)
dev = mult * stdev(src, lengthBB)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
sideways = (abs(pos_dm - neg_dm) < 20)
//Stop_loss= ((input (3))/100)
//Take_profit= ((input (2))/100)
//longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
//longTakeProfit = strategy.position_avg_price * (1 + Take_profit)
//closeLong = close < longStopPrice or close > longTakeProfit or StopRSI
//Entry
strategy.entry(id="long", long = true, when = sideways and (crossover(close, lower)) and window())
//Exit
strategy.close("long", when = (crossunder(close, upper)))