A estratégia determina a direção da tendência com base na relação entre a taxa de flutuação e a sua média móvel, através do cálculo de uma média móvel da escala de flutuação real, refletindo a taxa de flutuação do mercado. Olhe para cima quando a taxa de flutuação atravessa a média móvel, olhe para baixo quando ela atravessa a média móvel e defina um stop loss.
Utilize a função ATR para calcular o real intervalo de flutuação no período especificado. Em seguida, calcule a média móvel simples do ATR, como uma média móvel da taxa de flutuação. Quando o ATR atravessa sua média móvel, considere que a taxa de flutuação do mercado aumenta e adote uma estratégia de otimização. Quando o ATR atravessa sua média móvel, considere que a taxa de flutuação do mercado diminui e adote uma estratégia de otimização.
Ao manter uma posição, é configurado um tracking stop loss de proporção fixa, que ajusta dinamicamente a posição de stop loss de acordo com a mudança de preço, protegendo os lucros ao mesmo tempo em que evita que o stop loss seja coberto.
A estratégia julga o movimento do mercado através de indicadores de volatilidade, evitando ser enganado pelo ruído. Quando a volatilidade sobe, olhe para baixo, quando baixa, olhe para cima, realizando uma operação de hedge. O tracking stop loss pode ajustar a posição de stop loss de acordo com a mudança de preço em tempo real, podendo reduzir o stop loss desnecessário ao mesmo tempo em que protege os lucros.
A estratégia baseia-se apenas em um indicador de taxa de flutuação, com um certo atraso. E o rastreamento de stop loss considera apenas a mudança de preço na direção negativa, não protegendo os lucros do rebote. Quando o preço flutua drasticamente, a linha de stop loss pode ser rompida, causando grandes perdas.
Pode-se otimizar adequadamente o ATR e os parâmetros de ciclo da linha média, ou pode-se juntar outros indicadores para um julgamento integrado. O método de stop loss também pode ser transformado em stop loss dinâmico, ajustando a amplitude de stop loss de acordo com a volatilidade do mercado.
Teste diferentes combinações de ATR e de parâmetros de ciclo medíocre para encontrar o parâmetro ideal.
Adicionar outros indicadores de julgamento, formar um portfólio de estratégias e aumentar a precisão da estratégia.
Estabelecer uma estratégia de stop loss dinâmica, ajustando a amplitude de stop loss de acordo com a volatilidade do mercado.
Para otimizar a estratégia de gestão de fundos, diferentes variedades podem definir diferentes níveis de posições.
Aplicando técnicas de aprendizagem de máquina para auxiliar na determinação de pontos de inflexão na volatilidade do mercado.
Combinado com indicadores de linha média de nível superior, identifica direções de tendências em níveis maiores.
A estratégia de usar os indicadores de volatilidade para determinar a tendência do mercado é mais simples e direta, mas pode ser limitada por um único indicador. A introdução apropriada de vários indicadores de julgamento e parâmetros de otimização pode aumentar a estabilidade da estratégia.
/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/08/2018
// The Volatility function measures the market volatility by plotting a
// smoothed average of the True Range. It returns an average of the TrueRange
// over a specific number of bars, giving higher weight to the TrueRange of
// the most recent bar.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Volatility Backtest", shorttitle="Volatility")
Length = input(10, minval=1)
LengthMA = input(26, minval=1)
reverse = input(false, title="Trade reverse")
xATR = atr(Length)
nRes = ((Length - 1) * nz(nRes[1], 0) + xATR) / Length
xMARes = sma(nRes, LengthMA)
pos = iff(nRes < xMARes, 1,
iff(nRes > xMARes, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue, title="Volatility")
plot(xMARes, color=red, title="MA")