
La estrategia tiene como objetivo utilizar la combinación de la banda de Bryn (BB), la media móvil (MA) y el índice relativamente fuerte (RSI) para capturar la fluctuación de los precios en el corto plazo y, por lo tanto, realizar operaciones multitrápico. La estrategia realiza una entrada multitrápico cuando los precios están por encima de la media móvil y la media móvil y el indicador RSI muestra un estado de sobreventa. La estrategia gestiona el riesgo y bloquea las ganancias mediante el porcentaje de stop loss y stop loss, y ajusta el precio de entrada según el nivel de la cuenta de Bybit del comerciante para tener en cuenta el impacto de las comisiones.
La estrategia se basa en los siguientes principios:
La estrategia combina estos tres indicadores para entrar en el mercado cuando se cree que el mercado puede tener oportunidades de alza cuando el precio rompe la banda de Brin y se encuentra por encima de la media móvil, y el RSI está en la zona de sobreventa. Al mismo tiempo, la estrategia establece precios de stop loss y stop loss para controlar el riesgo y bloquear las ganancias.
La estrategia utiliza una combinación de bandas de bucle, promedios móviles y RSI para identificar oportunidades de negociación de corto plazo. Determina tendencias a través de bandas de bucle y promedios móviles, utiliza el RSI para identificar sobreventa y establece un stop loss para administrar el riesgo. La estrategia tiene en cuenta el impacto de las comisiones y se ajusta según el nivel de la cuenta de Bybit del comerciante.
/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@BryanAaron
//@version=5
strategy("Bybit . BB Short-Term Trading Strategy - Long Only", overlay=true)
// Input parameters
bbLength = input(45, title="BB Length")
bbMultiplier = input(1.0, title="BB Multiplier")
maLength = input(90, title="MA Length")
rsiLength = input(5, title="RSI Length")
rsiUpperThreshold = input(85, title="RSI Upper Threshold")
rsiLowerThreshold = input(45, title="RSI Lower Threshold")
slPerc = input(2.0, title="Stop Loss %")
tpPerc = input(4.0, title="Take Profit %")
bybitAccountLevel = input.string("VIP 0", title="Bybit Account Level", options=["VIP 0", "VIP 1", "VIP 2", "VIP 3", "VIP 4"])
// Calculate Bollinger Bands
[bbMiddle, bbUpper, bbLower] = ta.bb(close, bbLength, bbMultiplier)
// Calculate moving average
ma = ta.sma(close, maLength)
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Trading conditions
longCondition = close > bbUpper and close > ma and rsi < rsiLowerThreshold
shortCondition = close < bbLower and close < ma and rsi > rsiUpperThreshold
// Entry and exit signals
var bool longEntry = false
var bool shortEntry = false
if (longCondition and not longEntry)
longEntry := true
shortEntry := false
else if (shortCondition and not shortEntry)
shortEntry := true
longEntry := false
else if (not longCondition and not shortCondition)
longEntry := false
shortEntry := false
// Set commission based on Bybit account level
commissionPerc = switch bybitAccountLevel
"VIP 0" => 0.075
"VIP 1" => 0.065
"VIP 2" => 0.055
"VIP 3" => 0.045
"VIP 4" => 0.035
=> 0.075
// Adjust entry prices based on commission
longEntryPrice = close * (1 + commissionPerc / 100)
shortEntryPrice = close * (1 - commissionPerc / 100)
// Calculate stop loss and take profit prices
longStopPrice = longEntryPrice * (1 - slPerc / 100)
longProfitPrice = longEntryPrice * (1 + tpPerc / 100)
shortStopPrice = shortEntryPrice * (1 + slPerc / 100)
shortProfitPrice = shortEntryPrice * (1 - tpPerc / 100)
// Plot signals
plotshape(longEntry, title="Long Entry", location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green)
plotshape(shortEntry, title="Short Entry", location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red)
// Entry and exit
if (longEntry)
strategy.entry("Long", strategy.long, limit=longEntryPrice, stop=longStopPrice, comment="Long Entry")
strategy.exit("Long TP/SL", from_entry="Long", limit=longProfitPrice, stop=longStopPrice, comment="Long Exit")
else if (shortEntry)
strategy.entry("Short", strategy.short, limit=shortEntryPrice, stop=shortStopPrice, comment="Short Entry")
strategy.exit("Short TP/SL", from_entry="Short", limit=shortProfitPrice, stop=shortStopPrice, comment="Short Exit")
else
strategy.close_all(comment="Close All")
// Plot Bollinger Bands
plot(bbUpper, color=color.blue, title="BB Upper")
plot(bbMiddle, color=color.orange, title="BB Middle")
plot(bbLower, color=color.blue, title="BB Lower")
// Plot moving average
plot(ma, color=color.purple, title="MA")