Historico de Negociacao com Python

 

Bom dia,


Estou desenvolvendo um bot em Python e gostaria de saber se existe alguma forma de testar meu codigo e estrategias na MetaTrader5 em um historico?

Para MQL5 tem o testador de estrategias, mas para codigos esternos o testador nao aceita.

 
guilhermepiccioni: Estou desenvolvendo um bot em Python e gostaria de saber se existe alguma forma de testar meu codigo e estrategias na MetaTrader5 em um historico? Para MQL5 tem o testador de estrategias, mas para codigos esternos o testador nao aceita.

Não será possível com o MetaTrader que só permite testar com MQL5, não python.

Terá de criar o seu próprio ambiente de teste ou pesquisar a web em busca de algo já feito por alguém. Não tenho conhecimento de alguma coisa, mas poderá haver.

 
Fernando Carreiro #:

Não será possível com o MetaTrader que só permite testar com MQL5, não python.

Terá de criar o seu próprio ambiente de teste ou pesquisar a web em busca de algo já feito por alguém. Não tenho conhecimento de alguma coisa, mas poderá haver.

Na verdade há essa possibilidade sim, e eu uso inclusive. Porem exige uma grande complexidade, que infelizmente não é opção para muitas pessoas.
Pense, o MetaTrader não te permite usar funções de rede no ambiente de teste, até ai dizer que não dá  ok, se a solução é baseada nesse tipo de arquitetura, mas sabemos que existem outras formas de criar esse tipo de comunicação, o que te leva a driblar essa dificuldade.

 
Jonathan Pereira #:Na verdade há essa possibilidade sim, e eu uso inclusive. Porem exige uma grande complexidade, que infelizmente não é opção para muitas pessoas. Pense, o MetaTrader não te permite usar funções de rede no ambiente de teste, até ai dizer que não dá  ok, se a solução é baseada nesse tipo de arquitetura, mas sabemos que existem outras formas de criar esse tipo de comunicação, o que te leva a driblar essa dificuldade.

Ou seja, está a concordar com o que eu disse ... "Terá de criar o seu próprio ambiente de teste"

O resultado. é o mesmo, actualmente não é possível tester um "robô" em Python directamente no MetaTrader, excepto através dum "ambiente te teste" especialmente criado para tal.

 
Fernando Carreiro #:

Ou seja, está a concordar com o que eu disse ... "Terá de criar o seu próprio ambiente de teste"

O resultado. é o mesmo, actualmente não é possível tester um "robô" em Python directamente no MetaTrader, excepto através dum "ambiente te teste" especialmente criado para tal.

Não, eu disse que criei uma forma dos ambientes interagirem, e me permitir usar o strategy tester. Ou seja eu tenho modelos de machine learning e alguns outros algoritmos e faço não apenas um teste no ambiente Python, eu também realizo esses testes no testador do programa Metatrader.

Então a resposta é sim existe, mas a integração não pode depender de sockets pois como disse no comentário anterior, “funções de rede não funcionam no strategy tester”
 
Jonathan Pereira #: Não, eu disse que criei uma forma dos ambientes interagirem, e me permitir usar o strategy tester. Ou seja eu tenho modelos de machine learning e alguns outros algoritmos e faço não apenas um teste no ambiente Python, eu também realizo esses testes no testador do programa Metatrader. Então a resposta é sim existe, mas a integração não pode depender de sockets pois como disse no comentário anterior, “funções de rede não funcionam no strategy tester”

No entanto, não está a explicar como!

O ambiente de teste do MetaTrader só executa o código MQL, e a única maneira de executar o código python é de criar uma interface ou uma interligação entre os dois ambientes. Isso, no entanto, não é propriamente testar um robô especificamente escrito para o modulo de integração python do MetaTrade 5, mas sim algo diferente no qual criou um método próprio e diferente de integração.

Se quer convencer-nos que um robô escrito para o modulo de integração python do MetaTrader 5, pode ser testado no Strategy Tester, então um exemplo ou uma explicação plausível do método será necessário.

Só dizer-nos que é possível duma forma abstracta não permite-nos avaliar a veracidade de tal alegação.

 

Já agora, não estou a dizer que tal integração não seja possível, pois e possível criar interfaces e intercomunicações entre diversos sistemas diferentes e linguagens diferentes, seja em C++, C#, Visual Basic, Go, ou qualquer outra linguagem ou sistema.

O que eu estou a constatar é que um robô escrito especificamente para o modulo de integração python do MT5, não será possível testar no Strategy Tester. Para tal terá de ser criado um sistema que reproduz tal ambiente de teste e simulação virtual tal como o Strategy Tester o faz para código MQL, mas para o modulo python.