Esta es una estrategia de trading de robot BTC de multi-nivel para tomar ganancias. Entra en posiciones largas encontrando el punto más bajo y establece múltiples puntos de toma de ganancias para salidas de lotes. También establece un punto de stop loss para controlar el riesgo. Esta estrategia es adecuada cuando se es alcista en BTC.
Encuentra señales de entrada: genera señales de compra cuando el indicador CC cruza por debajo de 0, compra posiciones largas en este punto.
Establecer el stop loss: establecer el porcentaje de stop loss a través de la entrada, convertirlo a nivel de precio para el stop loss.
Establecer múltiples puntos de ganancia: 4 puntos de salida, establecer el porcentaje de ganancia para cada punto a través de la entrada, convertir a los niveles de precios.
Control del riesgo: establecer el tamaño máximo de la posición, establecer el porcentaje de salida para cada punto de salida a través de la entrada para la dispersión del riesgo.
Las ventajas de esta estrategia son:
Una señal de entrada confiable comprando en el punto más bajo, evitando comprar en los máximos.
Las ganancias de múltiples niveles se bloquean en ganancias parciales mientras se mantienen algunas ganancias en funcionamiento.
El stop loss controla el riesgo y limita las pérdidas a un cierto rango.
Las salidas por lotes dispersan los riesgos, evitando pérdidas completas a la vez.
El descenso puede controlarse hasta cierto punto.
Los riesgos de esta estrategia son:
El indicador CC no puede garantizar completamente el punto más bajo, puede perder oportunidades de compra.
La configuración incorrecta de la pérdida de parada puede causar pérdidas de parada innecesarias.
Las salidas de lotes incorrectas también pueden conducir a pérdidas de beneficios.
Es más difícil obtener ganancias en mercados variados.
Puede ser difícil detener las pérdidas en reversos bruscos.
Optimizaciones potenciales:
Optimice las señales de entrada con más indicadores o aprendizaje automático para un mejor tiempo.
Optimizar la estrategia de stop loss para hacerla más elástica frente a los movimientos del mercado.
Optimizar las salidas para una mejor adaptación en los mercados variados y de tendencia.
Agregue paradas de trailing para obtener ganancias más flexibles.
Prueba diferentes activos para los mejores conjuntos de parámetros.
En resumen, esta es una estrategia de negociación de BTC basada en comprar en los puntos más bajos con ganancias de toma de múltiples niveles y stop loss. Tiene ciertas ventajas y también áreas que se pueden mejorar.
/*backtest start: 2023-09-17 00:00:00 end: 2023-10-17 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] args: [["v_input_1",2]] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © RafaelZioni // © theCrypster 2020 //@version=4 // strategy(title = "BTC bot", overlay = true, pyramiding=1,initial_capital = 10000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075) strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"]) strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all strategy.risk.allow_entry_in(strat_dir_value) //INPUTS higherTF = input("W", type=input.resolution) pc = security(syminfo.tickerid, higherTF, close[1], lookahead=true) ph = security(syminfo.tickerid, higherTF, high[1], lookahead=true) pl = security(syminfo.tickerid, higherTF, low[1], lookahead=true) PP = 0.0,R1 = 0.0, R2 = 0.0, R3 = 0.0,S1 = 0.0, S2 = 0.0, S3 = 0.0 PP := (ph + pl + pc) / 3 R1 := PP + (PP - pl) S1 := PP - (ph - PP) R2 := PP + (ph - pl) S2 := PP - (ph - pl) factor=input(2) R3 := ph + factor * (PP - pl) S3 := pl - 2 * (ph - PP) // length=input(21) // p = close vrsi = rsi(p, length) pp=ema(vrsi,length) d=(vrsi-pp)*5 cc=(vrsi+d+pp)/2 // low1=crossover(cc,0) sell=crossover(close[1],R3) // l = low1 s=sell if l strategy.entry("buy", strategy.long) if s strategy.entry("sell", strategy.short) per(pcnt) => strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na) stoploss=input(title=" stop loss", defval=15, minval=0.01) los = per(stoploss) q1=input(title=" qty_percent1", defval=25, minval=1) q2=input(title=" qty_percent2", defval=25, minval=1) q3=input(title=" qty_percent3", defval=25, minval=1) tp1=input(title=" Take profit1", defval=3, minval=0.01) tp2=input(title=" Take profit2", defval=5, minval=0.01) tp3=input(title=" Take profit3", defval=7, minval=0.01) tp4=input(title=" Take profit4", defval=10, minval=0.01) strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los) strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los) strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los) strategy.exit("x4", profit = per(tp4), loss = los)