O recurso está a ser carregado... Carregamento...

Estratégia diária alta/baixa

Autora:ChaoZhang, Data: 23 de setembro de 2023 15:07:58
Tags:

Resumo

Esta é uma estratégia de negociação intradiária simples que combina pontos altos/baixos diários, média móvel e volume.

Estratégia lógica

A estratégia baseia-se principalmente nos seguintes indicadores:

  1. Pontos altos/baixos diários: registar os preços mais altos e mais baixos do dia de negociação anterior como referência para o julgamento da ruptura.

  2. Média móvel: Calcular a média móvel dos preços de fechamento durante um determinado período como referência para a tendência geral.

  3. Fluxo monetário de volume: Calcular o valor normalizado longo/curto do volume durante um período para determinar as entradas e saídas de fundos.

As regras específicas de negociação são:

  1. Condição longa: Quando a alta do dia quebra a alta do dia anterior, e o fechamento está acima da média móvel, e o fluxo de caixa de volume é positivo, vá longo.

  2. Fechar posição longa: quando o fechamento for inferior à média móvel, fechar posições longas.

  3. Condição de curto prazo: quando a baixa do dia quebra a baixa do dia anterior, e o fechamento está abaixo da média móvel, e o fluxo de caixa de volume é negativo, vá curto.

  4. Fechar posição curta: quando o fechamento ultrapassar a média móvel, fechar posições curtas.

A estratégia leva em consideração a ruptura, a tendência e o fluxo de capital de forma abrangente, formando um sistema de julgamento completo que pode efetivamente filtrar ruídos falsos de ruptura.

Análise das vantagens

Esta estratégia de ruptura alta/baixa tem as seguintes vantagens:

  1. A lógica é simples e intuitiva, fácil de entender e implementar.

  2. A ruptura dos pontos altos/baixos do dia anterior pode capturar a direcção de forças mais fortes.

  3. A filtragem com médias móveis evita muitos sinais ruidosos.

  4. Os indicadores de fluxo de capital ajudam a determinar a distribuição de forças longo/curto.

  5. A negociação intradiária permite acumular lucros através de vários negócios.

  6. Não é necessária uma otimização complexa de parâmetros, relativamente fácil de implementar.

  7. Aplicável a diferentes produtos com elevada flexibilidade.

  8. Em geral, a ideia estratégica é simples e clara, com pouca dificuldade de implementação e potencial de lucro considerável.

Análise de riscos

Embora a estratégia tenha muitas vantagens, há também alguns riscos:

  1. A confiança em breakouts altos/baixos pode causar perdas por falsos breakouts.

  2. Excessivamente dependente da negociação intradiária, facilmente afetado por eventos durante a noite.

  3. O atraso das médias móveis pode perder pontos de virada da tendência.

  4. Os indicadores de volume às vezes podem dar sinais errados.

  5. Incapacidade de controlar bem o tamanho das perdas de apostas individuais, com risco de perdas excessivas.

  6. A frequência das operações intradiárias é afectada pelos custos de negociação.

  7. O espaço de otimização limitado torna difícil alcançar um alfa persistente.

  8. No geral, a estratégia apresenta uma alta frequência de sinalização, mas não demonstra estabilidade e rentabilidade.

Orientações de otimização

A estratégia pode ser ainda melhorada nos seguintes aspectos:

  1. Adicionar stop loss para controlar o risco da aposta única.

  2. Otimizar os parâmetros da média móvel para maior sensibilidade ou suavidade.

  3. Tente diferentes indicadores de volume para melhorar o julgamento do fluxo de capital.

  4. Adicione mais filtros para reduzir as hipóteses de fuga falsa.

  5. Execute a estratégia em prazos mais longos para evitar excesso de negociação.

  6. Introduzir aprendizado de máquina para geração de sinal adaptativo.

  7. Incorporar mais dados para a tomada de decisões, por exemplo, notícias, macros, etc.

  8. Avaliar de forma abrangente a estabilidade e o risco, não buscando retornos excessivos.

Conclusão

Em resumo, esta é uma estratégia simples e intuitiva de alta/baixa quebra, com foco na relação preço-volume e no julgamento da tendência. Ela tem alguns méritos, mas também riscos, exigindo mais otimização e verificação. Se gerenciada adequadamente, pode ser uma idéia prática de estratégia de curto prazo. Mas estratégias mais eficientes e robustas precisam de mais fatores de modelagem e backtesting rigoroso.


// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=5

strategy(title='Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1)

////////////////////////////GENERAL INPUTS//////////////////////////////////////
len = input.int(24, minval=1, title='Length MA', group='Optimization paramters')
src = input.source(close, title='Source MA', group='Optimization paramters')
out = ta.ema(src, len)

length = input.int(20, minval=1, title='CMF Length', group='Optimization paramters')
ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
mf = math.sum(ad, length) / math.sum(volume, length)

f_secureSecurity(_symbol, _res, _src) =>
    request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on)

pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high)
pricelow = f_secureSecurity(syminfo.tickerid, 'D', low)

plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))

short = ta.crossunder(low, pricelow) and close < out and mf < 0
long = ta.crossover(high, pricehigh) and close > out and mf > 0


if short and barstate.isconfirmed
    strategy.entry('short', strategy.short, when=barstate.isconfirmed, stop=pricelow[1])
    strategy.close('short', when=close > out)

if long and barstate.isconfirmed
    strategy.entry('long', strategy.long, when=barstate.isconfirmed, stop=pricehigh[1])
    strategy.close('long', when=close < out)




Mais.