Uma estratégia de negociação quantitativa MACD simples e eficiente


Data de criação: 2024-01-26 14:20:04 última modificação: 2024-01-26 14:20:04
cópia: 0 Cliques: 622
1
focar em
1617
Seguidores

Uma estratégia de negociação quantitativa MACD simples e eficiente

Visão geral

Esta estratégia é uma estratégia de negociação quantitativa MACD simples e eficiente, especialmente projetada para o mercado de criptomoedas, e é adequada para negociações em períodos de tempo mais elevados, como 1 hora, 4 horas, 1 dia, etc. A estratégia usa o indicador MACD para determinar a direção da tendência do mercado e, em combinação com uma média móvel simples, gera um sinal de negociação.

Princípio da estratégia

A estratégia usa o indicador MACD para determinar a tendência do mercado e gerar um sinal de negociação. O MACD é composto por uma linha rápida, uma linha lenta e uma coluna MACD. A linha rápida é uma média móvel de curto prazo, a linha lenta é uma média móvel de longo prazo.

Análise de vantagens

É uma estratégia muito simples e eficaz, com as seguintes vantagens:

  1. A utilização do MACD para determinar a direção do mercado, um indicador de análise técnica bem-sucedido e confiável que permite avaliar com precisão as tendências;

  2. Filtragem de sinais em combinação com uma média móvel simples, para evitar falsos sinais e melhorar a precisão do sinal;

  3. O MACD funciona melhor em mercados altamente voláteis, como o mercado de criptomoedas;

  4. A lógica da estratégia é simples e clara, fácil de entender e implementar, com um baixo limiar e fácil de aplicar;

  5. Pode ser executado em períodos de tempo mais elevados, o que reduz a frequência de negociação, reduzindo os custos de negociação e os efeitos de deslizamento.

Análise de Riscos

Mas a estratégia também tem riscos, principalmente em alguns aspectos:

  1. O uso de médias móveis simples como filtro de sinal pode, em algumas circunstâncias, perder o melhor momento de entrada;

  2. Não usar uma estratégia de stop-loss pode trazer grandes perdas individuais para a conta;

  3. Pode ocorrer algum atraso ou falso sinal, causando prejuízos desnecessários;

  4. Não tem em conta o tempo e a frequência de negociação para o lucro.

Todos esses riscos requerem melhoria e otimização da estratégia.

Direção de otimização

De acordo com a análise de risco acima, a estratégia pode ser melhorada em várias direções:

  1. Experimentar diferentes configurações de parâmetros e diferentes combinações de indicadores para encontrar o melhor parâmetro;

  2. Aumentar a estratégia de stop loss, limitando o valor máximo de perdas individuais;

  3. Otimizar a hora de entrada, estabelecer métodos mais rigorosos de verificação de sinais e garantir a eficácia dos sinais;

  4. Considerar o impacto de diferentes horários de negociação e frequência de negociação no nível geral de lucro.

A otimização dessas direções pode aumentar consideravelmente a estabilidade, o nível de lucro e a praticidade da estratégia.

Resumir

Em geral, é uma estratégia de negociação MACD muito valiosa para o combate. É simples, eficiente e fácil de implementar, ideal para quem deseja entrar rapidamente em negociações de quantificação.

Código-fonte da estratégia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © SoftKill21

//@version=4
strategy("MACD crypto strategy", overlay=true)

// Getting inputs
//fast_length = input(title="Fast Length", type=input.integer, defval=12)
//slow_length = input(title="Slow Length", type=input.integer, defval=26)
//src = input(title="Source", type=input.source, defval=close)
//signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
//sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
//sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

fast_length = 12
slow_length = 26
src = input(title="Source", type=input.source, defval=close)
signal_length = 9
sma_source = true
sma_signal = false

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal



longcondition = hist > 0 
shortcondition = hist < 0 

//sl = input(0.5, title="SL")
//tp = input(0.1, title="tp")

strategy.entry("long",1,when=longcondition)
strategy.entry("short",0,when=shortcondition)

//strategy.exit("x_long", "long" ,loss = close * sl / syminfo.mintick, profit = close * tp / syminfo.mintick , alert_message = "closelong")
//strategy.entry("short",0, when= loss = close * sl / syminfo.mintick)

//strategy.exit("x_short", "short" , loss = close * sl / syminfo.mintick, profit  = close * tp / syminfo.mintick,alert_message = "closeshort")

// risk = input(2, type=input.float,title="Risk percentage of BALANCE")
// strategy.risk.max_intraday_loss(risk, strategy.percent_of_equity)