Ratio de oro de Fibonacci y estrategia de RSI de fuerza relativa

El autor:¿ Qué pasa?, Fecha: 2024-01-03 16:54:32
Las etiquetas:

img

Resumen general

La estrategia del índice de Fibonacci es una estrategia de negociación intradiaria que combina el principio del índice de Fibonacci y el indicador RSI para emitir señales de compra o venta cuando el precio se acerca a puntos clave del índice de Fibonacci y el RSI muestra estado de sobrecompra o sobreventa.

Estrategia lógica

  1. Calcular la línea media del precio basado en cierto período de barras.

  2. Calcular los puntos clave del índice de oro, incluidos el nivel de 0,618 y el nivel 1 basados en la línea media y la desviación estándar.

  3. Cuando el precio se acerca a los puntos clave de la proporción de oro, compruebe si el RSI entra en la zona de sobrecompra o sobreventa.

  4. Emite señales de compra o venta si se cumplen tanto la regla de la proporción dorada como la condición del RSI.

  5. Establezca un stop loss y tome ganancias para controlar los riesgos.

Análisis de ventajas

  1. La combinación de múltiples indicadores mejora la calidad de la señal y reduce las falsas señales.

  2. Utilice la característica de soporte/resistencia de la regla de la proporción dorada para garantizar la entrada de calidad.

  3. El RSI mide la psicología del mercado para evitar inversiones extremas.

  4. Adecuado para operaciones intradiarias de alta frecuencia para acumular ganancias de múltiples operaciones pequeñas.

Análisis de riesgos

  1. La proporción de oro no puede garantizar un cambio de precio del 100%.

  2. RSI puede dar señales engañosas, necesita combinar la acción del precio.

  3. Un stop loss demasiado ajustado podría ser detenido por las fluctuaciones de precios.

  4. El comercio de alta frecuencia requiere mayores costes de negociación y un control de riesgos más estricto.

Soluciones:

  1. Siga estrictamente la regla de stop loss para limitar la pérdida de una sola operación.

  2. Relajar adecuadamente los parámetros del RSI para evitar señales engañosas.

  3. Optimizar el punto de stop loss para reducir la probabilidad de que se detenga al mismo tiempo que se garantiza una stop loss efectiva.

Direcciones de optimización

  1. Resultados de ensayos de diferentes parámetros del ciclo.

  2. Trate de combinar otros indicadores como el MACD, las bandas de Bollinger, etc. para mejorar la calidad de la señal.

  3. Investigue diferentes estrategias de stop loss para encontrar las configuraciones óptimas.

  4. Evaluar el período de retención óptimo para equilibrar el beneficio y el coste.

Conclusión

El índice de oro de Fibonacci y la estrategia RSI filtran las operaciones de ruido a través de la confirmación doble. En comparación con las estrategias de indicador único, genera señales comerciales de mayor calidad. Con la optimización de parámetros y el cumplimiento de reglas estrictas, esta estrategia puede convertirse en una herramienta de negociación intradiaria efectiva.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-02 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/
// © MohamedYAbdelaziz

// Intraday Trading
// Best used for Short Timeframes [1-30 Minutes]
// If you have any modifications please tell me to update it

//@version=4
strategy(title="Fibonacci + RSI - Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000, currency=currency.USD)

// Inputs
timeFilter = year >= 2000
    // Stop Loss %
loss_percent = input(title="Stop Loss (%)", minval=0.0, step=0.1, defval=2) * 0.001
    // 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
stop_long = strategy.position_avg_price * (1 - loss_percent)
stop_short = strategy.position_avg_price * (1 + loss_percent)

// 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
closeShort = low < exit_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="1", title="[Fibonacci Level] Top")
plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target")
plot(fd1, color=color.green, linewidth=2, title="1", title="[Fibonacci Level] Bottom")


// Strategy Orders
if timeFilter
    // Entry Orders
    strategy.entry(id="Long", long=true, when=openLong and high < targetUp, limit=close)
    strategy.entry(id="Short", long=false, when=openShort and low > targetDown, limit=close)

    // Exit Orders
    strategy.exit(id="Long", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=stop_long)
    strategy.exit(id="Short", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=stop_short)

Más.