Estratégia de negociação de média móvel de Hall bidirecional


Data de criação: 2023-12-11 11:30:15 última modificação: 2023-12-11 11:30:15
cópia: 0 Cliques: 826
1
focar em
1621
Seguidores

Estratégia de negociação de média móvel de Hall bidirecional

Visão geral

A estratégia de negociação de média móvel bidirecional de Hall é uma estratégia de negociação quantitativa que utiliza a média móvel bidirecional de Hall como sinal de negociação. A estratégia se baseia no uso de uma única média móvel na análise técnica tradicional, substituindo a média móvel bidirecional de Hall para comprar e vender em pontos de ruptura.

Princípio da estratégia

O núcleo da estratégia de negociação de médias móveis de Halle é a média móvel de Halle (Dual Hull Moving Average). A média móvel de Halle é composta por três linhas no meio, no topo e no fundo, representando diferentes médias de preços.

Trilha central:Mode (modeSwitch, src, len) Em linha: HULL[0] Subtracção: HULL[2]

A função Mode aqui permite escolher diferentes variantes da média móvel de Hull, incluindo HMA, EHMA e THMA. SRC representa a origem do preço e LEN representa o comprimento do ciclo.

A estratégia baseia-se na trajectória média de uma média móvel Halley bidirecional para determinar a relação entre o preço e a trajectória média e estabelecer um sinal de negociação:

  • Faça mais quando os preços sobem
  • Quando o preço atravessa a trajectória média, a posição de equilíbrio.

Ou seja, se o preço de fechamento da linha K atual for maior do que o valor da linha média, então faça mais na próxima linha de fechamento da linha K; se o preço de fechamento da linha K atual for menor do que o valor da linha média, então feche a posição na próxima linha de fechamento da linha K.

Análise de vantagens

A estratégia de negociação de média móvel bidirecional de Hall tem as seguintes vantagens:

  1. O uso de zonas de banda bidireccional em vez de uma única linha uniforme, tem um melhor efeito de suporte e resistência, e é mais vantajoso para o acompanhamento de tendências.

  2. Em comparação com a média móvel geral, a média móvel de Hull tem menor atraso e pode responder mais rapidamente às mudanças de preço.

  3. O método de análise técnica tradicional é fácil de entender e adequado para a automação de transações.

  4. A lógica da estratégia é simples, clara e fácil de implementar, adequada para a negociação de algoritmos de alta frequência.

  5. Tipos e parâmetros de médias móveis de Hull personalizáveis podem ser otimizados para diferentes variedades e prazos de negociação.

Análise de Riscos

Apesar de haver muitos benefícios para a estratégia de negociação de média móvel bidirecional de Hall, há alguns riscos a serem observados:

  1. Quando os preços oscilam, pode haver mais stop loss. Pode-se ajustar os parâmetros de forma apropriada, filtrando parte do ruído das transações.

  2. A estratégia é baseada principalmente no acompanhamento de tendências e não é eficaz quando os preços são horizontais. Outros indicadores ou mecanismos podem ser adicionados para julgar a tendência.

  3. A própria média móvel de Hull também apresenta um atraso, especialmente no curto prazo. A otimização de parâmetros e a combinação de indicadores podem ser parcialmente resolvidos.

  4. Os sinais de negociação são frequentes e são facilmente sobre-negociados. O gerenciamento de posições e a frequência de negociação são adequadamente controlados.

Direção de otimização

A estratégia de negociação de uma média móvel bidirecional de Hall tem algumas melhorias importantes:

  1. Otimizar o tipo e os parâmetros da média móvel de Hull, ajustando a sensibilidade da trajectória central para adaptá-la às diferentes variedades de negociação.

  2. Adição de um mecanismo de parada de perdas. Trailing stop ou stop incremental, para controlar efetivamente a perda individual.

  3. Combine com outros indicadores para determinar a direção e a intensidade da tendência, evitando ser encaixado. Como MACD, KD, etc.

  4. Adicionar condições de ativação de estratégias baseadas em número de transações ou taxa de retorno. Controlar o número de ciclos de fechamento e reduzir as posições livres.

  5. Combinação de múltiplos quadros temporais. Utilize quadros temporais mais altos para determinar a direção da tendência e evitar ser enganado pelo ruído.

  6. Otimizar a lógica de entrada e saída. Pode ser baseado na forma de candeia, aumentando a certeza de entrada.

Resumir

A estratégia de negociação de média móvel bidirecional de Hall é, em geral, uma estratégia quantitativa que utiliza a média móvel de tendência para construir sinais de negociação. Em comparação com a média móvel tradicional, a resposta é mais rápida e o acompanhamento é melhor. A lógica da estratégia é simples, clara e fácil de implementar, adequada para negociação automatizada.

Código-fonte da estratégia
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Basic Hull Ma Pack tinkered by InSilico 
//Converted to Strategy by DashTrader
strategy("Hull Suite Strategy", overlay=true, pyramiding=1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0)
//////////////////////////////////////////////////////////////////////
// Testing Start dates
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
//Stop date if you want to use a specific range of dates
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)


testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
// Component Code Stop
//////////////////////////////////////////////////////////////////////
//INPUT
HAClose = security(heikinashi(syminfo.tickerid), timeframe.period, close)
src = input(close, title="Source")
modeSwitch = input("Hma", title="Hull Variation", options=["Hma", "Thma", "Ehma"])
length = input(55, title="Length(180-200 for floating S/R , 55 for swing entry)")
switchColor = input(true, "Color Hull according to trend?")
candleCol = input(false,title="Color candles based on Hull's Trend?")
visualSwitch  = input(true, title="Show as a Band?")
thicknesSwitch = input(1, title="Line Thickness")
transpSwitch = input(40, title="Band Transparency",step=5)

//FUNCTIONS
//HMA
HMA(_src, _length) =>  wma(2 * wma(_src, _length / 2) - wma(_src, _length), round(sqrt(_length)))
//EHMA    
EHMA(_src, _length) =>  ema(2 * ema(_src, _length / 2) - ema(_src, _length), round(sqrt(_length)))
//THMA    
THMA(_src, _length) =>  wma(wma(_src,_length / 3) * 3 - wma(_src, _length / 2) - wma(_src, _length), _length)
    
//SWITCH
Mode(modeSwitch, src, len) =>
      modeSwitch == "Hma"  ? HMA(src, len) :
      modeSwitch == "Ehma" ? EHMA(src, len) : 
      modeSwitch == "Thma" ? THMA(src, len/2) : na
      
//OUT
HULL = Mode(modeSwitch, src, length)
MHULL = HULL[0]
SHULL = HULL[2]

//COLOR
hullColor = switchColor ? (HULL > HULL[2] ? #00ff00 : #ff0000) : #ff9800

//PLOT
///< Frame
Fi1 = plot(MHULL, title="MHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
Fi2 = plot(visualSwitch ? SHULL : na, title="SHULL", color=hullColor, linewidth=thicknesSwitch, transp=50)
///< Ending Filler
fill(Fi1, Fi2, title="Band Filler", color=hullColor, transp=transpSwitch)
///BARCOLOR
barcolor(color = candleCol ? (switchColor ? hullColor : na) : na)


if HULL[0] > HULL[2] and testPeriod()
    strategy.entry("long", strategy.long)
if HULL[0] < HULL[2] and testPeriod()
    strategy.close("long")