Estrategia de rotación de impulso multifactorial


Fecha de creación: 2023-10-25 11:52:19 Última modificación: 2023-10-25 11:52:19
Copiar: 0 Número de Visitas: 754
1
Seguir
1617
Seguidores

Estrategia de rotación de impulso multifactorial

Descripción general

La estrategia utiliza el RSI, el MACD promedio, las bandas de Brin y los factores de parada de la barra para realizar operaciones rotativas de dinámica de múltiples factores. La estrategia primero determina si varios indicadores técnicos emiten señales de compra o venta al mismo tiempo, y si lo hacen, realiza la operación de compra o venta correspondiente.

Principio de estrategia

La estrategia incluye las siguientes partes:

  1. El factor de juicio

    • RSI: Calcula el RSI de 14 ciclos para determinar si está por debajo de la línea de compra o por encima de la línea de venta establecida
    • Secuencia TD: calcula el número de días en los que se detuvo la tendencia de las acciones, para determinar si se cumplen las condiciones de compra y venta
    • MACD: calcula el MACD y el MACD histórico para determinar si se cumplen las condiciones de compra y venta
    • Brines: Calcula el Brines de los 20 días para determinar si el precio ha tocado el Brines
  2. Entrada y salida

    • Condiciones de compra: se compra cuando la secuencia RSI, MACD y TD emiten una señal de compra al mismo tiempo
    • Condiciones de venta: se vende cuando la secuencia RSI, MACD y TD emiten señales de venta al mismo tiempo
    • Detener: detener móvil con un número fijo de puntos o porcentaje
    • Detener el daño: establecer el máximo punto de tolerancia de la pérdida y detener el daño
  3. Optimización de la estrategia

    • Ajuste de los parámetros del RSI: los parámetros del ciclo para optimizar el RSI
    • Ajuste del ciclo MA: el parámetro de ciclo de la línea media optimizada
    • Ajuste de las condiciones de entrada: aumento o disminución de la señal de entrada
    • Aumentar otros factores: combinar más indicadores técnicos y estadísticos

Análisis de las ventajas estratégicas

  • Combinación de múltiples factores para asegurar la precisión de la entrada

Esta estrategia no solo considera un solo indicador técnico, sino que combina varios factores, como el RSI, el MACD y la secuencia TD, para reducir las falsas señales causadas por un solo indicador y mejorar la precisión de la entrada.

  • Características de la dinámica y la captura de tendencias

Indicadores como el RSI, el MACD y otros tienen características de movimiento más evidentes y pueden capturar cambios en la tendencia de los precios de las acciones. En comparación con indicadores de seguimiento de tendencias como la línea media, estos indicadores son más sensibles a la inversión.

  • Mecanismos de detención de pérdidas y control de riesgos

El stop móvil puede detenerse con el movimiento del movimiento y bloquear mejor las ganancias. La configuración de stop loss puede controlar las pérdidas individuales.

  • La estrategia es clara y simple.

Esta estrategia, combinada con indicadores técnicos comunes, tiene cierta universalidad. Las reglas son relativamente simples, claras, fáciles de entender y manejar.

Análisis de riesgos estratégicos

  • La mayoría de los gobiernos no son efectivos.

Esta estrategia se basa en la manipulación inversa del mercado y es una estrategia inversa. En un mercado alcista, la adopción de esta estrategia puede tener un alto de pérdidas frecuentes y un bajo rendimiento.

  • La frecuencia de las transacciones puede ser demasiado alta

Si los parámetros son demasiado sensibles, la frecuencia de las transacciones puede ser demasiado alta, lo que aumenta los costos de las transacciones y la pérdida de puntos de deslizamiento.

  • Indicadores de riesgo disperso

Esta estrategia se basa en señales de la misma dirección de varios indicadores, pero a veces los indicadores también pueden discrepar, lo que emite una señal errónea.

  • La pérdida de pérdidas se corre el riesgo

El establecimiento de puntos de parada fijos puede ser superado, se puede establecer un cierre dinámico o considerar el cambio de acciones para evitar este riesgo.

Dirección de optimización de la estrategia

  • Optimización de parámetros y reducción de la frecuencia de las transacciones

Se pueden probar los parámetros del RSI y los parámetros del ciclo de la línea media para encontrar combinaciones de menor frecuencia de negociación.

  • Aumentar el factor estadístico y la eficiencia

Se pueden establecer parámetros que mejoran la eficiencia de la estrategia combinando las propiedades estadísticas de las acciones, como la volatilidad, la liquidez, etc.

  • Indicadores de todo el mercado como VIX

Los parámetros de la estrategia se pueden ajustar en función de los índices de pánico de todo el mercado, como VIX, para reducir la frecuencia de las operaciones en el momento del pánico en el mercado.

  • Prueba de diferentes tiempos de tenencia

Se pueden probar diferentes períodos de tenencia para determinar el impacto de la tenencia a largo plazo o la rotación a corto plazo en la eficacia de la estrategia.

  • Optimización y prueba de las estrategias de stop loss

Se puede estudiar un método más avanzado de detener el deterioro de la frenada dinámica, para medir el efecto.

Resumir

Esta estrategia tiene en cuenta una amplia gama de indicadores técnicos, y utiliza paros y pérdidas móviles para bloquear los beneficios y controlar el riesgo, a fin de garantizar una mayor precisión de entrada. La estrategia es simple y clara, fácil de entender.

Código Fuente de la Estrategia
/*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)