
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.
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.
É uma estratégia muito simples e eficaz, com as seguintes vantagens:
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;
Filtragem de sinais em combinação com uma média móvel simples, para evitar falsos sinais e melhorar a precisão do sinal;
O MACD funciona melhor em mercados altamente voláteis, como o mercado de criptomoedas;
A lógica da estratégia é simples e clara, fácil de entender e implementar, com um baixo limiar e fácil de aplicar;
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.
Mas a estratégia também tem riscos, principalmente em alguns aspectos:
O uso de médias móveis simples como filtro de sinal pode, em algumas circunstâncias, perder o melhor momento de entrada;
Não usar uma estratégia de stop-loss pode trazer grandes perdas individuais para a conta;
Pode ocorrer algum atraso ou falso sinal, causando prejuízos desnecessários;
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.
De acordo com a análise de risco acima, a estratégia pode ser melhorada em várias direções:
Experimentar diferentes configurações de parâmetros e diferentes combinações de indicadores para encontrar o melhor parâmetro;
Aumentar a estratégia de stop loss, limitando o valor máximo de perdas individuais;
Otimizar a hora de entrada, estabelecer métodos mais rigorosos de verificação de sinais e garantir a eficácia dos sinais;
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.
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.
/*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)