Estratégia de negociação quantitativa combinando cruzamento de média móvel dupla e indicador RSI


Data de criação: 2023-11-21 12:09:50 última modificação: 2023-11-21 12:09:50
cópia: 0 Cliques: 669
1
focar em
1617
Seguidores

Estratégia de negociação quantitativa combinando cruzamento de média móvel dupla e indicador RSI

Visão geral

Esta estratégia utiliza o cruzamento da linha de equilíbrio para determinar a direção da tendência, enquanto usa o indicador RSI para evitar o excesso de negociação no topo do mercado e a perda de negociação no fundo do mercado, para obter melhores resultados.

Princípio da estratégia

Quando a linha média rápida de 9 ciclos atravessa a linha média lenta de 50 ciclos, o aumento da tendência de curto prazo é sobreposto ao aumento da tendência de longo prazo, e é um sinal típico de múltiplas cabeças. Ao mesmo tempo, se o indicador RSI for maior que 5 pontos do ciclo anterior e menor que 70, isso indica que está na região anterior ao supermercado, então é um momento mais adequado para fazer mais.

Quando a linha média rápida de 9 ciclos atravessa a linha média lenta de 50 ciclos, significa que está no mercado de capitais vazios e precisa de posição livre.

Análise de vantagens

  • Utilizando a dupla equilíbrio entre as linhas para avaliar as grandes tendências, evitando ser enganado por falsas rupturas
  • O RSI evita decisões erradas nos pontos de inflexão do mercado
  • Pode ajustar flexivelmente o ciclo de equilíbrio para diferentes variedades e dimensões de tempo
  • Estratégias de Stop Loss Controladas

Análise de Riscos

  • O cruzamento de equilíbrio pode ser ineficaz na tomada de decisões e pode resultar em prejuízos
  • A configuração incorreta do parâmetro RSI pode levar a perder o melhor momento de entrada
  • A preocupação é com o volume de transações para sustentar os preços.
  • A atitude irracional provocada por um evento inesperado requer intervenção manual.

Direção de otimização

  • Optimizar os parâmetros do RSI para obter os melhores resultados
  • Combinação de indicadores de volume de transação para evitar falsos sinais
  • Parâmetros de mediana ótima para testes de diferentes variedades e dimensões temporais
  • Aumentar a amplitude de suspensão de perdas, evitando o bloqueio

Resumir

Esta estratégia permite obter ganhos estáveis com o uso efetivo de tendências de linha média e longa através da determinação da direção e do RSI através do cruzamento de duas linhas de equilíbrio. No entanto, é necessário estar atento ao atraso do sinal de cruzamento de linha média e ao ajuste dos parâmetros do RSI, ao mesmo tempo em que se concentra na relação entre preço e volume de transação.

Código-fonte da estratégia
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 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/
// © joshuajcoop01

//@version=5
strategy("Bitpanda Coinrule Template",
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2020, 1, 1, 0, 0)
notInTrade = strategy.position_size <= 0


// RSI
length = input(14)
vrsi = ta.rsi(close, length)

// Moving  Averages for Buy Condition
buyFastEMA = ta.ema(close, 9)
buySlowEMA = ta.ema(close, 50)
buyCondition1 = ta.crossover(buyFastEMA, buySlowEMA)


increase = 5
if ((vrsi > vrsi[1]+increase) and buyCondition1 and vrsi < 70 and timePeriod)
    strategy.entry("Long", strategy.long)


// Moving  Averages for Sell Condition
sellFastEMA = ta.ema(close, 9)
sellSlowEMA = ta.ema(close, 50)
plot(request.security(syminfo.tickerid, "60", sellFastEMA), color = color.blue)
plot(request.security(syminfo.tickerid, "60", sellSlowEMA), color = color.green)


condition = ta.crossover(sellSlowEMA, sellFastEMA)
//sellCondition1 = request.security(syminfo.tickerid, "60", condition)

strategy.close('Long', when = condition and timePeriod)