Estratégia de inversão de momento SAR parabólica

Autora:ChaoZhang, Data: 2023-12-22 14:45:12
Tags:

img

Resumo

Esta estratégia utiliza a operação de cruzamento entre o valor deslizante do SAR Parabólico e o candelabro para alcançar o rastreamento do impulso e a parada da perda para a negociação de balanço. A estratégia estabelecerá posições longas e curtas quando o preço estiver subindo e caindo.

Estratégia lógica

O núcleo desta estratégia depende do indicador Parabolic SAR para determinar se o preço atual está em uma tendência ascendente ou descendente. Quando o indicador Parabolic SAR está abaixo do candelabro, isso significa que o preço está atualmente subindo. Neste caso, a estratégia verificará no fechamento de cada candelabro se o valor Parabolic SAR cruza acima do mínimo do candelabro. Caso contrário, isso significa que a tendência ascendente continua e a estratégia estabelecerá uma posição longa. Se o Parabolic SAR cruzar acima do mínimo, isso significa que a tendência ascendente reverte para baixo, e a estratégia fechará a posição longa para parar a perda.

Ao contrário, quando o SAR Parabólico está acima do candelabro, isso significa que o preço está caindo atualmente. Neste caso, a estratégia verificará no fechamento de cada candelabro se o SAR Parabólico cruza abaixo do máximo do candelabro. Caso contrário, ele estabelecerá uma posição curta. Se o SAR Parabólico cruzar o máximo, isso significa que a tendência de baixa se inverte para cima e a estratégia fechará a posição curta para parar a perda.

Através desta lógica, a estratégia pode estabelecer posições ao longo da tendência de preço e realizar o stop loss na primeira vez que a tendência se inverte, bloqueando os lucros.

Vantagens

  1. O SAR parabólico é um indicador técnico avançado e preciso para determinar pontos de tendência e inversão, melhorando a precisão do julgamento.
  2. A utilização dos métodos de rastreamento do momento e de reversão de stop loss pode fazer pleno uso das oportunidades de tendência.
  3. As regras estritas de stop loss significam uma boa capacidade de controlo de riscos.
  4. Os parâmetros otimizados tornam esta estratégia particularmente adequada para o GBP/JPY com forte tendência.

Riscos

  1. Como qualquer estratégia de indicador único, esta estratégia pode sofrer com o julgamento incorreto do Parabolic SAR sobre tendência e reversões.
  2. A estratégia depende inteiramente do SAR Parabólico para entradas e saídas.
  3. Qualquer estratégia individual pode deteriorar-se gradualmente devido a mudanças na estrutura e no ambiente do mercado.

Os métodos para melhorar a robustez incluem: a otimização dos pontos de stop loss para torná-los suficientemente rigorosos; a combinação de outros indicadores para confirmação; o ajuste de parâmetros para se adaptar a ambientes em mudança; a seleção de conjuntos de parâmetros ideais para diferentes produtos, etc.

Orientações de otimização

  1. Teste e otimize combinações de parâmetros SAR parabólicos para um melhor desempenho.
  2. Combinar outros indicadores como MACD, KD para formar um sistema de confirmação multi-indicador, melhorando a confiabilidade do sinal.
  3. Efeitos de teste de diferentes métodos de stop loss, como trail stop loss, time stop loss, price stop loss, etc.
  4. Otimizar os parâmetros com base nas diferentes características do produto, de modo a que a estratégia possa obter bons retornos em todos os produtos.

Conclusão

Em geral, esta estratégia de balanço parabólico SAR é uma estratégia de negociação de curto prazo bastante eficaz. Ela aproveita o parabólico SAR para determinar a direção da tendência e as mudanças de momento, juntamente com os métodos de negociação de balanço, para estabelecer posições longas e curtas repetidamente durante tendências de alta e baixa. O mecanismo de stop loss rigoroso também dá a esta estratégia uma capacidade decente de controle de risco. Mas como uma estratégia de indicador único, a invalidez do parabólico SAR terá um impacto significativo. Então, esta é uma estratégia com alguma força e potencial, mas também tem alguns riscos.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Parabolic SAR Strategy", overlay=true)
start = input(0.05)
increment = input(0.075)
maximum = input(1)

fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
	firstTrendBar = false
	SAR := nextBarSAR
	if bar_index == 1
		float prevSAR = na
		float prevEP = na
		lowPrev = low[1]
		highPrev = high[1]
		closeCur = close
		closePrev = close[1]
		if closeCur > closePrev
			uptrend := true
			EP := high
			prevSAR := lowPrev
			prevEP := high
		else
			uptrend := false
			EP := low
			prevSAR := highPrev
			prevEP := low
		firstTrendBar := true
		SAR := prevSAR + start * (prevEP - prevSAR)
	if uptrend
		if SAR > low
			firstTrendBar := true
			uptrend := false
			SAR := max(EP, high)
			EP := low
			AF := start
	else
		if SAR < high
			firstTrendBar := true
			uptrend := true
			SAR := min(EP, low)
			EP := high
			AF := start
	if not firstTrendBar
		if uptrend
			if high > EP
				EP := high
				AF := min(AF + increment, maximum)
		else
			if low < EP
				EP := low
				AF := min(AF + increment, maximum)
	if uptrend
		SAR := min(SAR, low[1])
		if bar_index > 1
			SAR := min(SAR, low[2])
	else
		SAR := max(SAR, high[1])
		if bar_index > 1
			SAR := max(SAR, high[2])
	nextBarSAR := SAR + AF * (EP - SAR)
	if barstate.isconfirmed and time_cond
		if uptrend
			strategy.entry("ParSE", strategy.short, stop=nextBarSAR, comment="ParSE")
			strategy.cancel("ParLE")
		else
			strategy.entry("ParLE", strategy.long, stop=nextBarSAR, comment="ParLE")
			strategy.cancel("ParSE")
plot(SAR, style=plot.style_cross, linewidth=3, color=color.orange)
plot(nextBarSAR, style=plot.style_cross, linewidth=3, color=color.aqua)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Mais.