Estratégia de pirâmide bidirecional para negociação de ações com base no indicador RSI


Data de criação: 2024-01-30 15:26:49 última modificação: 2024-01-30 15:26:49
cópia: 0 Cliques: 728
1
focar em
1617
Seguidores

Estratégia de pirâmide bidirecional para negociação de ações com base no indicador RSI

Visão geral

Este artigo apresenta principalmente uma estratégia de pirâmide bidirecional de negociação de ações, baseada em um indicador relativamente forte (RSI). Esta estratégia usa o indicador RSI para determinar as áreas de sobrevenda e sobrevenda de ações, em conjunto com o princípio de acréscimo da pirâmide para obter lucro.

Princípio da estratégia

  • Use o RSI para determinar se uma ação está em uma zona de sobrevenda ou sobrecompra. O RSI abaixo de 25 é considerado um excesso de venda e acima de 80 é considerado um excesso de compra.
  • Quando o RSI entra na zona de superalimento, começa a fazer mais entrada. Quando o RSI entra na zona de superalimento, começa a fazer entrada.
  • O método de acumulação da pirâmide é usado para um máximo de 7 acumulações. Depois de cada acumulação, configure um ponto de parada.

Análise de vantagens

  • O indicador RSI é usado para avaliar a área de sobrevenda e sobrecompra para capturar as maiores oportunidades de reversão de preços.
  • A pirâmide de ativos permite obter melhores taxas de retorno quando as coisas estão bem.
  • O risco pode ser controlado através da configuração de stop loss após cada adição de risco.

Análise de Riscos

  • O indicador RSI é instável e pode apresentar sinais errados de sobrecompra e sobrevenda.
  • O risco de excesso de posicionamento aumenta.
  • A configuração do ponto de parada de perdas precisa levar em consideração a volatilidade e não pode ser definida como muito pequena.

Direção de otimização

  • Pode-se considerar a combinação de outros indicadores para filtrar os sinais RSI e melhorar a precisão de julgar o excesso de compra e venda. Por exemplo, a combinação de indicadores como KDJ, BOLL e outros.
  • Pode-se configurar um stop loss flutuante para acompanhar o preço. Adaptação dinâmica de acordo com a volatilidade e os requisitos de controle de risco.
  • Pode-se considerar o uso de parâmetros de adaptação de acordo com a situação do mercado (bull market, bear market, etc.).

Resumir

Esta estratégia combina o indicador RSI com a estratégia de acréscimo de posição da pirâmide, e ao mesmo tempo pode obter mais lucro por acréscimo de posição ao julgar o excesso de compra e venda. Embora a precisão do julgamento do RSI deva ser melhorada, a estratégia de negociação pode ser criada com um efeito estável em combinação com outros indicadores com otimização de parâmetros razoáveis.

Código-fonte da estratégia
/*backtest
start: 2023-12-30 00:00:00
end: 2024-01-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RafaelZioni

strategy(title='Simple RSI strategy', overlay=false)

SWperiod = 1
look = 0
OverBought = input(80, minval=50)
OverSold = input(25, maxval=50)

bandmx = hline(100)
bandmn = hline(0)

band1 = hline(OverBought)
band0 = hline(OverSold)
//band50 = hline(50, color=black, linewidth=1)
fill(band1, band0, color=color.purple, transp=98)


src = close
len = input(5, minval=1, title="RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)

p = 100

//scale
hh = highest(high, p)
ll = lowest(low, p)
scale = hh - ll

//dynamic OHLC
dyno = (open - ll) / scale * 100
dynl = (low - ll) / scale * 100
dynh = (high - ll) / scale * 100
dync = (close - ll) / scale * 100

//candle color
color_1 = close > open ? 1 : 0

//drawcandle
hline(78.6)
hline(61.8)
hline(50)
hline(38.2)
hline(23.6)
plotcandle(dyno, dynh, dynl, dync, title="Candle", color=color_1 == 1 ? color.green : color.red)
plot(10, color=color.green)
plot(55, color=color.black)
plot(80, color=color.black)
plot(90, color=color.red)

long = rsi <= OverSold ? 5 : na

//Strategy
golong = rsi <= OverSold ? 5 : na

longsignal = golong  
//based on https://www.tradingview.com/script/7NNJ0sXB-Pyramiding-Entries-On-Early-Trends-by-Coinrule/
//set take profit

ProfitTarget_Percent = input(3)
Profit_Ticks = close * (ProfitTarget_Percent / 100) / syminfo.mintick

//set take profit

LossTarget_Percent = input(10)
Loss_Ticks = close * (LossTarget_Percent / 100) / syminfo.mintick


//Order Placing

strategy.entry("Entry 1", strategy.long, when=strategy.opentrades == 0 and longsignal)

strategy.entry("Entry 2", strategy.long, when=strategy.opentrades == 1 and longsignal)

strategy.entry("Entry 3", strategy.long, when=strategy.opentrades == 2 and longsignal)

strategy.entry("Entry 4", strategy.long, when=strategy.opentrades == 3 and longsignal)

strategy.entry("Entry 5", strategy.long, when=strategy.opentrades == 4 and longsignal)

strategy.entry("Entry 6", strategy.long, when=strategy.opentrades == 5 and longsignal)

strategy.entry("Entry 7", strategy.long, when=strategy.opentrades == 6 and longsignal)



if strategy.position_size > 0
    strategy.exit(id="Exit 1", from_entry="Entry 1", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 2", from_entry="Entry 2", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 3", from_entry="Entry 3", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 4", from_entry="Entry 4", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 5", from_entry="Entry 5", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 6", from_entry="Entry 6", profit=Profit_Ticks, loss=Loss_Ticks)
    strategy.exit(id="Exit 7", from_entry="Entry 7", profit=Profit_Ticks, loss=Loss_Ticks)