Muito obrigado por compartilhar essas informações e por dedicar seu tempo para explicá-las de uma maneira muito agradável e legível. Excelente.
Atenciosamente,
Antonio
Obrigado pela postagem, mais uma vez uma abordagem única. Estou muito interessado em entender e implementar a abordagem. É um prazer ler essas explicações tão informativas, que melhoram muito minha compreensão. Agradeço pelo tempo que você dedicou à criação deste documento
Atenciosamente, Neil
Obrigado pela postagem, mais uma vez uma abordagem única. Estou muito interessado em entender e implementar a abordagem. É um prazer ler essas explicações tão informativas, que melhoram muito minha compreensão. Agradeço o tempo que você dedicou à criação deste artigo
Atenciosamente, Neil
Obrigado, Neil, há muitas pessoas que ajudam nos bastidores, como Rashid e outros moderadores de conteúdo, que tornam tudo isso possível. Fico feliz por ter agregado valor, esse é sempre o objetivo. De fato, é o único objetivo.
Method Trained() has returned true at that point.
Poderia ter algo a ver com o fato de estar fora do horário de negociação?
ATUALIZAÇÃO: É provável que seja um problema com dados históricos. Eu executo no modo "ticks reais". Tentando o backtest em um mês depois dos dados, ele funciona. Vou ver se consigo adicionar algum código que não permita que os dados indefinidos passem sem serem detectados. Vejo que há algumas verificações para m[0] e d[0] indefinidos, mas talvez seja necessário mais. Vou verificar amanhã.
Method Trained() has returned true at that point.
Poderia ter algo a ver com o fato de estar fora do horário de negociação?
ATUALIZAÇÃO: É provável que seja um problema com dados históricos. Eu executo no modo "ticks reais". Tentando o backtest em um mês depois dos dados, ele funciona. Vou ver se consigo adicionar algum código que não permita que os dados indefinidos passem sem serem detectados. Vejo que há algumas verificações para m[0] e d[0] indefinidos, mas talvez seja necessário mais. Vou verificar amanhã.
Minha observação de backtest "a cada tick" foi resolvida exportando explicitamente os arquivos de dados do histórico de Ticks e Barras da lista de Símbolos e salvando-os em um caminho de arquivo no qual o testador fará referência a eles.
Os arquivos precisam abranger o intervalo de dias para os quais os testes são realizados. Isso pode ser conveniente para um caso de uso em que um período do passado é usado repetidamente para melhorar uma estratégia.
Por padrão, o testador baixa esses dados da rede em cada execução de teste e, aparentemente, às vezes isso não é confiável. Manter esses dados localmente parece funcionar melhor.
Normalmente, na primeira vez em que se tenta fazer com que o testador os consulte localmente, há algumas acrobacias no caminho do arquivo até chegar ao caminho adequado.
Para ilustrar, no meu caso, o caminho do Windows é "C:\Users\<username>\Appdata\Roaming\MetaQuotes\Terminal\Common\Files".
Esta postagem forneceu dicas: https://www.mql5.com/en/forum/367098#comment_21816898
- 2021.04.12
- Anthony Eric Gillon Dawson
- www.mql5.com
Method Trained() has returned true at that point.
Poderia ter algo a ver com o fato de estar fora do horário de negociação?
ATUALIZAÇÃO: É provável que seja um problema com dados históricos. Eu executo no modo "ticks reais". Tentando o backtest em um mês depois dos dados, ele funciona. Vou ver se consigo adicionar algum código que não permita que os dados indefinidos passem sem serem detectados. Vejo que há algumas verificações para m[0] e d[0] indefinidos, mas talvez seja necessário mais. Vou verificar amanhã.
Houve uma troca inerente entre manter a mensagem fácil de acompanhar e corrigir todos os erros que observei. Se eu optasse pela segunda opção, o código poderia ter sido necessariamente mais complexo e não tão fácil de acompanhar como é. Portanto, decidi manter a mensagem fácil de acompanhar. Portanto, decidi mantê-lo fácil de seguir, com a intenção de que você pudesse estendê-lo rapidamente.
Sua solução parece muito promissora, como ela está se saindo?
Minha observação sobre o backtest "a cada tick" foi resolvida com a exportação explícita dos arquivos de dados do histórico de ticks e barras da lista de símbolos e salvando-os em um caminho de arquivo no qual o testador fará referência a eles.
Os arquivos precisam abranger o intervalo de dias para os quais os testes são realizados. Isso pode ser conveniente para um caso de uso em que um período do passado é usado repetidamente para melhorar uma estratégia.
Por padrão, o testador baixa esses dados da rede em cada execução de teste e, aparentemente, às vezes isso não é confiável. Manter esses dados localmente parece funcionar melhor.
Normalmente, na primeira vez em que se tenta fazer com que o testador os consulte localmente, há algumas acrobacias no caminho do arquivo até chegar ao caminho adequado.
Para ilustrar, no meu caso, o caminho do Windows é "C:\Users\<username>\Appdata\Roaming\MetaQuotes\Terminal\Common\Files".
Esta postagem forneceu dicas: https://www.mql5.com/en/forum/367098#comment_21816898
Obrigado por compartilhar o link. Encontrarei tempo para analisá-lo.
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Novo artigo Construa Expert Advisors Auto-Otimizáveis em MQL5 foi publicado:
Construa expert advisors que olhem para frente e se ajustem a qualquer mercado.
Desenvolver um bot de negociação que possa se ajustar às condições atuais do mercado é fundamental para estratégias estáveis de negociação algorítmica. Nosso objetivo é ir além da criação de bots de foco restrito, limitados a poucos símbolos. Pretendemos projetar sistemas com a capacidade de aprender e se adaptar a qualquer símbolo de negociação. Este guia se concentra no uso de MQL5 para desenvolver bots que possam se auto-otimizar em qualquer ambiente de negociação.
O MQL5 é ideal para essa tarefa, ao contrário do que alguns acreditam. Sua API oferece funções extensivas de matriz e vetor, permitindo a criação de modelos compactos de aprendizado de máquina. Esta introdução enfatiza o uso de MQL5 para construir bots auto-otimizáveis. Uma abordagem de Programação Orientada a Objetos reduz a codificação repetitiva e melhora a adaptabilidade em diferentes prazos e condições de mercado.
Optar pelas capacidades de matriz e vetor do MQL5 em vez de alternativas como ONNX e Python tem consideráveis benefícios. Usar um modelo ONNX exigiria instâncias de modelo separadas para cada símbolo de negociação e novos modelos para quaisquer pequenas mudanças de parâmetro, como ajustes de intervalo de tempo. O MQL5, no entanto, oferece adaptabilidade sem a necessidade de gerenciar inúmeros modelos para diferentes condições.
Autor: Gamuchirai Zororo Ndawana