
La estrategia se basa en el trayecto ascendente y descendente de la banda de Brin, y determina que el precio hace más cuando se rompe la banda de Brin en el trayecto ascendente, y hace menos cuando se rompe el trayecto descendente, y pertenece al tipo de estrategia de seguimiento de tendencias.
La estrategia utiliza el medio, el alto y el bajo de la banda de Brin para determinar el rango de precios extremos. El medio es una simple media móvil de los precios de cierre de los últimos 25 períodos, y el alto y el bajo es la distancia a la siguiente diferencia estándar en la línea del medio. Cuando el precio cruza por debajo de la línea superior o por debajo de la línea inferior, indica que el precio ha tenido una ruptura, pertenece a un comportamiento de precios anormal, en el que se pueden tomar decisiones comerciales.
Si el precio está por debajo de la línea descendente, compra más; si el precio está por encima de la línea ascendente, vende sin ganancias. En el caso de hacer más, configure la línea de parada como el precio de entrada por el factor de parada, y la línea de parada como el precio de entrada por el factor de parada.
La estrategia también incluye algunas reglas auxiliares, como que solo se permita emitir una señal en 24 horas para evitar transacciones innecesarias.
Medidas de control de riesgos:
La estrategia en su conjunto es una estrategia de seguimiento de tendencias sencilla, que utiliza bandas de Brin para determinar las anomalías de precios y seguir la tendencia. Hay espacio para la optimización de los parámetros, el control de riesgos y la filtración de señales, pero la idea central es simple y clara, adecuada para el aprendizaje de la estrategia.
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("I11L OIL Bot",overlay=true, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00)
leverage = input.float(1,"Leverage (x)",step=1)
SL_Factor = 1 - input.float(1,"Risk Capital per Trade (%)", minval=0.1, maxval=100, step=0.05) / 100 / leverage
TP_Factor = input.float(2, step=0.1)
invertBuyLogic = input.bool(false)
lookbackDistance = input.int(25)
devMult = input.float(2,step=0.1)
var lastSellHour = 0
var disableAdditionalBuysThisDay = false
if(time > lastSellHour + 1000 * 60 * 60 * 6)
disableAdditionalBuysThisDay := false
if(strategy.position_size != strategy.position_size[1])
disableAdditionalBuysThisDay := true
lastSellHour := time
source = close
//Trade Logic
basis = ta.sma(source, lookbackDistance)
dev = devMult * ta.stdev(source, lookbackDistance)
upper = basis + dev
lower = basis - dev
isBuy = ta.crossunder(source, upper)
isBuyInverted = ta.crossover(source, lower)
plot(upper, color=color.white)
plot(lower, color=color.white)
strategy.initial_capital = 50000
if((invertBuyLogic ? isBuyInverted : isBuy) and not(disableAdditionalBuysThisDay))
strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage)
if(strategy.position_size > 0)
strategy.exit("SL Long", "Long", stop=strategy.position_avg_price * SL_Factor)
strategy.close("Long", when=close > strategy.position_avg_price * (1 + (1 - SL_Factor) * TP_Factor), comment="TP Long")