Esta estratégia é uma estratégia de acompanhamento de tendências que visa capturar oscilações de preços causadas por tendências de linha média e longa.
Princípios da estratégia:
Calcule os pontos altos e baixos de oscilação de um determinado período.
Quando o preço ultrapassa o ponto mais alto de oscilação, execute uma operação de compra.
Quando o preço cai abaixo do ponto mais baixo de flutuação, a operação de venda é realizada.
O ponto de parada é definido como o ponto mais baixo do movimento anterior (múltiplos) ou o ponto mais alto do movimento anterior (vazio) para controlar o risco.
Quando o preço volta a cair abaixo do ponto de parada, o stop loss sai da posição.
As vantagens da estratégia incluem:
Identificar os pontos de oscilação pode ser eficaz para determinar a tendência. A negociação de tendência é uma operação de alta taxa de vitória.
Os pontos de oscilação de ruptura aceleram os comportamentos de preços, facilitando o acompanhamento da tendência.
O ponto de parada é definido em pontos de resistência de suporte crítico para controlar o risco.
Os riscos da estratégia incluem:
A identificação dos pontos de oscilação está frequentemente atrasada, podendo perder os melhores pontos de entrada.
O ponto de parada está muito próximo e pode ser atingido por um mercado de choque.
A ruptura é propensa a um efeito de cabeça, e o stop-loss deve ser definido para responder ao feedback.
Em resumo, a estratégia de ruptura de ponto de oscilação segue a tendência da linha média e leva a cabo a operação de ruptura de tendência. A estratégia pode obter uma maior taxa de vitória, mas deve ter em conta a escolha do ponto de entrada e a configuração do ponto de parada para otimizar o efeito da estratégia.
/*backtest
start: 2023-08-12 00:00:00
end: 2023-09-11 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Swing Points", overlay=true)
leftBars = input(1)
rightBars=input(1)
sl = pivotlow(low, leftBars, rightBars)
sh = pivothigh(high, leftBars, rightBars)
last_sh=na
last_sh:= sh!=0 ? sh : nz(last_sh[1])
last_sl=na
last_sl:= sl!=0 ? sl : nz(last_sl[1])
EMA = ema(close,55)
longCondition = sh and high > EMA
shortCondition = sl and close < EMA
exitLongCondition = sl < sh[1]
exitShortCondition = sh > sl[1]
if longCondition
strategy.entry("swinghigh", strategy.long, stop=last_sh)
if shortCondition
strategy.entry("swinglow", strategy.short, stop=last_sl)
if exitLongCondition
strategy.exit("stoplong", "swinghigh", stop = last_sl )
if exitShortCondition
strategy.exit("stopshort", "swinglow", stop = last_sh )
plot(EMA,linewidth = 4)