Esta estratégia otimiza a estratégia original de taxa de mudança (ROC).
Através dessas medidas de otimização, muitos sinais inválidos podem ser filtrados para tornar a estratégia mais estável e confiável.
O indicador central desta estratégia é a taxa de mudança (ROC). O ROC mede a taxa de mudança nos preços das ações durante um determinado período. Esta estratégia primeiro calcula o valor do ROC durante um período de 9. Em seguida, registra o valor máximo deste indicador ROC nos últimos 200 períodos e calcula o ROC atual como uma porcentagem do ROC histórico máximo para obter a força relativa do impulso. Por exemplo, se o ROC mais alto nos últimos 200 dias atingir 100, então a força relativa é de 80% quando o ROC de hoje é 80.
A força relativa é suavizada por uma SMA de 10 períodos para filtrar flutuações de curto prazo e obter uma curva suave. Quando a curva suave aumenta continuamente por 3 dias e o valor está abaixo de -80%, considera-se que o declínio do preço da ação começa a desacelerar e o sinal inferior aparece, então vá longo; quando a curva suave cai continuamente por 3 dias e o valor está acima de 80%, considera-se que o aumento do preço da ação começa a desacelerar e o sinal superior aparece, então a posição próxima.
Em comparação com a estratégia original da ROC, esta estratégia apresenta as seguintes vantagens principais:
Em geral, esta estratégia processa efetivamente o indicador ROC para torná-lo mais adequado para negociação ao vivo.
Os principais riscos desta estratégia são:
Para reduzir os riscos acima referidos, considerar a combinação de indicadores de tendência para determinar as principais tendências; ajustar parâmetros limiares e testar parâmetros ideais; otimizar os parâmetros do ciclo SMA.
A estratégia pode ser otimizada das seguintes formas:
Esta é uma estratégia de otimização baseada no desenvolvimento secundário do indicador ROC. Ela introduz meios como comparação de valor máximo histórico, suavização de SMA e limiares de compra e venda para filtrar sinais inválidos e tornar a estratégia mais estável. A principal vantagem é a alta qualidade do sinal, que é adequada para negociação ao vivo. Melhorias de acompanhamento podem ser feitas a partir da combinação de tendências, otimização de parâmetros e assim por diante para melhorar ainda mais o desempenho da estratégia.
/*backtest start: 2024-02-12 00:00:00 end: 2024-02-19 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Rate Of Change Mod Strategy", shorttitle="ROC", format=format.price, precision=2) //length = input.int(9, minval=1) //source = input(close, "Source") //roc = 100 * (source - source[length])/source[length] //plot(roc, color=#2962FF, title="ROC") //hline(0, color=#787B86, title="Zero Line") length = input.int(9, minval=1, title="Length") maxHistory = input(200, title="Max Historical Period for ROC") lenghtSmooth = input.int(10, minval=1, title="Length Smoothed ROC") lenghtBUY = input.int(-80, title="Buy Threshold") lenghtSELL = input.int(80, title="Buy Threshold") source = close roc = 100 * (source - source[length]) / source[length] // Calculate the maximum ROC value in the historical period maxRoc = ta.highest(roc, maxHistory) // Calculate current ROC as a percentage of the maximum historical ROC rocPercentage = (roc / maxRoc) * 100 rocPercentageS = ta.sma(rocPercentage, lenghtSmooth) if ta.rising(rocPercentageS, 3) and rocPercentageS < lenghtBUY strategy.entry("Buy", strategy.long) if ta.falling(rocPercentageS, 3) and rocPercentageS > lenghtSELL strategy.close("Buy") plot(rocPercentage, color=color.new(color.blue, 0), title="Percentage ROC") plot(rocPercentageS, color=color.new(#21f32c, 0), title="Percentage ROC") hline(0, color=color.new(color.gray, 0), title="Zero Line")