Estratégia de negociação cruzada diária da HMA

Autora:ChaoZhang, Data: 22 de setembro de 2023 17:07:15
Tags:

Resumo

Esta estratégia entra em negociações baseadas em linhas HMA e cruzes diárias de velas e gerencia posições usando a lógica stop loss e take profit.

Estratégia lógica

Os principais sinais e regras:

  • Linha HMA: Calcula a média móvel de Hull para determinar a tendência de médio e longo prazo.

  • Preço de fechamento diário: julga a ação do preço a curto prazo.

  • Sinal de entrada: HMA cruzando acima do fechamento diário anterior, com preço superior ao preço do dia anterior para longo.

  • O valor da posição em risco deve ser calculado em função do valor da posição em risco.

Vantagens

  • Parâmetros HMA ajustáveis para adaptabilidade.

  • Considera indicadores de vários prazos para sinais de melhor qualidade.

  • Stop loss/take profit facilita a gestão do risco.

  • Regras claras de entrada e gestão de posições.

  • Os parâmetros de backtest podem ser otimizados para diferentes mercados.

Riscos

  • O atraso da HMA pode perder o melhor momento de entrada.

  • A taxa fixa de stop loss/take profit pode ser demasiado agressiva ou conservadora.

  • Falta de filtro de força da tendência, arrisca negociações contra-tendência.

  • Regras simples propensas a sinais falsos.

Melhorias:

  1. Optimize os parâmetros HMA para o atraso.

  2. Usar stop loss traseiro em vez de fixo.

  3. Adicionar indicadores de volume ou de momento para avaliar a força da tendência.

  4. Incorporar outros indicadores como o MACD para confirmação do sinal.

Optimização

Formas potenciais de otimizar a estratégia:

  1. Optimize os parâmetros HMA para combinação ideal.

  2. Adicionar um filtro de força de tendência para evitar contra-tendências.

  3. Utilize paradas dinâmicas em vez de níveis fixos.

  4. Incorporar aprendizagem de máquina para otimização automática de parâmetros.

  5. Adicionar negociação simulada para testar o desempenho do mundo real.

Resumo

A lógica da estratégia é clara, mas tem espaço para melhorias. Adicionando filtros de tendência, paradas dinâmicas podem melhorar a estabilidade.


/*backtest
start: 2023-08-22 00:00:00
end: 2023-09-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// created by SeaSide420       Enters on crossovers, exits Basket when profit $ = TP
// strategy(title="HMA & D1 crossover", overlay=true, currency="BTC", initial_capital=1, default_qty_type=strategy.percent_of_equity, default_qty_value=1, commission_type=strategy.commission.percent,commission_value=0.25,slippage=1)
SL=input(defval=-0.05,title="StopLoss $",type=input.float,step=0.01, maxval=-0.01)
TP=input(defval=0.05,title="TargetPoint $",type=input.float,step=0.01, minval=0.01)
price=input(title="Source",type=input.source,defval=open)
Period=input(14, minval=1)
hma = wma(2*wma(price, Period/2)-wma(price, Period), round(sqrt(Period)))
s1=security(syminfo.tickerid, timeframe.period, price, barmerge.gaps_off, barmerge.lookahead_off)
s2=security(syminfo.tickerid, "D", price, barmerge.gaps_off, barmerge.lookahead_off)
cp=s2<price?color.lime:color.red
cp1=plot((s2),color=color.black,title="DailyCandle1",linewidth=2,transp=0)
cp2=plot((s2[1]),color=color.black,title="DailyCandle2",linewidth=2,transp=0)
cp3=plot(hma,title="HMA",color=color.black)
fill(cp1,cp2,color=cp,transp=1)
fill(cp1,cp3,color=cp,transp=75)
closeall=strategy.openprofit<SL or strategy.openprofit>TP
if closeall
    strategy.close_all(comment = "Close All")
if (hma>hma[1] and s1>s2 and s2[1]>s2[2] and s1>s2[1])
    strategy.order("Buy", strategy.long)
if (hma<hma[1] and s1<s2 and s2[1]<s2[2] and s1<s2[1])
    strategy.order("Sell", strategy.short)

Mais.