Esta estratégia utiliza Bandas de Bollinger para determinar se o preço entrou na área de sobrecompra e combina o indicador RSI para identificar oportunidades de callback.
A estratégia baseia-se nos seguintes princípios:
Vantagens desta estratégia:
Riscos desta estratégia:
Os riscos podem ser reduzidos ao mínimo:
Esta estratégia pode ser melhorada:
Em resumo, esta é uma estratégia típica de scalping curto rápido e sobrecomprado. Ele capitaliza as Bandas de Bollinger para entradas de negociação e o RSI para filtrar sinais. O risco é gerenciado através de uma colocação prudente de stop loss.
/*backtest start: 2023-11-01 00:00:00 end: 2023-11-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Coinrule strategy("Bollinger Band Below Price with RSI", overlay=true, initial_capital=1000, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=70, commission_type=strategy.commission.percent, commission_value=0.1) showDate = input(defval=true, title='Show Date Range') timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0) notInTrade = strategy.position_size <= 0 //Bollinger Bands Indicator length = input.int(20, minval=1) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev offset = input.int(0, "Offset", minval = -500, maxval = 500) plot(basis, "Basis", color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=#2962FF, offset = offset) p2 = plot(lower, "Lower", color=#2962FF, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) // RSI inputs and calculations lengthRSI = 14 RSI = ta.rsi(close, lengthRSI) // Configure trail stop level with input options longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01 shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01 // Determine trail stop loss prices //longStopPrice = 0.0 shortStopPrice = 0.0 //longStopPrice := if strategy.position_size > 0 //stopValue = close * (1 - longTrailPerc) //math.max(stopValue, longStopPrice[1]) //else //0 shortStopPrice := if strategy.position_size < 0 stopValue = close * (1 + shortTrailPerc) math.min(stopValue, shortStopPrice[1]) else 999999 //Entry and Exit strategy.entry(id="short", direction=strategy.short, when=ta.crossover(close, upper) and RSI < 70 and timePeriod and notInTrade) if (ta.crossover(upper, close) and RSI > 70 and timePeriod) strategy.exit(id='close', limit = shortStopPrice)