Estratégia quantitativa e de longo prazo de crossover de média móvel


Data de criação: 2024-02-20 15:22:12 última modificação: 2024-02-20 15:22:12
cópia: 0 Cliques: 582
1
focar em
1617
Seguidores

Estratégia quantitativa e de longo prazo de crossover de média móvel

Visão geral

Esta estratégia permite o modelo de posse de linha longa, utilizando a forma de cruzamento de linhas médias em diferentes períodos e o indicador RSI para determinar o momento de compra e venda no mercado. A estratégia pode ser otimizada em tempo real, ajustando os parâmetros, e aplica-se a investimentos de linha longa em índices de grande porte.

Princípio da estratégia

Esta estratégia é baseada principalmente em uma divisão de ouro e uma divisão de ouro no EMA para determinar o momento de compra e venda. Em combinação com o indicador RSI, a estratégia determina se está em um estado de sobrecompra ou sobrevenda.

Concretamente, a lógica de julgamento de um sinal de compra é: comprar quando o preço atravessa a EMA20 abaixo e a EMA50 acima formam um furco de ouro, para que seja mais eficaz na determinação do ponto de reversão da tendência. Além disso, é necessário satisfazer a condição de que o preço de fechamento seja menor do que o preço de abertura e menor do que o preço mínimo do dia anterior, o que pode eliminar algumas falsas rupturas.

Nós associamos os termos de compra acima a diferentes parâmetros, construindo 4 regras de compra, correspondendo respectivamente a diferentes ciclos de média e quantidade de água. Isso pode ser feito através da criação de posições em lotes, para alcançar a distribuição média da quantidade.

Para vender e sair, os critérios de julgamento são: vender quando o preço está acima do EMA10 e o indicador RSI mostra um sinal de sobrevenda; ou vender quando o preço está abaixo do EMA10 e o RSI mostra um sinal de sobrevenda. Além disso, também é examinada a condição de satisfazer uma determinada proporção de lucro. Isso pode bloquear o lucro, enquanto a combinação com o indicador RSI pode reduzir a probabilidade de erro de julgamento.

Análise de vantagens estratégicas

A principal vantagem desta estratégia é que ela permite o acompanhamento de tendências através da determinação de pontos de inflexão do mercado através da forma de cruzamento da linha de equilíbrio. Em comparação com o sistema de linha de equilíbrio única, a técnica de cruzamento da linha de equilíbrio dupla pode filtrar alguns sinais falsos. Além disso, a estratégia também introduz o indicador RSI para determinar áreas de sobrecompra e sobrevenda, o que também pode reduzir o risco de negociação.

Outra vantagem é a criação de posições em lotes por meio do ajuste de parâmetros. Esta forma de armazenamento em pirâmide permite que o preço de custo se desloque para baixo, obtendo o máximo de lucro quando a tendência surge. Ao mesmo tempo, a dispersão da quantidade é realizada, reduzindo o risco de uma única quantidade.

Análise de risco estratégico

Os principais riscos desta estratégia são:

  1. O sistema homogêneo, por si só, é muito sensível a atrasos e não consegue reagir a eventos inesperados, o que pode levar a um fracasso no tempo de parada. Este risco pode ser reduzido pela adição de pontos de parada.

  2. Esta política não impõe limites para o período de compra. Se a configuração for errada, a compra prematura pode ser feita, resultando em um bloqueio no intervalo de liquidação. Este risco pode ser resolvido limitando o intervalo de compra.

  3. A estratégia de construção em lotes pode levar a posições demasiado grandes para suportar o risco de uma ruptura unilateral. Isso pode ser reduzido por meio do ajuste dos parâmetros de nível de água e da inclusão de mecanismos de controle de risco.

Direção de otimização da estratégia

Esta estratégia pode ser melhorada em várias direções:

  1. Aumentar a estratégia de stop loss, que impede a saída de perdas quando o preço cai abaixo de alguns pontos de suporte chave, pode ser eficaz para controlar o risco de queda.

  2. A adição de um módulo de verificação pré-negociação para determinar a direção da tendência em grande escala e a criação de posições apenas quando a tendência é alta, o que evita o risco de negociação de desvantagem.

  3. Limitar o intervalo de compra para que a aquisição de ativos seja realizada apenas em um determinado período de tempo, evitando a abertura prematura de posições.

  4. A introdução de algoritmos de aprendizagem de máquina, combinados com a análise de múltiplos fatores, pode aumentar a chance de sucesso da estratégia.

Resumir

Este artigo apresenta detalhadamente uma estratégia de quantificação de linha longa, que usa uma forma de cruzamento de duas linhas equiláteros em combinação com o indicador RSI para determinar o ponto de entrada e obter a máxima eficiência. Esta estratégia pode ser aplicada à maioria dos índices e ações por meio de ajustes de parâmetros, uma estratégia de acompanhamento de linha longa mais comum.

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

//@version=5
strategy("EMA_zorba1", shorttitle="3 NIFTY RSI EMA", overlay=true)

// Input parameters
qt1 = input.int(1, title="Quantity 1", minval=1)
qt2 = input.int(2, title="Quantity 2", minval=1)
qt3 = input.int(3, title="Quantity 3", minval=1)
qt4 = input.int(4, title="Quantity 4", minval=1)
ema10 = ta.ema(close, 10)
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
ema200 = ta.ema(close, 200)

// RSI(14) condition
rsi_threshold = 65
rsi_crossed_above_70 = ta.rsi(close, 14) > rsi_threshold
rsi_crossed_above_70_two_days_ago = ta.rsi(close[5], 14) > rsi_threshold or ta.rsi(close[4], 14) > rsi_threshold or ta.rsi(close[3], 14) > rsi_threshold
rsi_crossed_above_70_yesterday = ta.rsi(close[1], 14) > rsi_threshold

// Date range filter
start_date = timestamp(year=2021, month=1, day=1)
end_date = timestamp(year=2024, month=1, day=1)
in_date_range = true

// Profit condition
profit_percentage = input(1, title="Profit Percentage")  // Adjust this value as needed

// Pyramiding setting
pyramiding = input.int(1, title="Pyramiding", minval=1, maxval=10)

// Buy conditions
buy_condition_1 = in_date_range and close < ema20 and close > ema50 and close < open and close < low[1]
buy_condition_2 = in_date_range and close < ema50 and close > ema100 and close < open and close < low[1]
buy_condition_3 = in_date_range and close < ema100 and close > ema200 and close < open and close < low[1]
buy_condition_4 = in_date_range and close < ema200 and close < open and close < low[1]

// Exit conditions
profit_condition = strategy.position_avg_price * (1 + profit_percentage / 100) <= close
exit_condition_1 = in_date_range and ((close > ema10 and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and rsi_crossed_above_70_two_days_ago) and profit_condition and close < low[1] and close < low[2]
exit_condition_2 = in_date_range and ((close < ema10 and close[1] > ema10 and close < close[1] and ema10 > ema20 and ema10 > ema50 and ema10 > ema100 and ema10 > ema200 and close < open) and rsi_crossed_above_70_yesterday) and profit_condition and close < low[1] and close < low[2]

// Strategy logic
strategy.entry("Buy1", strategy.long, qty=qt1 * pyramiding, when=buy_condition_1)
strategy.entry("Buy2", strategy.long, qty=qt2 * pyramiding, when=buy_condition_2)
strategy.entry("Buy3", strategy.long, qty=qt3 * pyramiding, when=buy_condition_3)
strategy.entry("Buy4", strategy.long, qty=qt4 * pyramiding, when=buy_condition_4)

strategy.close("Buy1", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy2", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy3", when=exit_condition_1 or exit_condition_2)
strategy.close("Buy4", when=exit_condition_1 or exit_condition_2)