
Esta estratégia combina os benefícios da média móvel de Hull e da média móvel de T3 para projetar uma estratégia de negociação entre as cidades. Esta estratégia pode ser usada tanto para negociação de linhas curtas como para acompanhamento de tendências de linhas médias e longas.
A estratégia baseia-se principalmente no cálculo da média móvel de Hull e da média móvel de T3.
A Hull Moving Average (HMA), por meio de um método de cálculo iterativo de médias móveis ponderadas, efetivamente filtra o ruído do mercado e mostra uma curva de suavização da tendência de preços. É mais sensível às mudanças de preços do que as médias móveis simples e médias móveis indexadas, além de ser eficaz na supressão de falsas rupturas.
A média móvel T3, ao mesmo tempo em que reduz o efeito de atraso, pode ser mais próxima do preço por meio de certos ajustes de hiperparâmetros. Ela pode responder mais rapidamente às mudanças de preço por meio de cálculos mais suaves do índice.
Esta estratégia calcula a média de ambos como o principal indicador de negociação. A hora de entrada é determinada pela direção dessa média: se a média do período atual for maior que a do período anterior, é um sinal de entrada de múltiplos pontos; se a média do período atual for menor que a do período anterior, é um sinal de entrada de pontos vazios.
Para a regra de saída, se o preço ultrapassar o ponto de parada ou atingir o ponto de parada, você sai; se a direção da linha média mudar, você também executa a ação de saída.
A estratégia combina os benefícios da média móvel de Hull e da média móvel de T3 em sua suavizar o ruído e responder rapidamente às mudanças de preço, gerando assim um indicador integrado. Em segundo lugar, a estratégia se aplica a negociações de linhas curtas e médias e longas simultaneamente, ajustando os parâmetros do ciclo de cálculo para ajustar com flexibilidade o ciclo de negociação apropriado.
A estratégia depende principalmente do indicador de linha de equilíbrio, que pode produzir vários sinais falsos em uma tendência oscilante. Além disso, a linha de equilíbrio tem um certo atraso e pode perder o melhor ponto de entrada para a variação de preços. A configuração do ponto de parada de perda deve ser feita com cautela, evitando ser muito relaxada ou muito apressada.
Pode-se considerar a adição de outros indicadores auxiliares, como indicadores de força e fraqueza, indicadores de volatilidade, etc., para verificar sinais de equilíbrio, filtrar falsos sinais. Pode-se testar diferentes combinações de equilíbrio e algoritmos de peso, otimizar a eficácia da geração de sinais de equilíbrio.
Esta estratégia integra as vantagens da média móvel de Hull e da média móvel T3 para formar um indicador integrado para determinar a direção da tendência. Através da otimização de parâmetros, a estratégia pode ser aplicada de forma flexível a diferentes ciclos de negociação. A estratégia tem certas vantagens, mas também há problemas como o atraso de acompanhamento e a produção de falsos sinais.
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 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/
// © exlux99
//@version=4
strategy(title="Swing HULL + T3 avg", shorttitle="Swing HULL T3 AVG", overlay=true)
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 = 2021, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
////////////////////////////GENERAL INPUTS//////////////////////////////////////
length_Ma= input(defval=50, title="Length MAs", minval=1)
//==========HMA
getHULLMA(src, len) =>
hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))
hullma
//==========T3
getT3(src, len, vFactor) =>
ema1 = ema(src, len)
ema2 = ema(ema1,len)
ema3 = ema(ema2,len)
ema4 = ema(ema3,len)
ema5 = ema(ema4,len)
ema6 = ema(ema5,len)
c1 = -1 * pow(vFactor,3)
c2 = 3*pow(vFactor,2) + 3*pow(vFactor,3)
c3 = -6*pow(vFactor,2) - 3*vFactor - 3*pow(vFactor,3)
c4 = 1 + 3*vFactor + pow(vFactor,3) + 3*pow(vFactor,2)
T3 = c1*ema6 + c2*ema5 + c3*ema4 + c4*ema3
T3
hullma = getHULLMA(close,length_Ma)
t3 = getT3(close,length_Ma,0.7)
avg = (hullma+t3) /2
////////////////////////////PLOTTING////////////////////////////////////////////
colorado = avg > avg[1]? color.green : color.red
plot(avg , title="avg", color=colorado, linewidth = 4)
long=avg>avg[1]
short=avg<avg[1]
tplong=input(0.08, title="TP Long", step=0.01)
sllong=input(1.0, title="SL Long", step=0.01)
tpshort=input(0.03, title="TP Short", step=0.01)
slshort=input(0.06, title="SL Short", step=0.01)
if(time_cond)
strategy.entry("long",1,when=long)
strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong")
strategy.entry("short",0,when=short)
strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort")