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.
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.
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.
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.
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.
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)