Estratégia de negociação quantitativa baseada no índice de risco de ações e nas IFM

Autora:ChaoZhang, Data: 2024-01-29
Tags:

img

Resumo

Esta estratégia combina os indicadores RSI estocástico e MFI para identificar condições de sobrecompra e sobrevenda e tomar decisões de compra e venda.

Princípio da estratégia

O indicador de RSI estocástico combina as vantagens do oscilador estocástico (KDJ) e do índice de força relativa (RSI). Ele primeiro calcula os valores do RSI durante um período de tempo através do RSI e, em seguida, aplica o método estocástico para calcular os valores de K e D do estocástico deste conjunto de RSI para determinar se o RSI está sobrecomprado ou sobrevendido.

O indicador de fluxo de dinheiro (MFI) julga a relação oferta-demanda do mercado e as condições de sobrecompra/supervenda com base em mudanças no volume e no preço. O indicador acredita que os preços em alta refletem as forças de alta sendo mais fortes do que as forças de baixa.

Esta estratégia define os níveis de sobrecompra e sobrevenda para o RSI estocástico e as IFM. Quando a linha K do indicador do RSI estocástico cruza a linha de sobrevenda para cima ou o indicador da IFM cruza a linha de sobrevenda para cima, é gerado um sinal de compra. Quando a linha K do indicador do RSI estocástico cruza a linha de sobrecompra para baixo ou o indicador da IFM cruza a linha de sobrecompra para baixo, é gerado um sinal de venda.

Vantagens da estratégia

Esta estratégia de combinação de indicadores de RSI estocásticos e de IFM permite identificar de forma mais fiável as condições de sobrecompra/supervenda no mercado e evitar a geração de sinais errados.

Em primeiro lugar, o próprio indicador RSI estocástico tem uma maior fiabilidade e sensibilidade, e pode julgar as condições de sobrecompra/supervenda com mais precisão do que o oscilador estocástico comum.

Em segundo lugar, o indicador das IFM avalia as condições de sobrecompra/supervenda a partir da perspectiva das alterações de volume e de preço, fornecendo uma referência de outra dimensão para evitar erros causados pelo julgamento a partir de uma única perspectiva.

Por fim, os indicadores RSI estocástico e RFI são complementares. O RSI estocástico concentra-se mais nas mudanças de preço para determinar as condições do mercado, enquanto as MFI se concentram mais nas mudanças de volume e volume de negócios. Usar os dois em combinação permite julgar as condições do mercado a partir de uma perspectiva mais abrangente e tomar decisões de negociação mais precisas e confiáveis.

Riscos da Estratégia

Os principais riscos desta estratégia incluem:

  1. O risco de os indicadores gerarem sinais errados Embora os indicadores RSI estocástico e MFI tenham uma elevada fiabilidade, podem ainda gerar sinais errados de compra/venda em determinados ambientes de mercado, resultando em perdas de negociação.

  2. O risco de configurações inadequadas de parâmetros para indicadores sobrecomprados/supervendidos. As configurações de parâmetros dos indicadores Stochastic RSI e MFI têm uma grande influência nos sinais de negociação.

  3. Os indicadores estocásticos RSI e IFM apresentam mais ou menos um certo atraso, o que pode fazer com que o melhor momento de compra/venda seja perdido.

  4. O risco de consolidação durante os períodos de vaga: se o mercado se consolida lateralmente durante os períodos de vaga, quando os indicadores não emitiram nenhum sinal, isso levará a algum custo de oportunidade.

As soluções para os riscos correspondentes incluem: ajuste dos parâmetros do indicador, fixação de stop loss, redução do tamanho da posição, incorporação de outros indicadores, etc.

Orientações de otimização da estratégia

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Incorporar indicadores de impulso. Adicionar condições de julgamento baseadas em sinais de indicadores de impulso em cima dos sinais de indicadores de RSI estocástico e de IFM para evitar negociações durante períodos de consolidação. Por exemplo, adicionar critérios de ruptura para fechar preço/volume.

  2. Adicione o mecanismo de stop loss. Para posições de longo prazo, adicione o stop loss móvel. Para negociações de curto prazo, defina pontos de stop loss para controlar perdas únicas.

  3. Otimizar as definições dos parâmetros. Ajustar os parâmetros do RSI estocástico e das IFM, como o comprimento, a posição das linhas sobrecompradas/supervendidas, etc., para que as definições dos parâmetros se adequem melhor às condições do mercado.

  4. Ajustar dinamicamente as estratégias de acordo com as condições do mercado Identificar tendências e mercados de consolidação, executar estratégias de tendência durante os mercados de tendências e desativar estratégias durante os mercados de consolidação para evitar negociações desnecessárias.

  5. Incorporar algoritmos de aprendizagem de máquina para otimizar automaticamente. Aplicar algoritmos de aprendizagem de reforço para ajustar dinamicamente parâmetros e regras com base nos resultados de backtest para alcançar a otimização automática de estratégias.


/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 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/
// © carterac

//@version=5
strategy("MFI and Stoch RSI Bot", overlay=true)

// Stochastic RSI settings
length = input(14, title="Stochastic RSI Length")
smoothK = input(3, title="Stochastic RSI K")
smoothD = input(3, title="Stochastic RSI D")

// Stochastic RSI overbought and oversold levels
stochRSIOverbought = input(70, title="Stochastic RSI Overbought Level")
stochRSIOversold = input(20, title="Stochastic RSI Oversold Level")

// Money Flow Index (MFI) settings
mfiLength = input(14, title="MFI Length")
mfiOverbought = input(70, title="MFI Overbought Level")
mfiOversold = input(20, title="MFI Oversold Level")

// Calculate RSI
rsiValue = ta.rsi(close, 11)

// Calculate Stochastic RSI
rsiHigh = ta.highest(rsiValue, 11)
rsiLow = ta.lowest(rsiValue, 7)
k = ta.sma(100 * (rsiValue - rsiLow) / (rsiHigh - rsiLow), 3)
d = ta.sma(k, 3)

// Calculate MFI
mfiValue = ta.mfi(volume, mfiLength)

// Determine buy and sell signals
buyCondition = ta.crossover(k, stochRSIOversold) or ta.crossover(mfiValue, mfiOversold)
sellCondition = ta.crossunder(k, stochRSIOverbought) or ta.crossunder(mfiValue, mfiOverbought)

// Plotting signals
plotshape(buyCondition, location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal")
plotshape(sellCondition, location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal")

strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)


Mais.