
A estratégia de abertura de preço de ciclo horário é um sistema de negociação quantitativa, baseado na análise do comportamento dos preços, que se concentra em capturar a mudança de dinâmica entre o preço de abertura do mercado e o preço de fechamento do período anterior. A estratégia identifica uma potencial tendência de aumento dos preços, comparando o preço de abertura do ciclo atual com o preço de fechamento do período anterior, e estabelece posições de vários operadores quando determinadas condições são satisfeitas.
Os princípios centrais da estratégia de abertura de preços de ciclo horário baseiam-se na teoria do comportamento e da dinâmica dos preços de mercado. Concretamente, a estratégia segue o seguinte processo lógico:
Critérios de compra: a estratégia primeiro verifica se o preço de abertura do ciclo atual é maior do que o preço de fechamento do ciclo anterior[1]), ao mesmo tempo em que se assegura que não há uma posição atual ((strategy.position_size == 0) [2]. Quando essas duas condições são simultaneamente satisfeitas, o sistema identifica como um sinal de compra [2].
Execução de ordens de compra: quando as condições de compra são satisfeitas, o sistema executa a entrada múltipla através da ordem strategy.entry (((“Buy”, strategy.long)). Ao mesmo tempo, marca o ponto de compra no gráfico de preços, mostrando o preço de compra específico.
Definição de meta de lucro: após a entrada, o sistema calcula imediatamente o preço de meta de lucro, definido como 103% do preço de compra ((targetPrice = strategy.position_avg_price * 1.03), o equivalente a um nível de parada de 3%.
A estratégia de monitorar o preço de mercado atual é executada automaticamente quando o preço de fechamento atinge ou ultrapassa o preço de fechamento (close >= targetPrice) e o sistema executa a operação de posição limpa (strategy.position_size > 0).
Visualização de negociação: para mostrar a atividade de negociação de forma intuitiva, as estratégias traçam os sinais de compra e venda em gráficos, permitindo que os comerciantes acompanhem claramente a execução da estratégia.
A estratégia utiliza o princípio da continuidade da dinâmica de preços, quando o preço de abertura é superior ao preço de fechamento do ciclo anterior, geralmente significa que há uma energia de oscilação no mercado, que pode persistir no curto prazo, o que traz oportunidades de lucro.
Uma análise aprofundada da implementação do código da estratégia pode ser resumida com as seguintes vantagens significativas:
Lógica de entrada simples e clara: a estratégia usa uma comparação de preços simples e fácil de entender como sinal de entrada, sem depender de indicadores ou configurações de parâmetros complexos, reduzindo o risco de overfitting.
Objetivo de lucro claro: A configuração de stop loss de 3% fixo fornece uma expectativa de lucro clara e ajuda a manter uma boa relação de risco-retorno.
Execução automática: a estratégia é totalmente automatizada, desde a identificação de sinais até a entrada e a posição de equilíbrio, reduzindo a influência da intervenção humana e da decisão emocional.
Integração de gestão de fundos: simplifica a gestão de fundos através da definição dos parâmetros de default_qty_type=strategy.percent_of_equity e de default_qty_value=100.
Registros de negociação visuais: Ao marcar os pontos de compra e venda em gráficos, os comerciantes podem examinar visualmente a execução da estratégia, o que ajuda na análise e no ajuste da estratégia.
Evitar a reentrada: A estratégia garante que não haverá reentrada, evitando a acumulação de risco desnecessário, verificando o estado atual da posição.
Aplicável a mercados de alta liquidez: a estratégia funciona em um período de tempo de horas, especialmente adequado para um ambiente de mercado de alta liquidez, garantindo a exequibilidade de sinais de negociação.
Apesar da simplicidade da estratégia, existem alguns riscos potenciais:
Falta de mecanismo de parada de perdas: a estratégia atual apenas estabelece condições de parada, sem um mecanismo de parada de perdas claro. Se o mercado se mover em direção adversa, isso pode levar a grandes perdas. Recomenda-se a adição de condições de parada de perdas, por exemplo, uma configuração de parada de perda baseada em tempo ou preço.
Limitações do objetivo de porcentagem fixa: um objetivo de parada fixa de 3% pode não ser adequado para diferentes cenários de mercado e volatilidade. Pode ser muito alto em mercados de baixa volatilidade e muito baixo em mercados de alta volatilidade.
Fragilidade das condições de entrada única: dependendo apenas da comparação do preço de abertura com o preço de fechamento do período anterior como sinal de entrada, pode causar sinais enganosos quando o ruído do mercado é maior.
Falta de filtragem de tendência: a estratégia não leva em consideração o ambiente de tendência do mercado mais amplo, podendo também emitir sinais de compra em uma tendência de queda, aumentando o risco de negociação de desvantagem.
Risco de gerenciamento de fundos: negociação com 100% de juros da conta por defeito, sem o tamanho da posição ajustado de acordo com a volatilidade do mercado ou o nível de risco, o que pode levar a uma concentração excessiva de risco.
Dependência de período de tempo: a estratégia se concentra no ciclo horário e pode não ser capaz de capturar flutuações de preços em períodos de tempo mais curtos ou tendências de mercado mais longos.
Risco de desvio de retracção: o uso do preço de fechamento como condição para desencadear a posição de liquidação pode causar um deslizamento de execução na negociação real, pois na realidade pode ser necessário esperar a confirmação do preço de fechamento para ser executado.
Com base em uma análise aprofundada do código da estratégia, podemos sugerir as seguintes direções de otimização:
Introdução de um mecanismo de stop loss: adicionar condições de stop loss baseadas em tempo ou preço, como definir o tempo máximo de detenção da posição ou o nível de stop loss baseado no ATR (Margem de Variação Real) para limitar o máximo de perdas em uma única transação.
Objetivo de lucro dinâmico: troca de um objetivo de parada de 3% fixo por um objetivo dinâmico baseado na volatilidade do mercado, como o uso de múltiplos do ATR como base para o cálculo do preço-alvo.
Aumentar as condições de filtragem de entrada: em combinação com outros indicadores técnicos (como a média móvel, RSI ou MACD) como sinal de confirmação, melhorar a qualidade e a confiabilidade do sinal de entrada.
Adicionar filtragem de direção de tendência: introduza médias móveis de longo prazo ou outros indicadores de tendência para garantir a entrada somente se a direção da tendência geral for consistente.
Gerenciamento de fundos otimizado: implementação de gerenciamento de posições dinâmicas, ajustando a proporção de fundos em cada transação de acordo com as condições do mercado, os juros das contas e o nível de risco.
Análise de múltiplos prazos: integra os resultados da análise de mercado de prazos mais elevados, executando transações somente quando as tendências de prazos altos e baixos são consistentes.
Introdução de filtros de tempo: adicionar restrições de janelas de tempo de negociação, evitando períodos de mercado com baixa ou alta volatilidade.
Otimização da lógica de execução: Considere executar a transação usando a lista de preços limite em vez da lista de preços de mercado, reduzindo os pontos de deslizamento e os custos de execução.
A implementação dessas orientações de otimização ajudará a aumentar a robustez e a adaptabilidade da estratégia, permitindo que ela mantenha um desempenho relativamente estável em diferentes cenários de mercado.
A estratégia de abertura de preço de ciclo horário é um sistema de negociação simples e prático que capta a dinâmica de preços de curto prazo usando a relação entre o preço de abertura e o preço de fechamento do ciclo anterior. A estratégia, com sua lógica simples e regras claras de execução, oferece aos comerciantes um método de negociação fácil de entender e implementar. Apesar de alguns riscos potenciais, como a falta de um mecanismo de parada de perda e as limitações de uma única condição de entrada, as medidas de otimização, como a introdução de estratégias de perda, a configuração de objetivos de lucro dinâmico e as condições de filtragem de campo adicionais, podem aumentar significativamente a robustez e o potencial de lucro da estratégia.
A estratégia é especialmente adequada para os comerciantes de curto prazo e os comerciantes diários, especialmente em ambientes de mercado onde a volatilidade é moderada. Através de feedback e otimização contínuos, os comerciantes podem ajustar os parâmetros de acordo com o mercado específico e as preferências de risco pessoais, melhorando ainda mais o desempenho da estratégia.
/*backtest
start: 2025-03-02 00:00:00
end: 2025-04-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
*/
//@version=6
strategy("1 Hour Open vs Close Buy Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Define the buy condition: current open is higher than the previous close
buyCondition = open > close[1] and strategy.position_size == 0 // Only buy if there is no active position
// Execute the buy order and plot buy price
if (buyCondition)
strategy.entry("Buy", strategy.long)
label.new(x=bar_index, y=low, text="Buy at: " + str.tostring(open), style=label.style_label_up, color=color.green, size=size.normal, textcolor=color.white)
// Define the sell condition based on 3% profit target from the buy price
targetPrice = strategy.position_avg_price * 1.03
// Check if the current price has reached the target price and close the position
if (strategy.position_size > 0 and close >= targetPrice)
strategy.close("Buy")
label.new(x=bar_index, y=high, text="Sell at: " + str.tostring(close), style=label.style_label_down, color=color.red, size=size.normal, textcolor=color.white)
// Plotting to visualize entries and exits on the chart
plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=(strategy.position_size > 0 and close >= targetPrice), location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")