Estratégia de negociação de ações de longo prazo exclusivas de Vortex e RSI

Autora:ChaoZhang, Data: 2023-09-19 22:01:09
Tags:

Resumo

Esta estratégia usa o indicador Vortex para determinar a direção da tendência do mercado e identificar oportunidades longas.

Estratégia lógica

  1. Calcular o VIP positivo e o VIM negativo do indicador Vortex.

  2. Quando o VIP cruza acima do VIM, e o fechamento é maior do que o máximo anterior, um sinal de compra é gerado.

  3. Calcule os valores do RSI. Quando o RSI cruza abaixo de 70, um sinal de venda é gerado.

  4. Quando o VIM cruza abaixo do VIP, e o fechamento é inferior ao mínimo anterior, um sinal de venda também é acionado.

  5. Defina o stop loss em stop_loss% do capital inicial e tire lucro em Target_profit% do capital inicial.

O indicador de vórtice julga bem as tendências de alta/baixa. A adição de RSI evita riscos de superaquecimento. Stop loss/take profit adiciona robustez.

Análise das vantagens

  1. O Vortex identifica com precisão as tendências com sinais claros.

  2. RSI evita riscos de superaquecimento e perseguir os tops.

  3. As paradas dinâmicas definem uma relação risco/recompensa pré-definida.

  4. Paradas ajustáveis se adaptam a diferentes ambientes de mercado.

  5. Regras simples, claras, fáceis de implementar.

  6. Expansível com outros indicadores.

Análise de riscos

  1. O Vortex tem efeito de atraso, pode perder oportunidades.

  2. O stop loss demasiado pequeno pode causar batidas.

  3. Tirar lucro demasiado grande pode limitar os lucros.

  4. O excesso de confiança no RSI causa falhas.

  5. Não consideradas as despesas de negociação.

  6. Não há regras de dimensionamento de posição.

Orientações de otimização

  1. Teste e otimize os parâmetros para Vortex e RSI.

  2. Tente combinar Vortex com OBV etc.

  3. Melhorar as estratégias de stop loss como trailing stop, chandelier exit etc.

  4. Adicionar um módulo de dimensionamento de posições para limitar as perdas por transação única.

  5. Considere mais filtros como KD, MACD para o tempo de entrada.

  6. Utilize aprendizagem de máquina para melhor otimização de parâmetros.

  7. Adicione fatores fundamentais para melhorar a taxa de vitória.

Conclusão

Esta estratégia integra Vortex para tendência e RSI para controle de superaquecimento em um sistema de ações estável de longo prazo. As configurações de stop loss/take profit também mantêm o risco gerenciável.


/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by Sauciusfinance 
////////////////////////////////////////////////////////////
strategy(title="Vortex and RSI ts 2020",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=20000,commission_value=.25,overlay = true,default_qty_type = strategy.cash, default_qty_value = 20000)
//inputs////////////////////////
n = input(title="vortex period",type=input.integer, defval = 14)
m = input(title = "RSI period", type=input.integer, defval = 14)
// CALCULATIONS *** ///////
VMP = sum( abs( high - low[1]), n )
VMM = sum( abs( low - high[1]), n )
STR = sum( atr(1), n )
VIP = VMP / STR
VIM = VMM / STR
// bring the lines in the panel below, add another panel with RSI
plot(VIP, title="VI +", color=#311B92)
plot(VIM, title="VI -", color=#FF006E)

// RSI on total price, always
totalprice = (high + low+close + open)/4
myrsi = rsi(m, totalprice)
strategy.initial_capital = 50000
//// TRADING SYSTEM CODE //// 
entryl = crossover(VIP, VIM) and close >= high[1] 
strategy.entry("Long", true, when=entryl, comment = "Go!")
exit1 = crossover(VIM, VIP) and close <= low[1]
strategy.close("Long", when=exit1, comment = "Vortex down")
exit2 = crossunder(myrsi, 70)
strategy.close("Long", when=exit2, comment = "RSI down")
//money management
stop_loss=input(7, "Stop loss %", minval = 1, step = 1)
sl = -1*stop_loss/100*strategy.initial_capital
close_Stop = strategy.openprofit < sl
strategy.close("Long", when = close_Stop)
Target_profit=input(16, "Target Profit %", minval = 1, step = 1)
tp = Target_profit/100*strategy.initial_capital
close_Target = strategy.openprofit > tp
strategy.close("Long", when = close_Target)



Mais.