Fibonacci Golden Ratio e Relative Strength RSI estratégia

Autora:ChaoZhang, Data: 2024-01-03 16:54:32
Tags:

img

Resumo

A estratégia do índice de força relativa (RSI) é uma estratégia de negociação intradiária que combina o princípio do índice de ouro de Fibonacci e o indicador RSI para emitir sinais de compra ou venda quando o preço se aproxima dos pontos-chave do índice de força relativa e o RSI mostra status de sobrecompra ou sobrevenda.

Estratégia lógica

  1. Calcule a linha média do preço com base em determinado período de barras.

  2. Calcular os pontos-chave da taxa de ouro, incluindo o nível de 0,618 e o nível 1 com base na linha média e no desvio padrão.

  3. Quando o preço se aproxima dos pontos-chave da taxa de ouro, verifique se o RSI entra na zona de sobrecompra ou sobrevenda.

  4. Emissão de sinais de compra ou venda se estiverem preenchidas a regra da proporção dourada e a condição do RSI.

  5. Configure stop loss e take profit para controlar os riscos.

Análise das vantagens

  1. A combinação de vários indicadores melhora a qualidade do sinal e reduz os falsos sinais.

  2. Utilize a característica de suporte/resistência da regra da proporção de ouro para garantir a entrada de qualidade.

  3. O RSI mede a psicologia do mercado para evitar reversões extremas.

  4. Adequado para negociações intradiárias de alta frequência para acumular lucros de múltiplas pequenas negociações.

Análise de riscos

  1. A proporção de ouro não pode garantir uma inversão de preço de 100%.

  2. O RSI pode dar sinais enganosos, precisa combinar a ação do preço.

  3. O "stop loss" demasiado apertado pode ser impedido por flutuações de preços.

  4. A negociação de alta frequência exige maiores custos de negociação e um controlo de risco mais rigoroso.

Soluções:

  1. Siga estritamente a regra de stop loss para limitar a perda de uma única transação.

  2. Afrouxar os parâmetros do RSI adequadamente para evitar sinais enganosos.

  3. Otimizar o ponto de stop loss para reduzir a probabilidade de stop out, garantindo simultaneamente uma stop loss eficaz.

Orientações de otimização

  1. Resultados dos ensaios de diferentes parâmetros do período do ciclo.

  2. Tente combinar outros indicadores como MACD, Bollinger Bands etc para melhorar a qualidade do sinal.

  3. Pesquise diferentes estratégias de stop loss para encontrar configurações ideais.

  4. Avaliar o período de detenção ideal para equilibrar lucro e custo.

Conclusão

O índice de ouro de Fibonacci e a estratégia RSI filtram as negociações de ruído através de confirmação dupla. Em comparação com as estratégias de indicador único, gera sinais de negociação de maior qualidade. Com otimização de parâmetros e regra rigorosa, esta estratégia pode se tornar uma ferramenta de negociação intradiária eficaz.


/*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)

Mais.