
A ideia central desta estratégia é identificar a direção da tendência do mercado em combinação com a linha média de Hull e a amplitude da onda real (ATR) e entrar após a confirmação da direção da tendência. Concretamente, é o cálculo do diferencial entre a linha média de Hull de um determinado período e a linha média de Hull do período anterior.
Esta estratégia baseia-se principalmente em dois tipos de indicadores: linha média de Hull e ATR.
O Hull Mean Line é um indicador de seguimento de tendências desenvolvido pelo comerciante de futuros americano Alan Hull. O Hull Mean Line é semelhante ao Moving Average, mas o Hull Mean Line possui maior sensibilidade para capturar tendências de mudanças de preços mais rapidamente. A estratégia possui um parâmetro ajustável, o hullLength, para controlar o comprimento do ciclo do Hull Mean Line, para determinar a direção da tendência de preços atual, calculando a diferença entre o ciclo atual e o Hull Mean Line do período anterior.
ATR ou Average True Range, ou seja, a amplitude real. Ele reflete a amplitude da oscilação diária dos preços. Quando a oscilação aumenta, a amplitude real sobe; Quando a oscilação diminui, a amplitude real cai.
A lógica da estratégia é a seguinte:
A estratégia tem as seguintes vantagens:
A estratégia também apresenta alguns riscos:
Resolução:
A estratégia ainda tem muito espaço para otimização, principalmente a partir dos seguintes aspectos:
Esta estratégia integra a capacidade de rastreamento de tendências da linha média de Hull e a capacidade de julgamento de indicadores de calor do ATR, selecionando pontos de entrada de tempo positivos e com maior flutuação ao confirmar a tendência e filtrando alguns sinais inativos. A otimização dos parâmetros do indicador e o uso de meios de gerenciamento de risco podem aumentar ainda mais a eficácia da estratégia.
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// Hull cross and ATR
strategy("Hull cross and ATR", shorttitle="H&ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Hull Length",defval=50)
length = input(title="ATR Length", defval=50, minval=1)
smoothing = input(title="ATR Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
ma_function(source, length) =>
if smoothing == "RMA"
rma(p, length)
else
if smoothing == "SMA"
sma(p, length)
else
if smoothing == "EMA"
ema(p, length)
else
wma(p, length)
plot(ma_function(tr(true), length), title = "ATR", color=black, transp=50)
closelong = n1<n2
if (closelong)
strategy.close("buy")
closeshort = n1>n2
if (closeshort)
strategy.close("sell")
if (ma_function(tr(true), length)<p and p>p[length] and n1>n2)
strategy.entry("buy", strategy.long, comment="BUY")
if (ma_function(tr(true), length)>p and p<p[length] and n1<n2)
strategy.entry("sell", strategy.short, comment="SELL")