Estratégia de rastreamento bidirecional AlphaTrend


Data de criação: 2024-02-02 15:17:01 última modificação: 2024-02-02 15:17:01
cópia: 0 Cliques: 814
1
focar em
1617
Seguidores

Estratégia de rastreamento bidirecional AlphaTrend

Visão geral

A estratégia de acompanhamento bidirecional do AlphaTrend é uma estratégia de negociação baseada nos sinais de compra e venda do indicador AlphaTrend. A estratégia pode abrir posições de hipoteca e hipoteca nas áreas em que o indicador AlphaTrend gera sinais de compra e venda.

Princípio da estratégia

O núcleo da estratégia de acompanhamento bidirecional do AlphaTrend é o indicador AlphaTrend. O indicador AlphaTrend é baseado na combinação de amplitude de onda real média (ATR) e preço (preço de fechamento ou preço médio ponderado por volume de transação) para calcular a subida e a descida. O método de cálculo específico é:

A linha de raiz = preço mínimo - ATR * coeficiente A trajetória inferior = preço máximo + ATR * coeficiente

Onde ATR é a média real amplitude de um determinado período passado, o coeficiente é um parâmetro ajustável. Quando o preço é superior ao traçado superior, a linha do indicador é próxima ao traçado superior; Quando o preço é inferior ao traçado inferior, a linha do indicador é próxima ao traçado inferior. Assim, o indicador AlphaTrend forma um canal de adaptação.

A estratégia de acompanhamento bidirecional do AlphaTrend é baseada em sinais do indicador AlphaTrend para estabelecer posições de cabeçalho e cabeçalho. A lógica específica é:

  • Quando os preços sobem no indicador AlphaTrend, faça mais;
  • Quando o preço atravessa o indicador AlphaTrend abaixo, faça uma pausa.

A transação foi executada de forma bidirecional, com base no canal dinâmico do indicador AlphaTrend.

Análise de vantagens

A maior vantagem da estratégia de acompanhamento bidirecional do AlphaTrend é a capacidade de acompanhar as mudanças na tendência do mercado. O ATR adaptável pode ajustar o alcance do canal de acordo com as mudanças na volatilidade do mercado, evitando o problema de que indicadores tradicionais, como a faixa de Bryn Mawr, são facilmente inoperantes devido ao aumento da volatilidade.

Além disso, o indicador AlphaTrend, combinando preço e volume de transação (ou força de força), pode filtrar algumas brechas falsas. Isso também melhora a qualidade do sinal de estratégia.

Análise de Riscos

O principal risco da estratégia de seguimento bidirecional do AlphaTrend vem do impacto de grandes movimentos de mercado no canal do indicador. Quando o mercado apresenta uma flutuação anormal, o ponto de parada pode ser ultrapassado, resultando em grandes perdas. Isso requer o controle do risco por meio do ajuste adequado dos parâmetros de ATR e do ponto de parada.

Além disso, o próprio indicador ALPHA pode ter um certo atraso. Portanto, um sinal de erro pode ser produzido perto do ponto de viragem. Isso precisa ser confirmado por outros indicadores.

Direção de otimização

A estratégia de acompanhamento bidirecional da AlphaTrend pode ser otimizada em vários aspectos:

  1. Combinar os indicadores de tendência com as principais tendências do mercado, evitando negociações adversas;
  2. Aumentar os limites de volume de transação para evitar que a baixa quantidade de brechas falsas resulte em prejuízos;
  3. Otimizar os parâmetros dos indicadores para que o alcance do canal seja mais adequado às características das diferentes variedades;
  4. Aumentar os algoritmos de aprendizagem de máquina para tornar o canal mais inteligente.

Otimizando os pontos acima, pode-se melhorar ainda mais a estabilidade e a lucratividade da estratégia AlphaTrend.

Resumir

A estratégia de acompanhamento bidirecional do AlphaTrend é, em geral, uma estratégia eficaz para acompanhar as mudanças no mercado. Ela resolve o problema de que os indicadores técnicos tradicionais podem falhar facilmente e também combina o volume de transação para filtrar os sinais.

Código-fonte da estratégia
/*backtest
start: 2024-01-02 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
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/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5
strategy('AlphaTrend', shorttitle='AT', overlay=true, format=format.price, precision=2)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=true)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT

color1 = AlphaTrend > AlphaTrend[2] ? #00E60F : AlphaTrend < AlphaTrend[2] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)

fill(k1, k2, color=color1)

buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])


K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])

//plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))

//plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))



longCondition = buySignalk and showsignalsk and O1 > K2
if (longCondition)
    
    strategy.entry("BUY", strategy.long, comment = "BUY ENTRY")

shortCondition = sellSignalk and showsignalsk and O2 > K1
if (shortCondition )
    
    strategy.entry("SELL", strategy.short, comment = "SELL ENTRY")













// alertcondition(buySignalk and O1 > K2, title='Potential BUY Alarm', message='BUY SIGNAL!')
// alertcondition(sellSignalk and O2 > K1, title='Potential SELL Alarm', message='SELL SIGNAL!')

// alertcondition(buySignalk[1] and O1[1] > K2, title='Confirmed BUY Alarm', message='BUY SIGNAL APPROVED!')
// alertcondition(sellSignalk[1] and O2[1] > K1, title='Confirmed SELL Alarm', message='SELL SIGNAL APPROVED!')



// alertcondition(ta.cross(close, AlphaTrend), title='Price Cross Alert', message='Price - AlphaTrend Crossing!')
// alertcondition(ta.crossover(low, AlphaTrend), title='Candle CrossOver Alarm', message='LAST BAR is ABOVE ALPHATREND')
// alertcondition(ta.crossunder(high, AlphaTrend), title='Candle CrossUnder Alarm', message='LAST BAR is BELOW ALPHATREND!')

// alertcondition(ta.cross(close[1], AlphaTrend[1]), title='Price Cross Alert After Bar Close', message='Price - AlphaTrend Crossing!')
// alertcondition(ta.crossover(low[1], AlphaTrend[1]), title='Candle CrossOver Alarm After Bar Close', message='LAST BAR is ABOVE ALPHATREND!')
// alertcondition(ta.crossunder(high[1], AlphaTrend[1]), title='Candle CrossUnder Alarm After Bar Close', message='LAST BAR is BELOW ALPHATREND!')