Estratégia de oscilação da média TEMA alta e baixa

Autora:ChaoZhang, Data: 2023-11-15 17:49:52
Tags:

img

Resumo

Esta estratégia usa os indicadores TEMA, VWMACD e HMA para capturar a tendência de queda do Bitcoin. Sua lógica principal é ficar curto quando o VWMACD cruza abaixo de 0, o preço está abaixo do HMA e o TEMA rápido está abaixo do TEMA lento. Ele sairá da posição quando o VWMACD cruza acima de 0, o preço está acima do HMA ou o TEMA rápido cruza acima do TEMA lento.

Princípio

Primeiro, calcule o VWMACD (a única diferença do MACD regular é a maneira de calcular a média móvel) e trace-o como histograma. Em seguida, adicione o HMA como um filtro de tendência. Depois disso, crie e adicione o TEMA rápido (5 períodos) e o TEMA lento (8 períodos) e calcule a diferença entre eles para traçar em torno de 0.

A regra de entrada específica é: quando o VWMACD está abaixo de 0, o preço está abaixo do HMA e o TEMA rápido está abaixo do TEMA lento, vá curto.

A regra específica de saída é: quando o VWMACD cruza acima de 0, o preço está acima do HMA ou o TEMA rápido cruza acima do TEMA lento, posição fechada.

Análise das vantagens

  • Utiliza uma combinação de três indicadores, melhora a fiabilidade dos sinais de negociação.
  • O VWMACD pode identificar divergências e fornecer avaliações precisas da tendência.
  • HMAfiltrado como um filtro de tendência, evita interferências sonoras.
  • A combinação TEMA rápida e lenta capta pontos de reversão de curto prazo.
  • Adota parâmetros de curto prazo, adequados para negociações de alta frequência, detecta tendências de baixa de curto prazo.

Análise de riscos

  • Combinação de múltiplos indicadores, precisam de ajustes complexos de parâmetros.
  • Apesar de ter um filtro HMA, ainda é preciso evitar falsas rupturas em mercados variados.
  • Posibilidade de ocorrência de sinais errados durante períodos curtos propensos a interferências sonoras do mercado.
  • Precisa de um stop loss rigoroso para evitar grandes perdas inesperadas.
  • Precisam de se concentrar no controlo dos custos das transacções, o comércio de alta frequência é facilmente prejudicado por atrito.

Orientações de otimização

  • Pode testar diferentes combinações de parâmetros para encontrar parâmetros ideais.
  • Pode adicionar outros indicadores como RSI, KD para assistência.
  • Pode utilizar parâmetros adaptáveis de acordo com diferentes condições de mercado.
  • Pode otimizar a estratégia de stop loss, como trailing stop loss.
  • Pode ser combinado com indicadores de volume para evitar um empurrão insuficiente.

Conclusão

Esta estratégia usa a combinação de VWMACD, HMA e TEMA rápido/lento para capturar tendências de queda de curto prazo do Bitcoin. Suas vantagens são sinais relativamente confiáveis e adequação para negociação de alta frequência. Mas também tem riscos como sintonização de parâmetros complexos, propensos a interferência de ruído. A otimização adicional de combinações de parâmetros e a adição de indicadores auxiliares podem tornar a estratégia mais estável e confiável.


/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="TEMA_HMA_VWMACD short strategy", shorttitle="Short strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.018, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(9999,1,1,0,0)
_testPeriod() =>
    iff(time >= startP and time <= end, true, false)
    

slow = input(13, "Short period")
fast = input(21, "Long period")
signal = input(5, "Smoothing period")

Fast = ema( volume * close, fast ) / ema( volume, fast ) 
Slow = ema( volume * close, slow ) / ema( volume, slow ) 
Macd = Slow - Fast 
Signal = ema(Macd, signal) 
Hist=Macd-Signal
plot(Hist, color=color.silver, linewidth=1, style=plot.style_histogram)
plot(0, color=color.red)

length = input(400, minval=1, title = "HMA")
hullma = wma(2*wma(close, length/2)-wma(close, length), floor(sqrt(length)))

tema_length_1 = input(5, "Fast moving TEMA")
tema_length_2 = input(8, "Slow moving TEMA")


tema(sec, length)=>
    tema1= ema(sec, length)
    tema2= ema(tema1, length)
    tema3= ema(tema2, length)
    tema = 3*tema1-3*tema2+tema3

tema1 = tema(hlc3, tema_length_1)
tema2 = tema(hlc3, tema_length_2)

threshold  = 0
tm = tema1 - tema2
plot_fast = plot(tm, color = tm > 0 ? color.green : color.red)
plot(threshold, color=color.purple)

up =  crossover(tm, 0) 
down = crossunder(tm, 0)

longCondition =  (Hist < 0) and hullma > close and (tema1 < tema2)  and _testPeriod() 
strategy.entry('BUY', strategy.short, when=longCondition)  
 
shortCondition =  (Hist > 0) or hullma < close or up
strategy.close('BUY', when=shortCondition)


// Take profit  
tp = input(1, type=input.float, title='Take Profit (%)')  
sl = input(4, type=input.float, title='Stop Loss (%)')  
strategy.exit('XLong', from_entry='BUY', profit=(close * (tp/100) * (1/syminfo.mintick)), loss=(close * (sl/100) * (1/syminfo.mintick)))

Mais.