Échange de données entre deux EAs fonctionnant dans des terminaux différents

 

Ce fil de discussion est la suite technique du fil de discussion "Interdiction de la NFA sur le verrouillage à partir du 15 mai 2009".

En particulier, en commençant par ce post :

La NFA interdit le verrouillage à partir du 15 mai 2009.

solandr 26.04.2009 12:06

2. Si vous avez un compte de courtage américain, vous le diviserez en 2 comptes séparés de taille égale. Sur un compte, toutes les positions pour tous les instruments seront uniquement BUY, sur l'autre toutes les positions pour tous les instruments seront uniquement SELL. Cette règle n'est pas violée lorsque la couverture est interdite sur un compte, car nous avons 2 comptes. Nous avons alors besoin d'une méthode pour distribuer les transactions du seul conseiller expert entre ces deux comptes différents. Comme je n'ai jamais eu à le faire, j'aimerais savoir quelles sont les méthodes disponibles pour l'exécution précise des ordres d'un conseiller expert sur deux comptes différents ?

Je voudrais discuter de la mise en œuvre technique de l'échange de données entre deux EA travaillant dans des terminaux différents.

Je pense que la direction la plus prometteuse pour la discussion est le transfert d'informations entre les EA en utilisant un espace mémoire partagé, mais toute autre option peut être discutée.

En d'autres termes, chacun des conseillers experts doit disposer de toutes les informations sur les ordres provenant de l'autre terminal. Comment organiser cela ?

Je voudrais demander que seuls les détails techniques soient discutés dans ce fil. Merci d'avance !

 
Tous les détails techniques ainsi que l'implémentation de l'algorithme ont été décrits depuis longtemps. Utilisez la recherche.
 
HIDDEN >> :
Tous les détails techniques ainsi que l'implémentation de l'algorithme ont été décrits depuis longtemps. Utilisez la recherche.

Vous parlez de cet article ou d'un autre ?

Sélection automatisée de DCs pour un travail d'expert efficace.

 
 

Pour votre tâche, l'utilisation de la boîte à outils décrite dans l'article sur la sélection automatisée des DC est une solution de fortune. Sans aucune dll, vous pouvez vous en sortir avec de simples fichiers.

 

L'utilisation de sqllite3 par l'un des terminaux suggère qu'il s'agit de l'un des moyens les plus simples.

Ce serait une bonne idée pour les développeurs de charger toutes les informations sur les terminaux dans cette base de données.

Ensuite, avec les fonctions habituelles, nous pouvons accéder à la lecture d'informations plus structurées...

Par exemple, l'analyse des journaux pour estimer, par exemple, la qualité de l'ouverture d'un poste n'est plus une tâche triviale.

*

Désolé si je suis hors sujet...

*

Maintenant que nous parlons de DB, je cherche des moyens qui pourraient aider lors des échanges entre comptes,

comment écrire et lire les mêmes cellules de la base de données ?

C'est-à-dire, pour leurs fins, nous commençons une table , et dans ses champs, appelons conditionnellement A, B, C, D, avec une ligne.

Schématiquement, c'est comme ça :


A
B
C
E
données
123
1.2548
12.04.2009
acheter
 
solandr >> :

Ce fil de discussion est la suite technique du fil de discussion "Interdiction de la NFA sur le verrouillage à partir du 15 mai 2009".

En particulier, en commençant par ce post :

La NFA interdit le verrouillage à partir du 15 mai 2009.

solandr 26.04.2009 12:06

2. Si vous avez un compte de courtage américain, vous le diviserez en 2 comptes séparés de taille égale. Sur un compte, toutes les positions pour tous les instruments seront uniquement BUY, sur l'autre toutes les positions pour tous les instruments seront uniquement SELL. Cette règle n'est pas violée lorsque la couverture est interdite sur un compte, car nous avons 2 comptes. Ensuite, nous devons élaborer une méthode de distribution des positions du seul conseiller expert sur ces 2 comptes différents. Comme je n'ai jamais eu à le faire, j'aimerais savoir quelles sont les méthodes disponibles pour l'exécution précise des ordres d'un conseiller expert sur deux comptes différents ?

Je voudrais discuter de la mise en œuvre technique de l'échange de données entre deux EA travaillant dans des terminaux différents.

Je pense que la direction la plus prometteuse pour la discussion est le transfert d'informations entre les EA en utilisant un espace mémoire partagé, mais toute autre option peut être discutée.

En d'autres termes, chacun des conseillers experts doit disposer de toutes les informations sur les ordres provenant de l'autre terminal. Comment organiser cela ?

Je voudrais demander que seuls les détails techniques soient discutés dans ce fil. Merci d'avance !

J'ai plusieurs idées

1 échange de fichiers

2- il est possible d'utiliser diverses méthodes d'événements de fenêtres

3 via TCP/IP


Le partage de fichiers est plus simple en termes de complexité


il faut être prudent avec le partage de fichiers

L'accès au même fichier par différents programmes doit être correctement séparé

Dans tous les cas, vous devez avoir une bonne idée du fonctionnement du partage de fichiers.

 
kombat >> :


Si nous parlons de mysql, alors je cherche des moyens qui seront également utiles pour les échanges entre comptes,

comment écrire et lire les mêmes cellules de la base de données ?


Elémentaire, Watson. Par le biais de requêtes SQL.

 
Reshetov >> :

C'est élémentaire, Watson. Via des requêtes SQL.

Merci, Holmes ! ;)))

Le seul problème est de savoir comment le faire...

Moi, par exemple, je n'ai pas encore succombé à cette tâche.

(bien que je n'y travaille qu'occasionnellement).

*

Si c'est le cas, le problème est de faire une demande de lecture/écriture par des coordonnées de table spécifiques.

 
kombat >> :

Merci, Holmes ! ;)))

Le seul problème est de savoir comment le faire...

Moi, par exemple, je n'ai pas encore succombé à cette tâche.

(bien que je n'y travaille qu'occasionnellement).

*

Sérieusement, le problème est de faire une requête en lecture/écriture pour des coordonnées de table spécifiques.


SQL peut le faire aussi

il y a un problème... comment les deux EA savent-ils qu'il faut jouer avec le SQL ?

ils devront utiliser un moniteur dans les deux Expert Advisors qui utilisera un quantum de temps pour regarder dans SQL pour voir si l'EA a "écrit" quelque chose.

De même avec l'échange de fichiers ! Vous devez passer par le même problème - avec chaque quantum de temps que vous allez au fichier

si quelque chose a changé, si un ami qui traite sur un autre compte a signalé quelque chose


--

il est plus économe en ressources et préférable d'utiliser un événement

l'événement se produit - coup de pied !

si un événement ne s'est pas produit - ne donnez pas de coup de pied !

chaque expert peut avoir l'"envie" de faire part à son ami de ses intentions

ce sera l'événement... C'est comme ça qu'il frappe son ami endormi.

Windows est un système d'exploitation basé sur les événements - il vaut mieux aller dans cette direction.

--

 

En principe, cela me suffit amplement pour vérifier/enregistrer un fichier à intervalles réguliers.

En ce qui concerne l'accès aux fichiers, un collègue m'a suggéré l'idée suivante. Lors de l'écriture dans un fichier, nous l'appelons quelque chose comme file.running. Dès que nous avons fini d'écrire dedans, nous le renommons en fichier.output. Une fois le fichier lu par le second Expert Advisor , supprimez le fichier. Ainsi, nous faisons savoir au premier conseiller expert que nous pouvons écrire un nouveau fichier avec les informations transmises lors du prochain cycle d'opération du premier conseiller expert (après un certain laps de temps). Peut-être que, pour la sécurité de la séparation des accès, nous pourrions utiliser certains drapeaux.


J'ai vu quelques exemples d'utilisation de TCP/IP lorsque des données sont envoyées sur le serveur local 127.0.0.1 sur un certain port. Chaque conseiller expert connaît le port d'un autre et lui transmet des données. En même temps, il écoute sur son propre port pour intercepter les données des autres conseillers experts. J'ai un exemple de la façon dont cela peut être fait dans un script VB. Je ne sais pas comment l'implémenter dans un EA.

Existe-t-il des exemples prêts à l'emploi de transmission de données via TCP/IP pour les Expert Advisors ?

Raison: