
A estratégia é uma estratégia de otimização de melhorias com base na taxa de variação do indicador de força de rotação (ROC). Em comparação com a estratégia original de ROC, a estratégia foi otimizada da seguinte forma:
Com esses métodos de otimização, muitos sinais inativos podem ser filtrados, tornando a estratégia mais estável e confiável.
O indicador central da estratégia é a taxa de variação (ROC). A ROC mede a taxa de variação do preço de uma ação em um determinado período. A estratégia primeiro calcula o ROC de 9 ciclos de comprimento. Em seguida, registra o valor máximo desse indicador de ROC nos últimos 200 ciclos e calcula a porcentagem do ROC atual em relação ao maior ROC histórico, obtendo a intensidade relativa do impulso.
Esta intensidade relativa é processada de forma suave através de um SMA de 10 de comprimento, filtrando os movimentos de curto prazo e obtendo uma curva de suavização. Quando a curva de suavização está alta por 3 dias consecutivos e o valor é inferior a -80%, considere que a queda do preço da ação começa a abrandar, produzindo sinais de fundo, portanto, faça mais; Quando a curva de suavização está baixa por 3 dias consecutivos e o valor é superior a 80%, considere que a subida do preço da ação começa a abrandar, produzindo sinais de topo e, portanto, feche a posição.
A estratégia tem as seguintes vantagens em comparação com a estratégia original do ROC:
Em geral, a estratégia é uma efetiva subtração do indicador ROC, o que o torna mais adequado para negociação em ativos reais.
A estratégia tem os seguintes riscos:
Para reduzir o risco acima, pode-se considerar a combinação de indicadores de tendência para determinar a tendência maior; ajustar os parâmetros de limiar, testar os melhores parâmetros; otimizar os parâmetros de ciclo SMA.
A estratégia pode ser otimizada de acordo com:
A estratégia é uma estratégia de otimização para o desenvolvimento secundário com base no indicador de ROC. Ela introduz métodos como comparação de valores máximos históricos, suavização SMA e redução de valores de compra e venda, que podem filtrar sinais inativos e tornar a estratégia mais estável. O principal benefício é a alta qualidade do sinal, adequado para o mercado real.
/*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")