Estratégia de negociação quantitativa baseada em cruzamento de média móvel


Data de criação: 2024-01-23 11:05:50 última modificação: 2024-01-23 11:05:50
cópia: 0 Cliques: 505
1
focar em
1617
Seguidores

Estratégia de negociação quantitativa baseada em cruzamento de média móvel

Visão geral

Esta estratégia é construída usando o princípio do forcado de ouro da média móvel simples (SMA). A estratégia usa o forcado de ouro da linha 3 e da linha 5 como sinal de entrada, para parar ou parar como sinal de saída.

Princípio da estratégia

A estratégia baseia-se principalmente em dois SMAs, a linha 3 e a linha 5. Dentre eles, a linha 3 representa a tendência de curto prazo e a linha 5 representa a tendência de médio prazo. Quando a linha 3 atravessa a linha 5 em alta rápida em curto prazo, representa o momento em que a tendência de alta está em alta.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. A lógica da estratégia é simples, clara, fácil de entender e de implementar.
  2. A estratégia de cruzamento de linhas médias é mais precisa para avaliar as grandes tendências do mercado e tem maior probabilidade de entrada.
  3. A escolha da média de dois períodos diferentes permite uma melhor compreensão das mudanças no mercado.
  4. Implementação de um mecanismo de stop loss e controle efetivo de perdas.

Análise de Riscos

A estratégia também traz alguns riscos:

  1. A utilização de um curto ciclo de média-linha pode aumentar a probabilidade de um stop-loss devido à sua vulnerabilidade às flutuações de curto prazo no mercado.
  2. A estratégia é muito mecanizada e não pode ser adaptada a situações específicas do mercado.
  3. A estratégia pode sofrer grandes prejuízos em mercados de baixa de longo prazo sem levar em conta as tendências do grande ciclo.

Para reduzir o risco, pode-se considerar otimizar a escolha da linha média de entrada, ou adicionar o julgamento auxiliar da linha média de longo período. Ao mesmo tempo, também pode-se ajustar o ponto de parada de stop loss, para torná-lo mais adequado à situação real do mercado.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Aumentar a média de mais ciclos diferentes, formando uma filtragem de vários níveis e aumentando a estabilidade da estratégia.
  2. Adicionar outros indicadores técnicos, como MACD, indicadores de força, etc., para auxiliar a admissão.
  3. A partir de agora, os investidores poderão avaliar as tendências do grande ciclo, evitando que os investidores permaneçam em uma situação de queda de longo prazo.
  4. Otimizar o ponto de parada para que ele possa se adaptar melhor às flutuações reais do mercado.
  5. Teste com um ciclo de resposta mais longo para avaliar a estabilidade dos parâmetros.

Resumir

Esta estratégia baseia-se no princípio do cruzamento de linhas uniformes, adotando a lógica estratégica de entrada de ouro, parada de parada e saída de perda, é simples e fácil de implementar, e o desempenho do feedback também é mais estável. A estabilidade e o nível de lucro da estratégia podem ser ainda mais aumentados pela adição de mais indicadores técnicos auxiliares, parâmetros de otimização e expansão do alcance do feedback.

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

//@version=3
strategy(title="Revolut v1.0", overlay=true)

// === GENERAL INPUTS ===
ATR = atr(3)
ema3 = ema(close, 3)
ema5 = ema(close, 5)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true// create function "within window of time"


// === PLOTTING ===
plot(ema3, title="Ema 3", color = white, linewidth = 2, transp=0)
plot(ema5, title="Ema 5", color = aqua, linewidth = 2, transp=0)



// === ENTRY POSITION LOGIC ===
entryCondition = crossover(ema(close, 3), ema(close, 5))
if (entryCondition)
    strategy.entry("ENTRY", strategy.long, when=window())
    

// === EXIT POSTION LOGIC ===
//strategy.exit("Take Profit", "ENTRY", profit=6, loss=5, when=window())
strategy.exit("Take Profi Or STOP", "ENTRY", profit = 6, loss = 5, when=window())
  

// #####################################
// We can start to incorperate this into the script later
// We can program a emergency exit price
//strategy.close_all()

// You can use this if you want another exit
//strategy.exit("2nd Exit", "ENTRY", profit=1500, stop=500, when=window())