Troca de dados entre dois EAs funcionando em terminais diferentes

 

Esta linha é uma continuação técnica da linha "NFA proibição de travamento a partir de 15 de maio de 2009".

Em particular, a começar por este posto:

Proibições de bloqueio da NFA a partir de 15 de maio de 2009

solandr 26.04.2009 12:06

2. Se você tiver uma conta de corretagem americana, você a dividirá em 2 contas separadas de igual tamanho. Por um lado, todas as posições para todos os instrumentos serão COMPRAS apenas, por outro, todas as posições para todos os instrumentos serão VENDIDAS apenas. Esta regra não é violada quando o hedging é proibido em uma conta, pois temos 2 contas. Em seguida, precisamos elaborar um método de distribuição de posições do único Expert Advisor nessas 2 diferentes contas. Como esta não foi minha tarefa anterior, gostaria de saber que métodos estão disponíveis para a execução precisa de ordens de um consultor especializado em 2 contas diferentes?

Gostaria de discutir a implementação técnica da troca de dados entre dois EAs que trabalham em terminais diferentes.

Acredito que a direção mais promissora para a discussão é a transferência de informações entre EAs usando um espaço de memória compartilhada, mas qualquer outra opção pode ser discutida.

Ou seja, cada um dos Conselheiros Especialistas precisa ter as informações completas sobre as ordens do outro terminal. Como organizar isto?

Gostaria de pedir apenas detalhes técnicos para serem discutidos neste tópico. Agradecemos antecipadamente!

 
Todos os detalhes técnicos, bem como a implementação do algoritmo, foram descritos há muito tempo. Use a busca.
 
HIDDEN >> :
Todos os detalhes técnicos, bem como a implementação do algoritmo, foram descritos há muito tempo. Use a busca.

Você quer dizer este artigo ou algo mais?

Seleção automatizada de CDs para um trabalho eficiente de especialistas.

 

Para sua tarefa, usar o kit de ferramentas descrito no artigo sobre seleção DC automatizada é um tiro no escuro. Sem nenhuma dll, você pode sobreviver apenas com arquivos.

 

O uso da sqllite3 por um dos terminais sugere que esta é uma das maneiras mais fáceis.

Seria uma boa idéia para os desenvolvedores carregar todas as informações do terminal neste banco de dados.

Depois, com as funções habituais, teremos acesso à leitura de informações mais estruturadas...

Por exemplo, agora é uma tarefa não trivial analisar os logs para estimar, por exemplo, a qualidade da abertura de posição.

*

Desculpe se estou fora do tópico...

*

Agora que estamos falando de DB, estou procurando maneiras que possam ajudar durante o intercâmbio entre contas,

como escrever e ler as mesmas células de banco de dados?

Isto é, para seus propósitos, começamos uma mesa , e em seus campos, vamos chamar condicionalmente A, B, C, D, com uma fileira.

Esquematicamente, é assim:


A
B
C
E
dados
123
1.2548
12.04.2009
compre
 
solandr >> :

Esta linha é uma continuação técnica da linha "NFA proibição de travamento a partir de 15 de maio de 2009".

Em particular, a começar por este posto:

Proibições de bloqueio da NFA a partir de 15 de maio de 2009

solandr 26.04.2009 12:06

2. Se você tiver uma conta de corretagem americana, você a dividirá em 2 contas separadas de igual tamanho. Por um lado, todas as posições para todos os instrumentos serão COMPRAS apenas, por outro, todas as posições para todos os instrumentos serão VENDIDAS apenas. Esta regra não é violada quando o hedging é proibido em uma conta, pois temos 2 contas. Em seguida, precisamos elaborar um método de distribuição de posições do único Expert Advisor nessas 2 diferentes contas. Como esta não foi minha tarefa anterior, gostaria de saber que métodos estão disponíveis para a execução precisa de ordens de um consultor especializado em 2 contas diferentes?

Gostaria de discutir a implementação técnica da troca de dados entre dois EAs que trabalham em terminais diferentes.

Acredito que a direção mais promissora para a discussão é a transferência de informações entre EAs usando um espaço de memória compartilhada, mas qualquer outra opção pode ser discutida.

Ou seja, cada um dos Conselheiros Especialistas precisa ter as informações completas sobre as ordens do outro terminal. Como organizar isto?

Gostaria de pedir apenas detalhes técnicos para serem discutidos neste tópico. Agradecemos antecipadamente!

Eu tenho várias idéias

1- troca de arquivos

2- é possível utilizar vários métodos de eventos windows

3 via TCP/IP


O compartilhamento de arquivos é mais simples em termos de complexidade


você tem que ter cuidado com o compartilhamento de arquivos

O acesso ao mesmo arquivo por programas diferentes deve ser devidamente separado

Em qualquer caso, você precisa ter uma boa idéia de como funciona o compartilhamento de arquivos.

 
kombat >> :


Se estamos falando do mysql, então estou procurando maneiras que também serão úteis para a troca entre as contas,

como escrever e ler as mesmas células de banco de dados?


Elementar, Watson. Através de consultas SQL.

 
Reshetov >> :

É elementar, Watson. Através de consultas SQL.

Obrigado, Holmes! ;)))

O único problema é como fazer isso...

Eu, por exemplo, ainda não sucumbi a esta tarefa.

(embora eu só trabalhe nele ocasionalmente).

*

Se for sério, o problema é fazer um pedido de leitura/escrita por coordenadas de tabela específicas.

 
kombat >> :

Obrigado, Holmes! ;)))

O único problema é como fazer isso...

Eu, por exemplo, ainda não sucumbi a esta tarefa.

(embora eu só trabalhe nele ocasionalmente).

*

A sério, o problema é fazer uma consulta de leitura/escrita para coordenadas de tabela específicas.


SQL também pode fazer isso

há um problema... como os dois EA's sabem mexer com o SQL?

eles terão que usar um monitor em ambos os Conselheiros Especialistas que usarão um quantum de tempo para olhar em SQL para ver se a EA "escreveu" algo

Da mesma forma com a troca de arquivos! Você tem que passar pelo mesmo problema - com cada quantum de tempo você vai para o arquivo

se algo mudou, se um amigo que negocia em outra conta relatou algo


--

é mais economia de recursos e melhor usar um evento

evento ocorre - chute!

se um evento não tiver ocorrido - não chute!

cada especialista pode ter o desejo de contar a seu amigo sobre suas intenções

este será o evento... é assim que ele chuta seu amigo adormecido

janelas é um sistema operacional acionado por eventos - melhor ir nessa direção

--

 

Em princípio, é mais do que suficiente para eu verificar/registar um arquivo em intervalos regulares.

Quanto ao acesso aos arquivos, um colega me sugeriu a seguinte idéia. Enquanto escrevemos para um arquivo, nós o chamamos de algo como file.running. Assim que terminamos de escrever nele, renomeamo-lo para file.output. Depois que o arquivo for lido pelo segundo consultor especializado , exclua o arquivo. Assim, informamos ao primeiro Expert Advisor que podemos escrever um novo arquivo com as informações aprovadas durante o próximo ciclo de operação da primeira EA (após um certo quantum de tempo). Talvez, para a segurança da separação de acesso, pudéssemos usar algumas bandeiras.


Tenho visto alguns exemplos de uso do TCP/IP quando os dados são enviados através do localhost 127.0.0.0.1 em alguma porta. Cada Expert Advisor conhece o porto de outro e transmite dados para ele. Ao mesmo tempo, ele escuta em seu próprio porto para interceptar dados de outro Expert Advisor. Tenho um exemplo de como isto pode ser feito no roteiro VB. Não sei como isso pode ser implementado em uma EA.

Existe algum exemplo pronto para a transmissão de dados através de TCP/IP para Consultores Especialistas?