Intercâmbio de dados entre dois terminais MT4? - página 4

 

Eu costumava fazer tal conexão entre terminais via WinAPI. A lista de janelas abertas procuraria por todos os terminais MT4 em funcionamento. Havia 2 opções para obter cotações:


1. Leia as citações do "Market Watch" (controle do tipo ListView) dos terminais encontrados. Só pode ser feito a partir de DLL externas.

2) Sem utilizar DLL externas. Em cada terminal o Expert Advisor que foi iniciado escreve suas citações (para seu símbolo) no descritor de texto de sua janela. E um consultor especializado de outro terminal encontra esta janela (com seu próprio nome simbólico) e lê a citação.


Havia uma desvantagem: se a conexão com o servidor comercial em um dos terminais for desconectada, o Consultor Especialista no outro terminal não saberá sobre isso. Para evitar tal situação, os especialistas em cada terminal devem escrever a hora atual em um descritor de texto de alguma janela (a segunda variante pode ser escrita em suas janelas). Isto é feito a cada determinado período de tempo (por exemplo, 0,5 seg.). O Expert Advisor de outro terminal lê desta vez e o compara com seu próprio tempo.

 
Meat:

Eu costumava fazer tal conexão entre terminais via WinAPI. A lista de janelas abertas procuraria por todos os terminais MT4 em funcionamento. Havia 2 opções para obter cotações:


1. Leia as citações do "Market Watch" (controle do tipo ListView) dos terminais encontrados. Só pode ser feito a partir de DLL externas.

Você poderia entrar em um pouco mais de detalhe, é muito interessante. Eu ficaria muito grato.
 
Sergey_Murzinov писал (а): Um pouco mais de detalhe pode, é muito interessante. Eu ficaria muito grato.
Infelizmente eu não tenho o código fonte da DLL (e da DLL em si) no momento. Mas eu descrevi o algoritmo geral aqui: https://www.mql5.com/ru/forum/107435/page3

Se você precisar de mais detalhes, você pode encontrar um projeto pronto na Internet, usando um mecanismo de busca (algo como "obter texto da ListView").

 

Já fiz tal encadernação através de arquivos (até 5 terminais), não vi nenhum atraso.

O tempo que leva para executar uma operação comercial é várias ordens de magnitude maior do que o tempo que leva para trocar informações.

 
komposter:

Já fiz tal encadernação através de arquivos (até 5 terminais), não vi nenhum atraso.

O tempo que leva para executar uma operação comercial é várias ordens de magnitude maior do que o tempo que leva para trocar informações.

Entendo que já passou mais de um mês, mas talvez...

Você mencionou o tópico de encadernação de terminais via arquivos, é o que eu quero implementar para mim. Já estão nos fóruns há dois dias, mas ainda não descobriram qual o caminho a seguir. Só preciso copiar um arquivo escrito de um terminal para outros terminais (especialistas/arquivos). Não sou um programador, não sei como fazer isso. Encontrei uma função ShellExecuteA, ela pode executar uma aplicação externa a partir de um indicador, mas se for possível há uma maneira de copiar arquivos de um EA para outro (não MQL) sem criar um bat-file adicional. Por favor, ajude, talvez haja algum link para roteiros prontos. Eu mesmo posso ter dificuldade de entender. DLL e WinAMI ainda é um tópico desconhecido para mim. Obrigado de antemão.

 
Eu me pergunto por que 2 CDs, tomando dois pares positivamente correlacionados, obtêm o mesmo resultado.
 
iskatel писал (а):П Sei que já faz mais de um mês, mas talvez... Você mencionou aqui o tópico de ligação de terminais via arquivos, é algo que eu quero implementar para mim mesmo. Já estão nos fóruns há dois dias, mas ainda não descobriram qual o caminho a seguir. Só preciso copiar um arquivo escrito de um terminal para outros terminais (especialistas/arquivos). Não sou um programador, não sei como fazer isso. Encontrei uma função ShellExecuteA, ela pode executar uma aplicação externa a partir de um indicador, mas se for possível há uma maneira de copiar arquivos de um EA para outro (não MQL) sem criar um bat-file adicional. Por favor, ajude, talvez haja algum link para roteiros prontos. Eu mesmo posso ter dificuldade de entender isso, DLL e WinAMI ainda é um tópico desconhecido para mim. Obrigado de antemão.

Veja como ele é implementado aqui: 'Otimização automática de um robô comercial no comércio real'.

Cópia usando ShellExecuteA.

 
xrust:
Eu me pergunto por que 2 CDs, tomando dois pares positivamente correlacionados, obtêm o mesmo resultado.

2 CDs, isto é da experiência de vida " não coloque todos os seus ovos em uma cesta", o que quer que seja: problemas com a retirada, servidor desliga. Tenho certeza de que você sabe mais sobre tais situações do que eu. Procurando roteiros para automatizar seu trabalho. Eu não tenho realmente 2, tenho mais. Eu gosto de negociar manualmente e enquanto repito uma e as mesmas ações você pode estar enganado em algum lugar. E o computador em vários terminais executará as operações muito mais rapidamente do que eu. Mas parece que eu já encontrei o que estava procurando. Obrigado por seu fórum, bom trabalho.

A propósito, devo confessar que não sei o que são "pares positivamente correlacionados". De toda a frase eu só conheço a palavra "resultado".

Obrigado pelas respostas.

 
O sistema já foi implementado há muito tempo...
quer receber com os detalhes... knock stu_dent [@]mailcan.com
 
DentStu:
O sistema já foi implementado há muito tempo...
quer receber com os detalhes... knock stu_dent [@]mailcan.com

Sim, eu já o fiz. Mas obrigado de qualquer forma.