Estratégias de negociação de criptomoedas baseadas no MACD e indicadores aleatórios

Autora:ChaoZhang, Data: 2024-02-01 11:52:15
Tags:

基于MACD与随机指标的加密货币交易策略

Resumo

Esta estratégia é uma estratégia de negociação de criptomoedas baseada em uma combinação de indicadores MACD e indicadores aleatórios. Ela gera sinais de negociação para capturar mudanças de tendência no mercado de criptomoedas, calculadamente o indicador MACD do preço do Bitcoin e aplicando indicadores aleatórios sobre ele.

Princípios estratégicos

A estratégia começa com o cálculo do indicador MACD. O MACD é um indicador que acompanha a tendência. Ele é composto por uma linha rápida e uma linha lenta, que são as médias móveis do índice no curto prazo e a linha lenta é a média móvel do índice no longo prazo.

Após o cálculo do indicador MACD, a estratégia aplica o indicador aleatório %K ao próprio indicador MACD. A fórmula de cálculo do indicador aleatório%K é:

%K = (preço de fechamento atual - preço mínimo em N dias) / (preço máximo em N dias - preço mínimo em N dias) * 100

Os indicadores aleatórios refletem a mudança do preço das ações fora do mais recente intervalo. Os valores de %K que variam entre 20-80 representam o movimento das ações dentro do intervalo contínuo. Quando %K cruza a linha 20 de baixo para cima, é um sinal de compra. Quando %K cruza a linha 80 de cima para baixo, é um sinal de venda.

Esta estratégia combina sinais de negociação do indicador MACD e do indicador aleatório%K para negociar no mercado de criptomoedas. Quando o indicador aleatório%K cruza 20 para cima, um sinal de compra é gerado; quando o indicador aleatório%K cruza 80 para baixo, um sinal de venda é gerado.

Vantagens estratégicas

A estratégia combina análise de tendências e indicadores de sobrevenda para identificar de forma eficaz pontos de inflexão importantes no mercado. Em comparação com um único indicador MACD ou um indicador aleatório, o uso combinado de %K e MACD pode aumentar a confiabilidade do sinal e reduzir os falsos sinais.

Além disso, a estratégia aplica indicadores técnicos usados no mercado de ações ao comércio de criptomoedas, o que é um uso transversal. Este indicador é igualmente aplicável no mercado de moedas digitais e pode até ser melhor devido à alta volatilidade das moedas digitais.

Riscos e soluções

O maior risco desta estratégia é a alta volatilidade do mercado de criptomoedas, que é propensa a gerar falsos sinais que resultam em perdas de negociação. Além disso, quando os indicadores técnicos emitem sinais, o preço pode ter produzido uma mudança de certa magnitude, existindo o risco de não captar adequadamente o início da tendência.

Para controlar esses riscos, recomenda-se usar o stop loss móvel para bloquear os lucros e evitar que os prejuízos se expandam ainda mais. Ao mesmo tempo, pode-se ajustar os parâmetros apropriadamente para explorar mais oportunidades potenciais usando diferentes comprimentos de ciclo.

Estratégias de otimização

Primeiro, a estratégia pode tentar usar a média móvel em combinação com indicadores de volatilidade, como a faixa de Bryn, para definir parâmetros de volatilidade para identificar a eficácia da ruptura e evitar falsos sinais.

Segundo, um modelo de aprendizagem de máquina pode ser introduzido para treinar dados históricos e construir uma floresta aleatória ou um modelo de rede neural LSTM que ajude a julgar a eficácia dos sinais indicadores.

Terceiro, o aumento do mecanismo de stop loss. Quando o preço move-se em direção a uma direção desfavorável acima de uma certa amplitude, ele executa automaticamente o stop loss para controlar o risco.

Resumo

Esta estratégia combina o indicador MACD e o indicador aleatório %K, utilizando métodos de verificação mútua dos sinais dos dois indicadores para desenvolver estratégias de negociação de criptomoedas. Esta estratégia de combinação de indicadores pode melhorar a precisão do sinal até certo ponto. Mas também precisamos estar atentos aos efeitos de ruído e lagging que podem ser causados por combinações de indicadores muito complexas.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Schaff Trend Cycle Strategy", shorttitle="STC Backtest", overlay=true)

fastLength = input(title="MACD Fast Length",  defval=23)
slowLength = input(title="MACD Slow Length",  defval=50)
cycleLength = input(title="Cycle Length",  defval=10)
d1Length = input(title="1st %D Length",  defval=3)
d2Length = input(title="2nd %D Length",  defval=3)
src = input(title="Source", defval=close)
highlightBreakouts = input(title="Highlight Breakouts ?", type=bool, defval=true)

macd = ema(src, fastLength) - ema(src, slowLength)
k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))
d = ema(k, d1Length)
kd = nz(fixnan(stoch(d, d, d, cycleLength)))

stc = ema(kd, d2Length)
stc := 	stc > 100 ? 100 : stc < 0 ? 0 : stc

upper = input(75, defval=75)
lower = input(25, defval=25)

long =  crossover(stc, lower) ? lower : na
short = crossunder(stc, upper) ? upper : na

long_filt = long and not short
short_filt = short and not long

prev = 0
prev := long_filt ? 1 : short_filt ? -1 : prev[1]

long_final = long_filt and prev[1] == -1
short_final = short_filt and prev[1] == 1

//alertcondition(long_final, "Long", message="Long")
//alertcondition(short_final,"Short", message="Short")

//plotshape(long_final, style=shape.arrowup, text="Long", color=green, location=location.belowbar)
//plotshape(short_final, style=shape.arrowdown, text="Short", color=red, location=location.abovebar)

strategy.entry("long", strategy.long, when = long )
strategy.entry("short", strategy.short, when = short)


Mais informações