DAKELAX-XRPUSDT es una estrategia de trading bot para XRPUSDT en Binance. Es una simple estrategia inversa a la media utilizando Bandas de Bollinger, y tiene un buen rendimiento en backtest en el marco de tiempo H1 de mayo a agosto de 2019, así como en vivo.
La estrategia primero calcula la SMA de 20 períodos y las bandas de Bollinger superior/inferior. La banda superior es la SMA + 1.5 desviación estándar, y la banda inferior es la SMA - 2.2 desviación estándar. Luego calcula la tasa de contracción de las bandas. Las bandas están llenas de negro si la contracción es > 1.3, amarilla si < 0.1, de lo contrario roja.
Cuando el precio de cierre está por debajo de la banda inferior, se va largo con 20 monedas.
La estrategia también calcula la línea rápida de la EMA de 7 períodos y la línea lenta de la EMA de 18 períodos.
Considere el tamaño dinámico de las posiciones o el stop loss para controlar los riesgos. Optimice la estrategia de cruce para evitar problemas en los mercados variados. Agregue indicadores de tendencia de mayor marco de tiempo para identificar movimientos más grandes.
Ajustar el importe de compra basado en el ancho de banda, menos cuando se contrata y más cuando se amplía
Considere la posibilidad de acumular posiciones cuando la contracción se ve pero la señal no se ha activado todavía
Añadir un indicador de tendencia de plazo más largo para determinar la dirección general, pausar la estrategia cuando no esté clara
Incorporar el stop loss para controlar el riesgo, puede establecer cerca de los mínimos recientes de las bandas
Optimice los parámetros de cruce como los períodos de EMA para evitar quedar atrapado
DAKELAX-XRPUSDT es una estrategia de bot de negociación que utiliza la contracción de la banda de Bollinger con el cruce de la EMA. Es intuitiva y tiene buenos resultados de backtest, pero contiene algunos riesgos. Estos pueden reducirse mediante el tamaño de la posición, la estrategia de parada, la adición de stop loss y la optimización de la lógica de cruce. En general, proporciona un ejemplo claro de una estrategia de banda de Bollinger, pero requiere optimización específica de pares para obtener ganancias estables en vivo.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //study(title="Tradebotler DAKELAX Binance:XRPUSDT Study-strategy", overlay=true) strategy(title="Tradebotler DAKELAX Binance:XRPUSDT Strategy", overlay=true) buyAmount = input(20, minval=1) // SMA20 len2 = input(20, minval=1) src2 = input(close) out2 = sma(src2, len2) // BB contraction value (medium tight) contraction_value = 1.3 // BB contraction value (very tight) contraction_value2 = 0.1 // 2xSTDEV BB calculation dev = stdev(src2, len2) upper_BB = out2 + 1.5*dev lower_BB = out2 - 2.2*dev x1 = plot(upper_BB, color=blue, linewidth = 2) x2 = plot(lower_BB, color=blue, linewidth = 2) contraction = (upper_BB-lower_BB)/out2 //fills the BBands according to the contraction value (threshold) // Calculate values fastMA = ema(close, 7) slowMA = ema(close, 18) // Determine alert setups crossUp = crossover(fastMA, slowMA) crossDown = crossunder(fastMA, slowMA) buySignal = (crossUp or crossUp[1]) and (low > slowMA) shortSignal = (crossDown or crossDown[1]) and (high < slowMA) // Highlight alerts on the chart bgColour = (buySignal and barstate.isrealtime) ? green : (shortSignal and barstate.isrealtime) ? red : na signalBuy = (buySignal ) ? true : false signalSell = (shortSignal ) ? true : false test = true test := not test[1] closesBelowLowerBB = close < lower_BB closesAboveUpperBB = close > upper_BB tmptext = "blah" // Plot values plot(series=fastMA, color=teal) plot(series=slowMA, color=orange) plot(out2, color=black, linewidth = 1) fill(x1, x2, color = contraction > contraction_value ? black : contraction < contraction_value2 ? yellow: red) isInRed = contraction < contraction_value and contraction >= contraction_value2 isInYellow = contraction < contraction_value and contraction < contraction_value2 if ( closesBelowLowerBB ) strategy.order('Buy', strategy.long, buyAmount) if ( closesAboveUpperBB ) strategy.close_all()