
A ideia principal desta estratégia é combinar o indicador percentrank e a otimização de parâmetros para permitir o julgamento e o acompanhamento de tendências de preços. A estratégia gera sinais de negociação, comparando o preço atual com a porcentagem de tamanho do preço em um determinado período histórico, para capturar o efeito de espelho intermediário, acompanhar a tendência e, em seguida, obter lucros extras.
A estratégia usa o indicador percentrank para determinar a tendência dos preços. O percentrank indica a intensidade relativa dos preços atuais durante o período de visualização. O parâmetro len indica a duração do período de visualização histórico.
O percentrank tem um valor entre 0 e 100. Quando o percentrank é próximo a 0, o preço atual está próximo ao preço mais baixo do período de visualização e está na zona de subvalorização. Quando é próximo a 100, o preço atual está próximo ao preço mais alto do período de visualização e está na zona de subvalorização.
A estratégia também introduziu o parâmetro scale como o deslocamento. A escala de 0 a 100 é movida para a escala de 100 + escala. Ao mesmo tempo, são configuradas duas linhas de sinalização level_1 e level_2 .
Quando o indicador de percentrank do preço atravessa o level_1 de baixo para cima, gera um sinal de compra; quando atravessa o level_2 de cima para baixo, gera um sinal de compra. Condições de equilíbrio são o oposto do sinal de entrada.
Para os riscos acima, pode ser otimizado por ajustar os parâmetros de configuração len, scale, level; e pode ser combinado com outros indicadores como confirmação, evitando transações erradas.
A estratégia ainda tem espaço para ser melhorada:
A estratégia tem uma visão geral clara e usa métodos quantitativos de otimização de parâmetros para julgar e rastrear tendências de preços. Tem um certo valor realista, mas ainda precisa ser testado e otimizado para reduzir o risco realista e aumentar a lucratividade estável.
/*backtest
start: 2023-12-02 00:00:00
end: 2024-01-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Alex_Dyuk
//@version=4
strategy(title="percentrank", shorttitle="percentrank")
src = input(close, title="Source")
len = input(title="lookback - Период сравнения", type=input.integer, defval=10, minval=2)
scale = input(title="scale offset - смещение шкалы", type=input.integer, defval=50, minval=0, maxval=100)
level_1 = input(title="sygnal line 1", type=input.integer, defval=30)
level_2 = input(title="sygnal line 2", type=input.integer, defval=-30)
prank = percentrank(src,len)-scale
plot(prank, style = plot.style_columns)
plot(level_2, style = plot.style_line, color = color.red)
plot(level_1, style = plot.style_line, color = color.green)
longCondition = (crossunder(level_1, prank) == true)
if (longCondition)
strategy.entry("Long", strategy.long)
longExitCondition = (crossover(level_2, prank) == true)
if (longExitCondition)
strategy.close("Long")
shortCondition = (crossover(level_2, prank) == true)
if (shortCondition)
strategy.entry("Short", strategy.short)
shortexitCondition = (crossunder(level_1, prank) == true)
if (shortexitCondition)
strategy.close("Short")