Discussão do artigo "Integração da MetaTrader 5 e Python: recebendo e enviando dados" - página 11
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Obrigado por este artigo.
Só gostaria de saber por que precisamos continuar chamando socket=SocketCreate() e SocketClose() em OnTick()?
Parece um pouco ineficiente fazer isso repetidamente.
Isso não mantém o soquete aberto/ativo? Ou melhor, é possível manter o soquete aberto/ativo?
Olá! Eu também estava criando um soquete. Estou com um problema: escrevi um indicador em python. Ele recebe muitos dados do mt5 e o quanto você quiser, mas retornar dados para o mt5 não é tão fácil. No soquete, é possível transmitir apenas uma string até 100 strings pequenas, mas preciso de mais. Que soluções existem além do soquete e das solicitações da Web/internet para a troca de dados entre Python e MT5? Não quero criar um banco de dados MySQL para isso. Estamos falando sobre a transferência do python para o MT5 de cerca de 40 pares de moedas com um histórico de 1.000 leituras recalculadas e a construção adicional de linhas de indicadores no MT5... Quero me afastar dos cálculos no MT5, pois o python faz isso muito mais rápido. Portanto, gostaria de ver todas as linhas do indicador e não apenas a última barra transmitida por uma string uma vez por segundo.
O uso de multiprocessing.shared_memory em Python e WinAPI em MQL5 permite que você leia dados diretamente da memória.Alguém pode me aconselhar algo útil?
TCP/IP Socket - O MT5 receberá uma string de qualquer maneira e ela não caberá em 30.000 dados.... As limitações de uma variável de string, mesmo no formato jason, são de até 100 strings. Qual é a utilidade desse Socket?
Acontece que, para big data, uma saída é Python-->MySQL-->MT5
Também tive essa ideia:
exceto para solicitantes da Web/internet de troca de dados entre Python->MT5? Não quero mencionar o banco de dados MySQL.
"trazer à tona o SQLite" - o MT5 o tem integrado, o python obviamente também o tem....
Você pode usar o soquete para informar o que precisa prontamente (sinais, alertas etc.) e colocar os dados grandes no SQLite. Ou seja, em python, você coloca tudo o que precisa no banco de dados e apita no soquete de "atualização de dados". E, em MQL, você pode reler o banco de dados com o apito.
O próprio banco de dados pode ser armazenado em um disco de estrutura
"bring up SQLite" - o MT5 tem esse recurso incorporado, e o python obviamente também o tem.
Você usa o soquete para informar o que precisa prontamente (sinais, alertas etc.) e coloca os dados grandes no SQLite. Ou seja, em python, você coloca tudo o que precisa no banco de dados e apita no soquete de "atualização de dados". E, em MQL, você pode reler o banco de dados com o apito
O próprio banco de dados pode ser armazenado em um disco de estrutura
Entendo seu ponto de vista, obrigado pela resposta... Eu pensei assim
O MetaTrader 5 usa sua própria linguagem de programação MQL5, que é executada em um processo isolado. Isso não permite a interação direta com a memória compartilhada do sistema operacional, como podem fazer outros aplicativos que usam APIs de baixo nível.
Shell dentro de um shell.... Já faz 20 anos que eles não conseguem criar uma versão nativa para o Mac...
Entendo seu ponto de vista, obrigado pela resposta.... Bem, foi o que pensei
O MetaTrader 5 usa sua própria linguagem de programação MQL5, que é executada em um processo isolado. Isso não permite a interação direta com a memória compartilhada do sistema operacional, como outros aplicativos que usam APIs de baixo nível podem fazer.
Shell dentro de um shell.... Já faz 20 anos que eles não conseguem criar uma versão nativa para mac...
ninguém proíbe o uso de DLL - e lá você pode fazer o que quiser.
Você pode pesquisar a memória diretamente (provavelmente não é mais rápido :-)).
Ou soluções intermediárias eficientes, como o banco de dados de valor-chave na memória.
Somente na maioria dos casos, os freios e o gargalo estão do lado do Python