
A estratégia de divisão de ouro e indicador de fraqueza relativa (RSI) é uma estratégia de negociação intraday. Combina a lei de divisão de ouro de Fibonacci com o indicador RSI para determinar se o RSI está excessivamente comprado ou vendido quando o preço se aproxima do ponto crítico de divisão de ouro para emitir um sinal de compra ou venda.
O eixo médio do preço é calculado com base em uma linha K de um certo comprimento.
Os pontos críticos de divisão do ouro foram calculados de acordo com o eixo central e o diferencial padrão, incluindo os níveis de 0.618 e de 1 .
Quando o preço se aproxima do ponto crítico de divisão do ouro, verifique se o indicador RSI entrou na zona de sobrecompra ou sobrevenda.
Se a lei de divisão do ouro e o RSI estiverem simultaneamente satisfeitos, um sinal de compra ou venda será emitido.
Configure o Stop Loss e o Stop Stop para controlar o risco.
A combinação de vários indicadores pode melhorar a qualidade do sinal e reduzir os sinais falsos.
Utilizando a propriedade de apoio/resistência da lei de divisão do ouro, para melhorar a qualidade de entrada.
O indicador RSI permite avaliar a psicologia do mercado e evitar a reversão de situações extremas.
Os lucros podem ser acumulados em pequenas transações.
A lei da divisão do ouro não garante que o preço volte a subir.
Os indicadores RSI podem emitir sinais enganosos, que devem ser avaliados em conjugação com a evolução dos preços.
O ponto de parada definido como pequeno pode ser interrompido pela oscilação do preço.
A alta frequência de transações exige mais custos de transação e um controle mais rigoroso dos riscos.
Solução:
A seguir, veja como você pode fazer isso:
A liberação apropriada dos parâmetros do RSI para evitar erros.
Optimizar o ponto de parada para minimizar a probabilidade de ser parada, garantindo a parada.
Teste os resultados de otimização de parâmetros para períodos de diferentes comprimentos.
Tente melhorar a qualidade do sinal em combinação com outros indicadores, como MACD, faixa de Brin.
Estudar diferentes estratégias de stop loss para encontrar a melhor configuração.
Avaliação para determinar o melhor tempo de detenção para equilibrar os ganhos e custos.
A divisão de ouro com a estratégia RSI filtra algumas negociações de ruído através da dupla confirmação. Em comparação com o uso de um único indicador, ela pode produzir um sinal de negociação de maior qualidade. A estratégia pode ser uma ferramenta de negociação intraday eficaz por meio da otimização de parâmetros e do cumprimento rigoroso das regras.
/*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)