Estrategia de rotación de impulso de múltiples factores

El autor:¿ Qué pasa?, Fecha: 2023-10-25 11:52:19
Las etiquetas:

img

Resumen general

Esta estrategia combina RSI, MACD, Bandas de Bollinger y limita los factores de subida/baja para implementar el comercio de rotación de impulso de múltiples factores. La estrategia primero juzga si múltiples indicadores técnicos dan señales de compra o venta simultáneamente. Si es así, se ejecutarán las operaciones de compra o venta correspondientes. Mientras tanto, la estrategia adopta stop profit y stop loss móviles para bloquear ganancias y controlar riesgos.

Estrategia lógica

Los principales componentes de esta estrategia son:

  1. Juicio por factores

    • RSI: Calcule el RSI de 14 períodos y juzgue si es inferior a la línea de compra o superior a la línea de venta
    • Secuencia TD: Calcular el número de días límite de subida/baja y juzgar si cumple las condiciones de compra/venta
    • MACD: Calcula el MACD y el histograma MACD para juzgar las condiciones de compra/venta
    • Bandas de Bollinger: Calcular las BB de 20 períodos y juzgar si el precio toca la banda superior o inferior de las BB
  2. Entrada y salida

    • Condición de compra: RSI, MACD, TD Secuencia dan señales de compra juntos
    • Condición de venta: RSI, MACD, TD Secuencia dan señales de venta juntos
    • Stop profit: utilizar puntos fijos o porcentajes como stop profit de seguimiento
    • Stop loss: establecer los puntos máximos de pérdida tolerados para el stop loss.
  3. Optimización de la estrategia

    • Ajustar los parámetros del RSI: optimizar el parámetro del período del RSI
    • Ajuste del período de MA: Optimización del parámetro del período de las medias móviles
    • Ajustar las condiciones de entrada: añadir o reducir las señales de entrada
    • Añadir otros factores: incorporar más indicadores técnicos y factores estadísticos

Análisis de ventajas

  • Varios factores mejoran la precisión de la entrada

    La estrategia considera múltiples factores como el RSI y el MACD en lugar de un solo indicador. Esto reduce las señales falsas y mejora la precisión de entrada.

  • La característica de impulso capta las tendencias

    Los indicadores como el RSI y el MACD tienen una característica de impulso obvia, que captan los cambios de tendencia de precios.

  • El mecanismo de detención de pérdidas y ganancias controla los riesgos

    El movimiento del stop profit puede bloquear las ganancias de forma dinámica siguiendo el mercado.

  • Una lógica sencilla y clara

    La estrategia combina indicadores técnicos comunes y tiene una cierta universalidad.

Análisis de riesgos

  • Desempeño deficiente en el mercado alcista

    La estrategia se centra en el comercio de reversión media, que puede desencadenar frecuentes pérdidas de parada en un mercado alcista.

  • Frecuencia de operaciones potencialmente demasiado alta

    Si los parámetros se establecen con demasiada sensibilidad, la frecuencia de negociación puede ser demasiado alta, aumentando los costes y el deslizamiento.

  • Riesgo de divergencia entre indicadores

    La estrategia se basa en señales consistentes en todos los indicadores, pero a veces pueden ocurrir divergencias, lo que resulta en señales incorrectas.

  • Pérdida de parada de penetración

    Los puntos de stop loss fijos pueden ser penetrados, y el cambio de stock o stop loss dinámico puede ayudar a evitar este riesgo.

Direcciones de optimización

  • Optimizar los parámetros para reducir la frecuencia de las operaciones

    Los parámetros de RSI y los períodos de MA se analizarán para encontrar combinaciones con una menor frecuencia de negociación.

  • Añadir factores estadísticos para mejorar la eficiencia

    Incorporar estadísticas específicas de las acciones como la volatilidad y la liquidez para establecer parámetros y mejorar la eficiencia.

  • Combinar indicadores de nivel de mercado como el VIX

    Ajustar los parámetros de estrategia basados en indicadores de pánico del mercado como VIX para reducir la frecuencia de las operaciones durante los crashes en todo el mercado.

  • Prueba de diferentes períodos de retención

    Prueba la tenencia a largo plazo frente a la rotación a corto plazo para ver su impacto en el rendimiento de la estrategia.

  • Optimizar y probar el stop profit/loss

    Investigue técnicas de stop-profit/pérdida dinámicas más avanzadas y pruebelas.

Resumen de las actividades

Esta estrategia combina múltiples indicadores técnicos y adopta stop profit/loss móvil para bloquear las ganancias y controlar los riesgos al tiempo que garantiza una alta precisión de entrada. La lógica es simple y clara. El rendimiento se puede mejorar aún más a través de la optimización de parámetros y la selección de indicadores.


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("RSI, TD Seq, MACD, BB Strategy - Calculation Trailing Profit",overlay=true)


RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference") 


TD = close > close[4] ?nz(TD[1])+1:0
TS = close < close[4] ?nz(TS[1])+1:0
TDUp = TD - valuewhen(TD < TD[1], TD , 1 )
TDDn = TS - valuewhen(TS < TS[1], TS , 1 )
TDcheckUP = iff(TD == 2, true, false)
TDCheckDOWN = iff(TS == 2, true, false)

[_, _, histLine] = macd(close, 12, 26, 9)
MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0  and histLine[4] > 0, true, false)
MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false)

RSICal = rsi(close, 14)
RSICalNewUp = 50 + RSIDifference
RSICalNewDown = 50 - RSIDifference
RSICheckUp = iff(RSICal <= RSICalNewUp, true, false)
RSICheckDown = iff(RSICal >= RSICalNewDown, true, false)

basis = sma(close, 20)
dev = 2 * stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
BBCheckUp = iff(close > upperBB, true, false)
BBCheckDown = iff(close < lowerBB, true, false)
//BBCheckUp = false
//BBCheckDown = false


BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false)
SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false)


ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5) 
ProfitTrailingA = input(10, minval=0, maxval=10000, title="Profit", step=0.5) 
useStopLoss = input(false, title="Use Stop Loss?")
LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5) 
colB = input(100, minval=0, maxval=100, title="0-show / 100-hide Strategy", step=100) 

ProfitStrat = ProfitStratA * 10
ProfitTrailing = ProfitTrailingA * 10
Lossstrat = useStopLoss ? LossstratA * 10 : 1000000

if (strategy.position_size > 0)
    strategy.exit("BuyClose", "Buy", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
    
    
if (strategy.position_size < 0)   
    strategy.exit("SellClose", "Sell", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat) 
    

if (BuyCheck == true and strategy.position_size == 0)
    strategy.entry("Buy", strategy.long, comment="Long Entry")
    


if (SellCheck == true and strategy.position_size == 0)
    strategy.entry("Sell", strategy.short, comment="Short Entry")
    


plotshape(BuyCheck, color=blue, transp=colB, style=shape.arrowup, text="Buy\n", location=location.belowbar)
plotshape(SellCheck, color=orange, transp=colB, style=shape.arrowdown, text="Sell\n", location=location.abovebar)













Más.