A estratégia de hora de negociação de ouro determina automaticamente as melhores horas para comprar e vender todos os dias, testando dados históricos.
Use a hora atual para obter a hora atual now_hour.
Utilize o indicador ROC para calcular a percentagem horária de subida e queda do indicador de candelabros.
Calcular o produto acumulado do indicador e now_hour como buy_hourXindicator_cum.
Calcular a soma acumulada do indicador como buy_indicator_cum.
A melhor hora de compra buy_hour = buy_hourXindicator_cum / buy_indicator_cum.
Calcule de forma semelhante a melhor hora de venda sell_hour.
Compare now_hour com buy_hour e sell_hour para determinar se a hora atual é a hora ideal de compra ou venda.
Enviar sinais correspondentes durante as horas ideais de compra e venda.
Use cores de fundo diferentes para exibir as horas de compra e venda ideais em tempo real.
A maior vantagem desta estratégia é a capacidade de determinar automaticamente as melhores horas de negociação do dia. Ele economiza muito tempo e esforço de observar manualmente dados históricos para julgar as horas de negociação ideais. Além disso, a estratégia pode ajustar as horas de negociação ideais em tempo real com base em dados ao vivo para responder rapidamente às mudanças do mercado. Esta estratégia tem mais vantagens em comparação com as horas de negociação fixas.
Além disso, a estratégia faz bom uso do indicador ROC. Calculando a porcentagem horária de subida e queda dos candelabros, ele pode julgar com mais precisão o desempenho comercial de diferentes períodos. O indicador ROC é sensível a flutuações assimétricas e pode refletir mudanças no mercado.
O maior risco desta estratégia está nas limitações do próprio indicador ROC. O ROC considera apenas as mudanças de preço e é insensível às mudanças no volume de negociação. Além disso, o ROC não tem um bom desempenho em mercados de faixa com faixas estreitas.
Além disso, a estratégia usa backtesting de dados históricos para determinar os horários de negociação ideais. Mas os padrões históricos podem não se aplicar ao mercado atual. Mudanças estruturais podem ocorrer no mercado e as regras de negociação originais podem não se aplicar mais. Isso requer ajustar parâmetros com base nas condições atuais do mercado, em vez de depender puramente dos resultados do backtesting.
Para resolver este problema, podemos considerar a combinação de outros indicadores, como o volume de negociação, para obter um julgamento mais abrangente das condições do mercado.
A estratégia pode ser otimizada nos seguintes aspectos:
Tente outros indicadores para substituir o indicador ROC, como o volume de negociação, para encontrar indicadores mais adequados para calcular a força e a fraqueza horárias.
Adicionar outras condições de filtragem utilizando médias móveis, osciladores, etc. para julgar as tendências locais e evitar negociações desproporcionadas.
Otimizar os parâmetros dos períodos de tempo e testar o impacto dos diferentes períodos de tempo nos resultados.
Adicionar mecanismos de stop loss e definir pontos de stop loss razoáveis para controlar os riscos de negociação.
Combinar métodos de aprendizagem de máquina e conjuntos de dados maiores para resolver as horas de negociação ideais.
Em resumo, a estratégia da hora de negociação dourada é uma abordagem viável e eficaz. Ele usa o indicador ROC para determinar automaticamente as horas ideais de compra e venda intradiária, economizando muito tempo e esforço. Mas também devemos notar as limitações do indicador ROC e do backtesting histórico e ajustar parâmetros com base nas condições atuais do mercado. Além disso, ainda há muito espaço para melhoria ao otimizar essa estratégia em muitos aspectos para gerar sinais mais precisos e confiáveis. Se usado para negociação ao vivo, recomenda-se seguir rigorosamente as regras de stop loss para controlar os riscos de negociação.
/*backtest start: 2023-08-19 00:00:00 end: 2023-09-18 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © mablue (Masoud Azizi) //@version=5 strategy("Trade Hour V3",overlay=false) timezone = input.string("Europe/London",options=["America/New_York","America/Los_Angeles","America/Chicago","America/Phoenix","America/Toronto","America/Vancouver","America/Argentina" ,"America/El_Salvador","America/Sao_Paulo","America/Bogota","Europe/Moscow","Europe/Athens","Europe/Berlin","Europe/London","Europe/Madrid","Europe/Paris","Europe/Warsaw","Australia/Sydney","Australia/Brisbane","Australia/Adelaide","Australia/ACT","Asia/Almaty","Asia/Ashkhabad","Asia/Tokyo","Asia/Taipei","Asia/Singapore","Asia/Shanghai","Asia/Seoul","Asia/Tehran","Asia/Dubai","Asia/Kolkata","Asia/Hong_Kong","Asia/Bangkok","Pacific/Auckland","Pacific/Chatham","Pacific/Fakaofo","Pacific/Honolulu"] ) source = input.source(close) tp = input.int(1,"ROC Timeperiod") now_hour = hour(time,timezone) indicator = ta.roc(source,tp) buy_hourXindicator_cum = ta.cum(indicator* now_hour) buy_indicator_cum = ta.cum(indicator) buy_hour = buy_hourXindicator_cum/buy_indicator_cum sell_hourXindicator_cum = ta.cum( (1/indicator ) * now_hour) sell_indicator_cum = ta.cum(1/indicator) sell_hour = sell_hourXindicator_cum/sell_indicator_cum plot(buy_hour,color=color.green) plot(sell_hour,color=color.red) plot(now_hour,color=color.gray,display=display.none) bool isLongBestHour = now_hour==math.round(buy_hour) bool isShortBestHour = now_hour==math.round(sell_hour) bgcolor(isLongBestHour ? color.new(color.green,80) : na) bgcolor(isShortBestHour ? color.new(color.red,80) : na) strategy.order("buy", strategy.long, when =isLongBestHour) strategy.order("sell", strategy.short, when = isShortBestHour)