Estrategia de trading con retrocesos de Fibonacci y RSI


Fecha de creación: 2023-12-27 16:49:52 Última modificación: 2023-12-27 16:49:52
Copiar: 3 Número de Visitas: 1189
1
Seguir
1623
Seguidores

Estrategia de trading con retrocesos de Fibonacci y RSI

Descripción general

Este artículo describe principalmente una estrategia de negociación que combina un índice relativamente fuerte (el RSI) con un punto de inflexión de Fibonacci. La estrategia primero calcula un punto de inflexión de Fibonacci clave en función de la dinámica histórica de los precios en un período determinado, y luego combina el RSI para determinar si el mercado está sobrecomprando y sobrevendendo, y emite una señal de negociación cerca del punto de inflexión.

Principio de estrategia

La estrategia se basa principalmente en los siguientes principios:

  1. Utiliza datos de precios de un período determinado (por ejemplo, 200 K-líneas) para calcular el promedio de precios, la diferencia estándar y el punto de inflexión de Fibonacci clave (por ejemplo, 0.764) de ese período;

  2. Cuando el precio se acerca a una reversión superior o inferior, el indicador RSI determina si la zona de reversión está sobrecomprada o sobrevendida;

  3. Si el indicador RSI muestra una señal de sobrecompra o sobreventa, emite una señal de sobreventa o baja cerca de la posición de retorno;

  4. Se establecen niveles de stop loss y stop-loss, y se cancela la posición cuando se supera el precio establecido o se activa el stop loss.

Esto es el proceso básico para que la estrategia determine el momento de la operación.

Análisis de las ventajas estratégicas

La combinación de estrategias tiene las siguientes ventajas en comparación con el uso de RSI o Fibonacci para operar solo:

  1. Filtración de doble indicador, que reduce las señales falsas y mejora la calidad de la señal;

  2. La inversión de los precios de las acciones es un método más clásico de análisis técnico.

  3. El control de pérdidas máximas de una sola operación se puede controlar eficazmente con el establecimiento de un Stop Loss.

  4. Se puede optimizar los parámetros, ajustar los parámetros indicadores y la configuración de la marcha atrás para adaptarse a diferentes períodos y variedades.

Análisis de riesgos estratégicos

La estrategia también tiene ciertos riesgos a tener en cuenta:

  1. La probabilidad de rebotar después de que el punto de inflexión clave se acerque no es del 100%, y se requiere combinar el juicio de la entidad de precios;

  2. El RSI de un solo ciclo puede generar falsas señales de un rebote agonizante y se puede considerar la verificación de varios ciclos;

  3. Los puntos de parálisis están configurados con demasiada flexibilidad, lo que puede aumentar las pérdidas.

  4. Cuando el precio de la ficha oscila fuertemente, el stop loss puede ser superado y se debe considerar la posibilidad de relajar el stop loss.

Estos riesgos pueden ser controlados por medio de ajustes de parámetros, combinaciones de indicadores de optimización, etc.

Dirección de optimización de la estrategia

Las áreas en las que la estrategia puede ser mejorada son:

  1. Incrementar la verificación de los indicadores de transacción para evitar falsos brechas en las bajas cantidades;

  2. Tenga en cuenta los indicadores de la banda de Bryn y emita una señal en caso de ruptura de la banda.

  3. Construir modelos de aprendizaje automático o de redes neuronales para identificar automáticamente oportunidades de comercio de alta calidad;

  4. Utiliza métodos como algoritmos genéticos para optimizar automáticamente los parámetros y ajustar el punto de parada de stop loss.

Resumir

Este artículo detalla una estrategia de trading cuantitativa que combina el RSI y el retorno de Fibonacci para juzgar. Esta estrategia combina el análisis de doble indicador con la estrategia técnica clásica para mejorar la calidad de la señal de trading, con la premisa de controlar el riesgo.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Gab Fib  + RSI", overlay=true, default_qty_type=strategy.cash, default_qty_value=100000, initial_capital=1000, currency=currency.USD, commission_type=strategy.commission.cash_per_order, commission_value=4)

// Inputs
timeFilter = year >= 2000
    // Stop Loss 
stop_loss = input(title="SL in % of Instrum. i.e 1.5%=150pips", minval=0, step=0.1, defval=1.5) /100
    // RSI Inputs
len = input(title="[RSI] Length", minval=0, step=1, defval=14)
overSold = input(title="[RSI] Over Sold %", defval=30)
overBought = input(title="[RSI] Over Bought %", defval=70)
    // Fibonacci Levels
length = input(title="[Fibonacci] Length", defval=200, minval=1)
src = input(hlc3, title="[Fibonacci] Source")
mult = input(title="[Fibonacci] Multiplier", defval=3.0, minval=0.001, maxval=50)
level = input(title="[Fibonacci] Level", defval=764)


// Calculate Fibonacci
basis = vwma(src, length)
dev = mult * stdev(src, length)
fu764= basis + (0.001*level*dev)
fu1= basis + (1*dev)
fd764= basis - (0.001*level*dev)
fd1= basis - (1*dev)

// Calculate RSI
vrsi = rsi(close, len)

// Calculate the Targets
targetUp = fd764
targetDown = fu764
    // Actual Targets
bought = strategy.position_size[0] > strategy.position_size[1]
exit_long = valuewhen(bought, targetUp, 0)
sold = strategy.position_size[0] < strategy.position_size[1]
exit_short = valuewhen(sold, targetDown, 0)

// Calculate Stop Losses
sl_long = close * (1-stop_loss)
sl_short = close * (1+stop_loss)


// Conditions to Open Trades
openLong = low < fd1 and crossover(vrsi[1], overSold)
openShort = high > fu1 and crossunder(vrsi[1], overBought)

// Conditions to Close Trades
closeLong = high > exit_long or sl_long
closeShort = low < exit_short or sl_short


//Rounding to MinTick value
roundtargetUp = round_to_mintick(targetUp)
roundtargetDown = round_to_mintick(targetDown)
roundsllong = round_to_mintick(sl_long)
roundslshort = round_to_mintick(sl_short)

// Plots
plot(basis, color=color.blue, linewidth=2, title="[Fibonacci Level] Basis")
plot(fu764, color=color.white, linewidth=1, title="[Fibonacci Level] Short Target")
plot(fu1, color=color.red, linewidth=2, title="[Fibonacci Level] Top")
plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target")
plot(fd1, color=color.green, linewidth=2, title="[Fibonacci Level] Bottom")


// Strategy Orders
if timeFilter
    // Entry Orders
    strategy.entry(id="buy", long=true, when=openLong and high < targetUp, limit=close, alert_message="buy,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetUp)+",sl="+tostring(roundsllong))
    strategy.entry(id="sell", long=false, when=openShort and low > targetDown, limit=close,  alert_message="sell,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetDown)+",sl="+tostring(roundslshort))

    // Exit Orders
    strategy.exit(id="closelong", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=sl_long, alert_message="closelong,"+tostring(syminfo.ticker))
    strategy.exit(id="closeshort", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=sl_short, alert_message="closeshort,"+tostring(syminfo.ticker))