Esta é uma estratégia de negociação intradiária simples que combina pontos altos/baixos diários, média móvel e volume.
A estratégia baseia-se principalmente nos seguintes indicadores:
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.
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.
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:
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.
Fechar posição longa: quando o fechamento for inferior à média móvel, fechar posições longas.
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.
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.
Esta estratégia de ruptura alta/baixa tem as seguintes vantagens:
A lógica é simples e intuitiva, fácil de entender e implementar.
A ruptura dos pontos altos/baixos do dia anterior pode capturar a direcção de forças mais fortes.
A filtragem com médias móveis evita muitos sinais ruidosos.
Os indicadores de fluxo de capital ajudam a determinar a distribuição de forças longo/curto.
A negociação intradiária permite acumular lucros através de vários negócios.
Não é necessária uma otimização complexa de parâmetros, relativamente fácil de implementar.
Aplicável a diferentes produtos com elevada flexibilidade.
Em geral, a ideia estratégica é simples e clara, com pouca dificuldade de implementação e potencial de lucro considerável.
Embora a estratégia tenha muitas vantagens, há também alguns riscos:
A confiança em breakouts altos/baixos pode causar perdas por falsos breakouts.
Excessivamente dependente da negociação intradiária, facilmente afetado por eventos durante a noite.
O atraso das médias móveis pode perder pontos de virada da tendência.
Os indicadores de volume às vezes podem dar sinais errados.
Incapacidade de controlar bem o tamanho das perdas de apostas individuais, com risco de perdas excessivas.
A frequência das operações intradiárias é afectada pelos custos de negociação.
O espaço de otimização limitado torna difícil alcançar um alfa persistente.
No geral, a estratégia apresenta uma alta frequência de sinalização, mas não demonstra estabilidade e rentabilidade.
A estratégia pode ser ainda melhorada nos seguintes aspectos:
Adicionar stop loss para controlar o risco da aposta única.
Otimizar os parâmetros da média móvel para maior sensibilidade ou suavidade.
Tente diferentes indicadores de volume para melhorar o julgamento do fluxo de capital.
Adicione mais filtros para reduzir as hipóteses de fuga falsa.
Execute a estratégia em prazos mais longos para evitar excesso de negociação.
Introduzir aprendizado de máquina para geração de sinal adaptativo.
Incorporar mais dados para a tomada de decisões, por exemplo, notícias, macros, etc.
Avaliar de forma abrangente a estabilidade e o risco, não buscando retornos excessivos.
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)