Compre na baixa e venda na alta estratégia de negociação quantitativa de curto prazo com base na média móvel RSI


Data de criação: 2023-12-01 16:59:26 última modificação: 2023-12-01 16:59:26
cópia: 0 Cliques: 703
1
focar em
1619
Seguidores

Compre na baixa e venda na alta estratégia de negociação quantitativa de curto prazo com base na média móvel RSI

Visão geral

Esta estratégia define um ponto de compra e venda através da interseção do indicador RSI com a sua linha média, pertencendo a uma estratégia de negociação de linha curta. A estratégia compra quando o indicador RSI está abaixo da sua linha média e vende quando está acima da sua linha média, pertencendo a uma típica estratégia de compra e venda.

Princípio da estratégia

  1. Calcular o valor do indicador RSI com um período de 40 linhas K
  2. Calcule a linha média de MA para o RSI com um período de 10 linhas K
  3. Gera um sinal de compra quando o indicador RSI está abaixo de sua linha média multiplicado por um fator ((1-intervalo de compra / venda / 100)
  4. Um sinal de venda é gerado quando o indicador RSI está acima de sua linha média multiplicado pelo fator ((1 + intervalo de compra / venda / 100)
  5. A distância padrão entre os blocos de compra e venda é de 5, o que significa que o sinal é gerado quando a distância da linha média é de 5 por cento positivo ou negativo
  6. A posição de equilíbrio é julgada quando o indicador RSI está acima da sua linha média e acima do nível de 50

Análise de vantagens

Esta é uma estratégia típica de reversão de tendência, que utiliza as características de overbought e oversold do RSI para determinar o momento de compra e venda. A estratégia tem as seguintes vantagens:

  1. Usar o RSI para avaliar a estrutura do mercado, o que é muito mais confiável
  2. Filtragem uniforme evita transações desnecessárias e aumenta a estabilidade
  3. Parâmetros de distância entre os blocos de compra e venda ajustam a frequência de negociação
  4. O código é simples e fácil de entender, a lógica é clara.

No geral, é uma estratégia de negociação de linha curta simples e prática.

Análise de Riscos

A estratégia também apresenta alguns riscos que devem ser lembrados:

  1. A probabilidade de um indicador RSI emitir um sinal errado, é necessário prestar atenção à forma da curva do indicador
  2. A distância entre as zonas de compra e venda pode levar a excesso de transações ou a oportunidades perdidas.
  3. Frequência de transações mais elevada, com impacto nos custos de transação
  4. Baseado apenas em um indicador, vulnerável a anomalias de mercado

Esses riscos podem ser mitigados por meio de otimização de parâmetros, aumento de condições de filtragem e outros.

Direção de otimização

A estratégia pode ser otimizada a partir das seguintes dimensões:

  1. Adição de mais indicadores de filtragem, como indicadores de volume de transação, para garantir que os sinais sejam produzidos apenas em pontos de reversão de tendência
  2. Adotar estratégias de stop loss para controlar perdas individuais
  3. Optimizar a distância entre os blocos de compra e venda, equilibrar a frequência de transação e a taxa de lucro
  4. Algoritmos de aprendizagem de máquina para encontrar automaticamente combinações de parâmetros
  5. Adição de modelos de agregação para integrar resultados de várias subalternas

O desempenho da estratégia pode ser aumentado significativamente por meio de combinações de vários indicadores, gerenciamento de stop loss e otimização de parâmetros.

Resumir

Esta estratégia é, em geral, uma estratégia de negociação de linha curta muito típica e prática. Ela usa o indicador RSI para determinar o momento de compra e venda, apoiada por filtragem de equilíbrio. A lógica da estratégia é simples e clara, o ajuste de parâmetros é flexível e fácil de implementar.

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

//@version=5
strategy("I11L - Meanreverter 4h", overlay=false, pyramiding=3, default_qty_value=10000, initial_capital=10000, default_qty_type=strategy.cash,process_orders_on_close=false, calc_on_every_tick=false)
 
frequency = input.int(10)
rsiFrequency = input.int(40)
buyZoneDistance = input.int(5)
avgDownATRSum = input.int(3)
useAbsoluteRSIBarrier = input.bool(true)
barrierLevel = 50//input.int(50)

momentumRSI = ta.rsi(close,rsiFrequency)
momentumRSI_slow = ta.sma(momentumRSI,frequency)
 
isBuy = momentumRSI < momentumRSI_slow*(1-buyZoneDistance/100) and (strategy.position_avg_price - math.sum(ta.atr(20),avgDownATRSum)*strategy.opentrades > close or strategy.opentrades == 0 ) //and (momentumRSI < barrierLevel or not(useAbsoluteRSIBarrier))
isShort = momentumRSI > momentumRSI_slow*(1+buyZoneDistance/100) and (strategy.position_avg_price - math.sum(ta.atr(20),avgDownATRSum)*strategy.opentrades > close or strategy.opentrades == 0 ) and (momentumRSI > barrierLevel or not(useAbsoluteRSIBarrier))
momentumRSISoftClose = (momentumRSI > momentumRSI_slow) and (momentumRSI > barrierLevel or not(useAbsoluteRSIBarrier))

isClose = momentumRSISoftClose

plot(momentumRSI,color=isClose ? color.red :  momentumRSI < momentumRSI_slow*(1-buyZoneDistance/100) ? color.green : color.white)
plot(momentumRSI_slow,color=color.gray)
plot(barrierLevel,color=useAbsoluteRSIBarrier ? color.white : color.rgb(0,0,0,0))
plot(momentumRSI_slow*(1-buyZoneDistance/100),color=color.gray)
plot(momentumRSI_slow*(1+buyZoneDistance/100),color=color.gray)
plot(momentumRSI_slow*(1+(buyZoneDistance*2)/100),color=color.gray)

// plot(strategy.wintrades - strategy.losstrades)

 
 
if(isBuy)
    strategy.entry("Buy",strategy.long, comment="#"+str.tostring(strategy.opentrades+1))

// if(isShort)
//     strategy.entry("Sell",strategy.short, comment="#"+str.tostring(strategy.opentrades+1))

if(isClose)
    strategy.exit("Close",limit=close)