Este es un sistema de negociación de diferencias de divisas basado en bandas de Bollinger. Es adecuado para los principales pares de divisas, con la comisión más baja posible (por debajo de 1 pip) y plazos que van desde 1-15 min.
El sistema utiliza las bandas de Bollinger, los indicadores RSI y ADX para identificar oportunidades comerciales.
Las bandas de Bollinger se utilizan para identificar las rupturas de precios. Ir largo cuando el precio se rompe por encima de la banda superior, ir corto cuando el precio se rompe por debajo de la banda inferior. El RSI se utiliza para evitar las rupturas falsas. Las rupturas se consideran válidas solo cuando el RSI se invierte (cae de la zona de sobrecompra o sube de la zona de sobreventa).
Las reglas específicas de entrada son: entrada larga requiere que el precio rompa por encima de la banda superior, RSI sube desde la zona de sobreventa y cruce la línea 30, ADX por debajo de 32 al mismo tiempo. entrada corta requiere que el precio rompa por debajo de la banda inferior, RSI cae desde la zona de sobrecompra y cruza la línea 70, ADX por debajo de 32 al mismo tiempo.
Las reglas de salida incluyen tomar ganancias/detener pérdidas y la reversión de la línea media. Es decir: Establecer puntos fijos de tomar ganancias/detener pérdidas. Cerrar posición cuando el precio vuelve a la línea media de Bollinger.
El sistema tiene las siguientes ventajas:
Usando bandas de Bollinger para capturar oportunidades de negociación de brechas, que tienen un gran potencial de ganancia.
Combinando el indicador RSI para evitar falsas rupturas y mejorar la probabilidad de ganancia.
Utilizando el indicador ADX para filtrar los mercados sin tendencias claras, evitando operaciones innecesarias.
El cierre en la reversión de la línea media bloquea la mayoría de las ganancias y evita el retroceso de las ganancias.
Adecuado para el comercio de alto apalancamiento, las ganancias se pueden amplificar rápidamente.
También hay algunos riesgos:
No hay ganancias si no hay capturas de brechas.
Los resultados en vivo pueden diferir de los resultados de las pruebas previas.
Duración de la tendencia insuficiente. Las aserraduras pueden causar pérdidas.
Un alto apalancamiento amplifica los riesgos, una sola pérdida puede ser grande.
Las restricciones de tiempo de negociación pueden causar operaciones perdidas.
El sistema puede mejorarse en los siguientes aspectos:
Optimizar los parámetros para mejorar la eficacia del indicador, por ejemplo, el período de Bollinger, los ajustes del RSI, etc.
Añadir o mejorar filtros para aumentar el porcentaje de operaciones ganadoras, por ejemplo, combinando más indicadores o fundamentos.
Optimizar la estrategia de toma de ganancias para maximizar la ganancia por operación, por ejemplo, stop loss de seguimiento, stop loss basado en ATR, etc.
Determinar automáticamente el nivel de apalancamiento adecuado para maximizar el rendimiento esperado.
Utilice técnicas de aprendizaje automático para encontrar parámetros óptimos automáticamente en lugar de la iteración manual.
El sistema de reversión de la brecha de la banda de oro es un sistema típico de ruptura a corto plazo. Su objetivo es capturar ganancias de las brechas de precios. Se utilizan múltiples filtros para mejorar la calidad de las señales. Demuestra una buena rentabilidad en las pruebas de retroceso.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 2h basePeriod: 15m 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/ // © exlux99 //@version=4 strategy("Bollinger Bands, RSI and ADX Trading System", overlay=true) timeinrange(res, sess) => time(res, sess) != 0 timer = color.red //bgcolor(timeinrange(timeframe.period, "0300-0600") or timeinrange(timeframe.period, "0900-1300") or timeinrange(timeframe.period, "2030-2300") ? timer : na, transp=70) //RSI length = input( 20 ) overSold = input( 35 ) overBought = input( 65 ) price = close vrsi = rsi(price, length) co = crossover(vrsi, overSold) cu = crossunder(vrsi, overBought) //if (not na(vrsi)) //BB lengthB = input(60, minval=1) src = input(close, title="Source") mult = input(2.0, minval=0.001, maxval=50, title="StdDev") basis = sma(src, lengthB) dev = mult * stdev(src, lengthB) upper = basis + dev lower = basis - dev //adx adxlen = input(14, title="ADX Smoothing") dilen = input(14, title="DI Length") dirmov(len) => up = change(high) down = -change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = rma(tr, len) plus = fixnan(100 * rma(plusDM, len) / truerange) minus = fixnan(100 * rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) longEntry = close < upper and crossover(vrsi,overSold) and sig < 32 //and (timeinrange(timeframe.period, "0301-0600") or timeinrange(timeframe.period, "0901-1300") or timeinrange(timeframe.period, "2031-2300")) shortEntry = close > upper and crossunder(vrsi,overBought) and sig < 32 //and (timeinrange(timeframe.period, "0301-0600") or timeinrange(timeframe.period, "0901-1300") or timeinrange(timeframe.period, "2031-2300")) tp=input(90, step=10) sl=input(90, step=10) strategy.entry("long",1,when=longEntry) strategy.exit("X_long", "long", profit=tp, loss=sl ) strategy.close("long",when=crossunder(close,basis)) strategy.entry('short',0,when=shortEntry) strategy.exit("x_short", "short",profit=tp, loss=sl) strategy.close("short",when=crossover(close,basis))