Estratégia de negociação de limiar do RSI

Autora:ChaoZhang, Data: 2023-10-30 14:58:38
Tags:

img

Resumo

Esta estratégia implementa uma estratégia de negociação de limiar simples baseada no Índice de Força Relativa (RSI). Ele compra quando o RSI cai abaixo do limiar de 30 e vende quando o RSI sobe acima do limiar de 40. O período de detenção é fixo em 10 dias. A estratégia é adequada para negociação de médio prazo.

Estratégia lógica

A estratégia usa principalmente as zonas de sobrevenda e sobrecompra do indicador RSI para gerar sinais de negociação. O RSI reflete a velocidade das mudanças de preço durante um período. RSI abaixo de 30 indica uma zona de sobrevenda onde o preço pode voltar a subir. RSI acima de 70 indica uma zona de sobrecompra onde o preço pode cair.

Especificamente, a estratégia primeiro calcula o RSI de 10 dias, em seguida, define os limiares em 30 e 40. Quando o RSI de 10 dias cai abaixo de 30, um sinal de compra é gerado. Quando o RSI de 10 dias sobe acima de 40, um sinal de venda é gerado. Ao receber o sinal de compra, ele abre uma posição longa. Ao receber o sinal de venda, se os dias de detenção excederem 10 dias, ele fecha a posição diretamente. Caso contrário, ele continua a manter até o 10o dia para vender.

A estratégia é simples e fácil de entender, identificando zonas de sobrevenda e sobrecompra utilizando o RSI para implementar uma estratégia de negociação de limiar baseada num indicador.

Vantagens

  1. Utiliza o indicador RSI amplamente aplicado com espaço para otimização de parâmetros

A estratégia utiliza o indicador RSI predominante. Os parâmetros do RSI podem ser ajustados e otimizados para se adequarem a diferentes períodos e ambientes de mercado.

  1. Implementa uma tendência simples

O RSI pode refletir tendências de mudança de preços. A estratégia julga os movimentos de preços com base no RSI para alcançar uma tendência simples.

  1. Relativamente bom controlo dos riscos

A estratégia adota um período de retenção fixo para controlar efetivamente a perda única.

Riscos

  1. Parâmetros do RSI suscetíveis a uma otimização excessiva

Os parâmetros do RSI podem ser definidos de forma flexível, mas a otimização excessiva e o viés do backtest podem trazer riscos de negociação ao vivo.

  1. Existe efeito de atraso

O RSI é um indicador de tendência e reage lentamente a eventos repentinos, com algum efeito de atraso.

  1. Falta de flexibilidade no que respeita ao período de detenção fixo

O período de detenção fixo impõe pontos de obtenção de lucro e de stop-loss e não pode ser ajustado com base nas alterações do mercado.

Orientações para a melhoria

  1. Otimizar os parâmetros do RSI e os impactos dos ensaios de diferentes valores.

  2. Adicionar outros indicadores para formar um sistema combinado utilizando pontos fortes de diferentes indicadores.

  3. Melhorar a estratégia de stop profit/loss para permitir ajustes dinâmicos com base nas condições de mercado.

  4. Otimizar o dimensionamento das posições para ajustar dinamicamente as posições com base nas condições do mercado.

  5. Teste produtos adequados à estratégia, escolhendo produtos líquidos com elevada volatilidade.

  6. Otimizar os horários de negociação e testar os impactos na estratégia.

Conclusão

A estratégia é relativamente simples, implementando uma estratégia de negociação baseada em limiar usando o RSI. Suas vantagens incluem simplicidade, facilidade de compreensão e controle de risco relativamente bom. No entanto, existem problemas como dificuldade de otimização de parâmetros do RSI e perda / lucro de parada inflexível.


/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
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/
// © Bitduke

//@version=4
// strategy("Simple RSI Buy/Sell at a level", shorttitle="Simple RSI Strategy", overlay=true,calc_on_every_tick=false,pyramiding=1, default_qty_type=strategy.cash,default_qty_value=1000, currency=currency.USD, initial_capital=1000,commission_type=strategy.commission.percent, commission_value=0.075)
overbought = input(40, title="overbought value")
oversold = input(30, title="oversold value")
// Component Test Periods Code Begin
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2021, "Backtest Stop Year")
testStopMonth = input(16, "Backtest Stop Month")
testStopDay = input(2, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Test Periods Code End
//////////////////////////////////////////////////////////////////////

myrsi = rsi(close, 10) > overbought
myrsi2 = rsi(close, 10) < oversold

barcolor(myrsi ? color.black : na)
barcolor(myrsi2 ? color.blue : na)


myEntry = myrsi2 and hour(time) <= 9

strategy.entry("Buy Signal", strategy.long, when = myEntry and testPeriod())

// Close 10 bar periods after the condition that triggered the entry

//if (myEntry[10])
    //strategy.close("Buy Signal")
strategy.close("Buy Signal", when = barssince(myEntry) >= 10 or myrsi and testPeriod())

//strategy.entry("Sell Signal",strategy.short, when = myrsi2)

Mais.