Estratégia de tendência baseada no RSI

Autora:ChaoZhang, Data: 2024-02-02 11:23:29
Tags:

img

Resumo

Esta estratégia é projetada com base no indicador Stoch RSI para seguir tendências. Combina as vantagens dos indicadores RSI e Stoch gerando sinais de negociação através de cruzamento do Stoch RSI e adotando um mecanismo de rastreamento de tendências para ajustar dinamicamente o stop loss e as linhas de lucro para gerenciamento de dinheiro otimizado.

Estratégia lógica

A estratégia calcula as linhas Stoch K e D do RSI. Ela gera sinais de compra quando a linha K do Stoch RSI quebra acima de 20 das mínimas. Uma perda de parada baseada nas mínimas de várias linhas K anteriores é então definida, e a linha de perda de parada continua ajustada para cima dinamicamente junto com o preço crescente. Ao mesmo tempo, uma linha de lucro é definida com base no preço mais alto, e a posição será fechada quando o preço atingir a linha de lucro.

Análise das vantagens

Esta estratégia combina o indicador Stoch RSI para determinar a tendência do mercado e cruzamentos para gerar sinais, evitando as limitações de usar apenas o indicador RSI. Enquanto isso, o mecanismo de rastreamento de tendência permite que a linha de stop loss seja ajustada para cima constantemente de acordo com o movimento do preço, evitando o risco de saída prematura de stop loss e permitindo a captura de lucro sustentado durante os movimentos da tendência. Além disso, o próprio indicador RSI tem uma taxa de ganho relativamente boa.

Análise de riscos

Esta estratégia depende principalmente do indicador Stoch RSI para geração de sinais de tendência e cruzamento. Sinais incorretos do próprio indicador representam alguns riscos. Além disso, em mercados de faixa, as linhas de stop loss e take profit freqüentemente desencadeadas podem afetar a lucratividade da estratégia. Os riscos podem ser reduzidos através da otimização de parâmetros.

Orientações de otimização

  • Otimizar os parâmetros do Stoch RSI, ajustar o ritmo de suavização das linhas K e D para reduzir a probabilidade de sinal incorreto
  • Otimizar as configurações de stop loss e take profit para melhorar a robustez dos parâmetros
  • Adicionar condições de filtragem para evitar problemas em mercados variados
  • Incorporar mecanismos de dimensionamento das posições com base nas condições de mercado

Conclusão

Esta estratégia integra as vantagens do indicador Stoch RSI e adota um mecanismo de rastreamento de tendências para identificar efetivamente os movimentos da tendência e ajustar dinamicamente paradas e metas para melhorar a probabilidade de captura de lucro.


/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy("sdf",calc_on_every_tick=true,precision=8,
     default_qty_type=strategy.fixed,currency="USD")
//entradas y variables de indicadores
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
overbought=input(80)
oversold=input(20)
//entradas de stop , trail, profit
stop=input(1500)
stop_dentro_de_los_ultimos_lows=input(20)
trail_points=input(500)
trail_offset=input(100)
profit=input(1000)
riesgo_en_dolares=input(15)
marsi=sma(rsi(close,14),14)
//condicion de compra: k>80
buycondition=crossover(k,20) and security(syminfo.ticker,"240",rsi(close,14)>marsi)
bgcolor( security(syminfo.ticker,"240",rsi(close,14)>marsi) ? yellow : na , transp=0)

if year>2014
    strategy.entry("l",strategy.long,qty=1,when=buycondition)
    velasiguente=barssince(buycondition)+1  //cierre en cada vela nueva independientemente si subeObaja.FUNCIONANDO
    strategy.close("l",when=velasiguente>2)       //cierre en cada vela nueva independientemente si subeObaja.FUNCIONANDO
    //paradaMasBajo=lowest(low,stop_dentro_de_los_ultimos_lows)//stop_dentro_de_los_ultimos_lows, NO PROBADA 
    //strategy.exit("l",loss=paradaMasBajo,profit=profit)
plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Mais.