Estrategia de compra de la parte inferior con dos indicadores

El autor:¿ Qué pasa?, Fecha: 2024-01-04 17:39:13
Las etiquetas:

img

Resumen general

Esta estrategia identifica oportunidades de compra combinando el volumen de operaciones y los indicadores RSI. Gestiona posiciones utilizando objetivos de ganancias por etapas para obtener ganancias gradualmente. La estrategia funciona bien durante los mercados de rango y puede capturar eficazmente señales de compra recurrentes dentro de pequeños cambios de precios.

Estrategia lógica

La estrategia utiliza dos indicadores para identificar las señales de compra: volumen de operaciones y RSI. Específicamente, se hace largo cuando el volumen supera 2,5 veces el volumen promedio de 70 días, junto con un RSI que cae por debajo de 30 (niveles de sobreventa).

Una vez que se establece una posición larga, la estrategia establece 5 objetivos de ganancias de 0,4%, 0,6%, 0,8%, 1,0% y 1,2%. Cierra posiciones gradualmente en función de la relación de posición (20%, 40%, 60%, 80% y 100%) hasta salir completamente. También se establece un stop loss del 5%.

Al tomar ganancias por etapas, tiene como objetivo bloquear las ganancias en medio de movimientos alcistas menores, en lugar de esperar por carreras más grandes que pueden no materializarse.

Análisis de ventajas

Las principales ventajas de esta estrategia son:

  1. El uso de indicadores duales previene falsas rupturas.

  2. Tomar ganancias en lotes permite maximizar pequeñas capturas al alza dentro de rangos.

  3. Excelencia en los mercados de rango, especialmente los que están atrapados en áreas no terminadas institucionales.

  4. El alto de pérdida permite que los mercados tengan margen para los golpes antes de que se detengan, evitando salir prematuramente de las retrocesos a corto plazo.

Análisis de riesgos

Los principales riesgos son:

  1. Se puede mitigar mediante la optimización de parámetros.

  2. El riesgo de tomar ganancias por etapas es perder grandes movimientos de tendencia debido al pequeño tamaño de las posiciones.

  3. Las paradas amplias conducen a pérdidas potencialmente grandes en una sola operación.

  4. Los mercados con tendencias fuertes plantean riesgos de sesgo direccional.

  5. El uso de corredores de baja comisión es preferible.

Direcciones de optimización

Las posibles direcciones de optimización incluyen:

  1. Optimizando el volumen y las combinaciones de RSI para reducir las señales falsas, agregando confirmaciones como MACD y KDJ.

  2. Prueba diferentes niveles de ganancias y relaciones de posición para configuraciones ideales, potencialmente con mecanismos dinámicos.

  3. Introducción de normas de dimensionamiento de posiciones para reducir el riesgo máximo por operación mediante sistemas de gestión de riesgos.

  4. Incorporar métricas de tendencia para detectar reversiones para detener pérdidas oportunas.

  5. Aprovechando las pruebas de retroceso algorítmicas para iterar rápidamente los parámetros para obtener las mejores configuraciones.

  6. Aprendiendo de los modelos institucionales de control de deslizamiento/coste de las HFT para mejorar la eficiencia a pesar de la alta rotación.

Conclusión

Esta estrategia de reversión media de doble indicador identifica señales de fondo con aumentos de volumen y RSI sobrevendido para comprar, obteniendo ganancias graduales en medio de rangos a través de salidas escalonadas. Se beneficia con frecuencia sin requerir grandes carreras. Las desventajas incluyen riesgos de mala interpretación de la señal y una alta rotación. La optimización de la confirmación y los controles de riesgo / costo mejoran la robustez. Excelente para cosechar ganancias a corto plazo en mercados agitados.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wielkieef

//@version=5

strategy(title='BTFD strategy [3min]', overlay=true, pyramiding=5, 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.03)


// Volume

vol_sma_length = input.int(70, title='Volume lenght  ', minval=1)
Volume_condt = volume > ta.sma(volume, vol_sma_length) * 2.5


// Rsi

rsi_lenght = input.int(20, title='RSI lenght', minval=0)
rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_lenght)
rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_lenght)
rsi_value = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down)

rsi_overs = rsi_value <= 30
rsi_overb = rsi_value >= 70


// logic

tp_1 = input.float(0.4,"  TP 1", minval=0.1, step=0.1)
tp_2 = input.float(0.6,"  TP 2", minval=0.2, step=0.1)
tp_3 = input.float(0.8,"  TP 3", minval=0.3, step=0.1)
tp_4 = input.float(1.0,"  TP 4", minval=0.4, step=0.1)
tp_5 = input.float(1.2,"  TP 5", minval=0.5, step=0.1)

q_1 = input.int(title='  % TP 1 Q ', defval=20,  minval=1, step=10)
q_2 = input.int(title='  % TP 2 Q ', defval=40,  minval=1, step=10)
q_3 = input.int(title='  % TP 3 Q ', defval=60,  minval=1, step=10)
q_4 = input.int(title='  % TP 4 Q ', defval=80,  minval=1, step=10)
q_5 = input.int(title='  % TP 5 Q ', defval=100, minval=1, step=10)

sl = input.float(5.0, '% Stop Loss', step=0.1)

long_cond = Volume_condt and rsi_overs

// this code is from author RafaelZioni, modified by wielkieef
per(procent) =>
    strategy.position_size != 0 ? math.round(procent / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
// --------------------------------------------------------------------------------------------------------------------

if  long_cond
    strategy.entry('BUY', strategy.long)

strategy.exit('TP 1', qty_percent=q_1, profit=per(tp_1), loss=per(sl) )
strategy.exit('TP 2', qty_percent=q_2, profit=per(tp_2), loss=per(sl) )
strategy.exit('TP 3', qty_percent=q_3, profit=per(tp_3), loss=per(sl) )
strategy.exit('TP 4', qty_percent=q_4, profit=per(tp_4), loss=per(sl) )
strategy.exit('TP 5', qty_percent=q_5, profit=per(tp_5), loss=per(sl) )

 
// by wielkieef


Más.