O recurso está a ser carregado... Carregamento...

Estratégia de acompanhamento da tendência baseada em desvios

Autora:ChaoZhang, Data: 2024-01-22 11:51:28
Tags:

img

Resumo

Esta estratégia identifica e acompanha tendências com base em indicadores de desvio de preço combinados com áreas de retração de Fibonacci.

Estratégia lógica

A estratégia usa VWAP como a linha do ponto médio do preço. Em seguida, as faixas superior e inferior de 1.618 e 2.618 desvio padrão de flutuações de preços são calculadas. Um sinal longo é gerado quando o preço quebra a faixa inferior para cima. Um sinal curto é gerado quando o preço quebra a faixa superior para baixo.

Os sinais de stop loss EXIT após a abertura de posições longas ou curtas são: a linha de stop loss para posições longas é a faixa inferior, e para posições curtas é a faixa superior.

Concretamente, envolve as seguintes etapas:

  1. Calcular o VWAP como linha do ponto médio do preço

  2. Calcular o desvio-padrão sd do preço como indicador da volatilidade dos preços

  3. Calcule as faixas superior e inferior com base em sd. As faixas superiores são VWAP + 1.618sd e VWAP + 2.618sd. As faixas inferiores são VWAP - 1.618sd e VWAP - 2.618Sd.

  4. Um sinal longo é gerado quando o preço quebra a faixa inferior de 1,618 para cima. Um sinal curto é gerado quando o preço quebra a faixa superior de 1,618 para baixo.

  5. EXIT de stop loss longo: o preço atravessa a faixa inferior de 2,618; EXIT de stop loss curto: o preço atravessa a faixa superior de 2,618.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. Os indicadores de desvio de preços podem determinar eficazmente as tendências de preços e acompanhar as tendências

  2. As áreas de retracement de Fibonacci tornam as saídas de entrada e stop loss mais claras

  3. O VWAP como linha do ponto médio do preço também aumenta o valor de referência do indicador

  4. Os parâmetros podem ser ajustados de acordo com diferentes produtos e prazos

Análise de riscos

A estratégia apresenta também alguns riscos:

  1. Pode incorrer em perdas maiores durante inversões de tendência

  2. Ajustes de parâmetros incorretos também podem afetar o desempenho da estratégia

  3. Há um risco de stop loss mais elevado durante as violentas flutuações de preços

Contramedidas:

  1. Redução adequada do período de detenção e suspensão das perdas a tempo

  2. Otimizar parâmetros para encontrar a melhor combinação de parâmetros

  3. Aumentar a gestão do dimensionamento das posições para controlar perdas únicas

Orientações de otimização

A estratégia pode também ser otimizada nos seguintes domínios:

  1. Incorporar indicadores de tendência para evitar negociações contra tendência

  2. Adicionar mecanismos de gestão de dimensionamento de posição

  3. Optimize as configurações dos parâmetros

  4. Backtest e otimização em vários prazos

Resumo

Esta estratégia identifica e rastreia tendências baseadas no conceito de desvio de preço combinado com bandas de desvio padrão VWAP e Fibonacci. Em comparação com o uso de indicadores únicos como médias móveis, esta estratégia tem julgamentos e controle de risco mais claros. Através do ajuste e otimização de parâmetros, a estratégia pode ser adaptada a diferentes produtos e prazos para alcançar um melhor desempenho.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
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/
// © Mysteriown

//@version=4
strategy(title="VWAP + Fibo Dev Extensions Strategy", overlay=true, pyramiding=5, commission_value=0.08)

// -------------------------------------
// ------- Inputs Fibos Values ---------
// -------------------------------------

fib1 = input(title="Fibo extension 1", type=input.float, defval=1.618)
fib2 = input(title="Fibo extension 2", type=input.float, defval=2.618)
reso = input(title="Resolution VWAP", type=input.resolution, defval="W")
dev = input(title="Deviation value min.", type=input.integer, defval=150)


// -------------------------------------
// -------- VWAP Calculations ----------
// -------------------------------------

t = time(reso)
debut = na(t[1]) or t > t[1]

addsource = hlc3 * volume
addvol = volume
addsource := debut ? addsource : addsource + addsource[1]
addvol := debut ? addvol : addvol + addvol[1]
VWAP = addsource / addvol

sn = 0.0
sn := debut ? sn : sn[1] + volume * (hlc3 - VWAP[1]) * (hlc3 - VWAP)
sd = sqrt(sn / addvol)

Fibp2 = VWAP + fib2 * sd
Fibp1 = VWAP + fib1 * sd
Fibm1 = VWAP - fib1 * sd
Fibm2 = VWAP - fib2 * sd


// -------------------------------------
// -------------- Plots ----------------
// -------------------------------------

plot(VWAP, title="VWAP", color=color.orange)
pFibp2 = plot(Fibp2, color=color.red)
pFibp1 = plot(Fibp1, color=color.red)
pFibm1 = plot(Fibm1, color=color.lime)
pFibm2 = plot(Fibm2, color=color.lime)

fill(pFibp2,pFibp1, color.red)
fill(pFibm2,pFibm1, color.lime)


// -------------------------------------
// ------------ Positions --------------
// -------------------------------------

bull = crossunder(low[1],Fibm1[1]) and low[1]>=Fibm2[1] and low>Fibm2 and low<Fibm1 and sd>dev
bear = crossover(high[1],Fibp1[1]) and high[1]<=Fibp2[1] and high<Fibp2 and high>Fibp1 and sd>dev

//plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0)
//plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0)


// -------------------------------------
// --------- Strategy Orders -----------
// -------------------------------------

strategy.entry("Long", true, when = bull)
strategy.close("Long", when = crossover(high,VWAP) or crossunder(low,Fibm2))

strategy.entry("Short", false, when = bear)
strategy.close("Short", when = crossunder(low,VWAP) or crossover(high,Fibp2))

Mais.