
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, calculando o indicador MACD do preço do Bitcoin e aplicando-lhe um indicador aleatório.
A estratégia começa com o cálculo do MACD. O MACD representa a média móvel convergente e divergente, um indicador de acompanhamento de tendências. É composto por uma linha rápida e uma linha lenta, a linha rápida é a média móvel do índice de curto prazo e a linha lenta é a média móvel do índice de longo prazo.
Depois de calcular o indicador MACD, a estratégia aplica o indicador aleatório %K ao próprio indicador MACD. A fórmula para o indicador aleatório %K é:
%K = (preço de fechamento atual - preço mínimo de N dias) / (preço máximo de N dias - preço mínimo de N dias) * 100
O indicador aleatório reflete a mudança do preço da ação fora da faixa mais recente. Os valores de% K entre 20 e 80 representam o movimento da ação na faixa de correção. 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 o indicador MACD com o indicador aleatório %K, para negociar no mercado de criptomoedas. O indicador aleatório %K gera um sinal de compra quando ele atravessa 20 para cima e um sinal de venda quando ele atravessa 80 para baixo.
Esta estratégia, combinada com a análise de tendências e o indicador de sobrevenda e sobrevenda, permite identificar os pontos de inflexão importantes no mercado. Em comparação com o uso de indicadores MACD ou aleatórios isolados, a combinação de% K e MACD pode aumentar a confiabilidade do sinal e reduzir os falsos sinais.
Além disso, esta estratégia aplica um indicador técnico comumente usado no mercado de ações para a negociação de criptomoedas, um uso de mercado cruzado. Este indicador também se aplica ao mercado de moedas digitais, e pode até ter um efeito melhor devido à alta volatilidade das moedas digitais.
O maior risco desta estratégia é a alta volatilidade do mercado de criptomoedas, que é propensa a produzir falsos sinais que levam a perdas de negociação. Além disso, quando os indicadores técnicos emitem sinais, o preço pode ter mudado de certa magnitude, existindo o risco de não ser capaz de capturar adequadamente o início da tendência.
Para controlar esses riscos, recomenda-se a utilização de stop loss móvel para bloquear os lucros e evitar que os prejuízos se espalhem ainda mais. Ao mesmo tempo, é possível ajustar os parâmetros de forma apropriada, usando diferentes comprimentos de ciclo para explorar mais oportunidades potenciais.
Primeiro, a estratégia pode tentar combinar a média móvel com um indicador de flutuabilidade, como a faixa de Bryn, para definir os parâmetros de flutuabilidade para identificar a eficácia de uma ruptura e evitar falsos sinais.
Em segundo lugar, é possível introduzir modelos de aprendizado de máquina para treinar dados históricos e criar modelos de florestas aleatórias ou redes neurais LSTM para auxiliar na avaliação da eficácia dos sinais indicadores.
Terceiro, aumentar o mecanismo de suspensão de perdas. Quando o preço se move na direção negativa acima de um determinado valor, a suspensão de perdas é executada automaticamente para controlar o risco.
Esta estratégia combina o indicador MACD com o indicador aleatório %K, usando a maneira como os dois indicadores verificam os sinais uns dos outros, para elaborar estratégias de negociação de criptomoedas. Esta estratégia de indicadores combinados pode melhorar a precisão do sinal até certo ponto. Mas também precisamos estar alertas aos efeitos de ruído e lagging que podem ser causados por combinações de indicadores excessivamente 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)