Estratégia de negociação de tendência baseada no preço extremo

Autora:ChaoZhang, Data: 2023-12-12 14:36:14
Tags:

img

Resumo

Esta estratégia calcula os pontos de preço máximos e mínimos durante um determinado período para formar bandas superiores e inferiores. Quando o preço atual atravessa a faixa superior ou inferior, são tomadas posições longas ou curtas. A estratégia julga principalmente a tendência dos preços e os negócios quando a tendência se fortalece.

Estratégia lógica

O principal indicador desta estratégia é o cálculo dos pontos de preço máximos e mínimos durante um período.

Banda superior: Escaneie a linha K no período de esquerda para direita para encontrar um ponto máximo, e então determine se a 1a linha K à sua esquerda para a extrema esquerda e a 1a linha K à sua direita para a extrema direita são ambas inferiores a este ponto máximo.

Faixa inferior: Escaneie a linha K no período de esquerda para direita para encontrar um ponto mínimo baixo e, em seguida, determine se a 1a linha K na sua esquerda para a extrema esquerda e a 1a linha K na sua direita para a extrema direita são ambas superiores a este ponto mínimo baixo.

Ao repetir este cálculo, as faixas superior e inferior dos preços durante um período podem ser obtidas. Tomar posições longas quando os preços quebram a faixa superior e tomar posições curtas quando os preços quebram a faixa inferior.

Análise das vantagens

A forma como esta estratégia julga a tendência é bastante direta, determinando a parte de fortalecimento da tendência através de pontos extremos de preço, o que pode efetivamente filtrar cenários de consolidação e evitar negociações em consolidações.

Análise de riscos

A estratégia leva sinais bastante estritamente, o que pode perder mais oportunidades de negociação. Além disso, os pontos extremos precisam de algum tempo para se acumular e formar, o que será relativamente atrasado. Os parâmetros precisam de otimização adequada. Quando os parâmetros são inadequados, sinais errados também são muito prováveis de ocorrer.

O rigor do julgamento dos pontos extremos pode ser moderadamente reduzido para permitir algumas flutuações para reduzir o risco de erro de julgamento.

Orientações de otimização

O ciclo para determinar as bandas superior e inferior pode ser adequadamente otimizado para melhor capturar a tendência.

A fim de reduzir a possibilidade de perdas de oportunidades de negociação, as condições para a determinação dos pontos extremos podem ser moderadamente flexibilizadas para permitir alguma flutuação.

Pode ser tentado confirmar com outros indicadores, tais como indicadores de volume, médias móveis, etc., para evitar o risco de sinais errados resultantes de um julgamento de um único indicador.

Conclusão

A maneira como esta estratégia julga as características da tendência por pontos extremos de preço é bastante direta e eficaz. Ela pode efetivamente filtrar a consolidação e determinar o tempo de fortalecimento das tendências para a negociação de tendências. A vantagem da estratégia reside na boa posição de geração de sinal para perseguir tendências. A deficiência é que os sinais podem ter algum atraso e é difícil capturar voltas. Através da otimização de parâmetros e condições, esta estratégia pode se tornar uma ferramenta de julgamento de tendências relativamente confiável.


/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/02/2018
//  Stock market moves in a highly chaotic way, but at a larger scale, the movements 
// follow a certain pattern that can be applied to shorter or longer periods of time 
// and we can use Fractal Chaos Bands Indicator to identify those patterns. Basically, 
// the Fractal Chaos Bands Indicator helps us to identify whether the stock market is 
// trending or not. When a market is trending, the bands will have a slope and if market 
// is not trending the bands will flatten out. As the slope of the bands decreases, it 
// signifies that the market is choppy, insecure and variable. As the graph becomes more 
// and more abrupt, be it going up or down, the significance is that the market becomes 
// trendy, or stable. Fractal Chaos Bands Indicator is used similarly to other bands-indicator 
// (Bollinger bands for instance), offering trading opportunities when price moves above or 
// under the fractal lines.
//
// The FCB indicator looks back in time depending on the number of time periods trader selected 
// to plot the indicator. The upper fractal line is made by plotting stock price highs and the 
// lower fractal line is made by plotting stock price lows. Essentially, the Fractal Chaos Bands 
// show an overall panorama of the price movement, as they filter out the insignificant fluctuations 
// of the stock price.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
fractalUp(pattern) =>
    p = high[pattern+1]
    okl = 1
    okr = 1
	for i = pattern to 1
		okl := iff(high[i] < high[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(high[i] < high[i-1] and okr == 1, 1, 0)
	res = iff(okl == 1 and okr == 1, p, res[1])
    res

fractalDn(pattern) =>
    p = low[pattern+1]
    okl = 1
    okr = 1
	for i = pattern to 1
		okl := iff(low[i] > low[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(low[i] > low[i-1] and okr == 1, 1, 0)
	res = iff(okl == 1 and okr == 1, p, res[1])
    res

strategy(title="Fractal Chaos Bands", overlay = true)
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
xUpper = fractalUp(Pattern)
xLower = fractalDn(Pattern)
pos = iff(close > xUpper, 1,
       iff(close < xLower, -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(xUpper, color=red, title="FCBUp")
plot(xLower, color=green, title="FCBDn")

Mais.