Austausch von Daten zwischen zwei EAs, die auf verschiedenen Terminals laufen

 

Dieser Thread ist eine technische Fortsetzung des Threads "NFA-Verbot des Sperrens ab 15. Mai 2009".

Vor allem, wenn man mit diesem Beitrag beginnt:

NFA verbietet Schließung ab 15. Mai 2009

solandr 26.04.2009 12:06

2. Wenn Sie ein amerikanisches Maklerkonto haben, teilen Sie es in 2 getrennte Konten von gleicher Größe auf. Auf dem einen Konto werden alle Positionen für alle Instrumente nur KAUFEN, auf dem anderen Konto werden alle Positionen für alle Instrumente nur VERKAUFEN sein. Diese Regel wird nicht verletzt, wenn das Hedging auf einem Konto verboten ist, weil wir 2 Konten haben. Dann brauchen wir eine Methode, um die Trades des einzigen Expert Advisors auf diese 2 verschiedenen Konten zu verteilen. Da dies nicht meine bisherige Aufgabe war, würde ich gerne wissen, welche Methoden es für die genaue Ausführung von Aufträgen eines Expert Advisors auf 2 verschiedenen Konten gibt?

Ich möchte die technische Umsetzung des Datenaustauschs zwischen zwei EAs diskutieren, die in verschiedenen Terminals arbeiten.

Die vielversprechendste Diskussionsrichtung ist meines Erachtens die Übertragung von Informationen zwischen EAs unter Verwendung eines gemeinsamen Speicherbereichs, aber auch alle anderen Optionen können diskutiert werden.

Das heißt, jeder der Expert Advisors muss über alle Informationen über die Aufträge des anderen Terminals verfügen. Wie ist das zu regeln?

Ich möchte darum bitten, dass nur technische Details in diesem Thread diskutiert werden. Vielen Dank im Voraus!

 
Alle technischen Details sowie die Implementierung des Algorithmus sind schon lange beschrieben. Verwenden Sie die Suche.
 
HIDDEN >> :
Alle technischen Details sowie die Implementierung des Algorithmus sind schon lange beschrieben. Verwenden Sie die Suche.

Meinen Sie diesen Artikel oder etwas anderes?

Automatisierte Auswahl von DCs für effiziente Expertenarbeit".

 
Es handelt sich vielmehr um "WinAPI-Dateivorgänge
 

Für Ihre Aufgabe ist die Verwendung des im Artikel über die automatische DC-Auswahl beschriebenen Toolkits ein Schuss ins Blaue. Ohne Dlls können Sie mit Dateien auskommen.

 

Die Verwendung von sqllite3 auf einem der Terminals deutet darauf hin, dass dies eine der einfachsten Möglichkeiten ist.

Es wäre eine gute Idee, wenn die Entwickler alle Terminalinformationen in diese Datenbank laden würden.

Dann haben wir mit den üblichen Funktionen Zugang zum Lesen von strukturierteren Informationen...

So ist es heute eine nicht triviale Aufgabe, Protokolle zu analysieren, um z. B. die Qualität der Positionseröffnung zu bewerten.

*

Tut mir leid, wenn ich vom Thema abweiche...

*

Jetzt, wo wir über DB sprechen, suche ich nach Möglichkeiten, die beim Austausch zwischen Konten helfen können,

Wie kann man dieselben Datenbankzellen schreiben und lesen?

Das heißt, für ihre Zwecke, beginnen wir eine Tabelle , und in ihren Feldern, nennen wir bedingt A, B, C, D, mit einer Zeile.

Schematisch sieht das so aus:


A
B
C
E
Daten
123
1.2548
12.04.2009
kaufen
 
solandr >> :

Dieser Thread ist eine technische Fortsetzung des Threads "NFA-Verbot der Verriegelung vom 15. Mai 2009".

Vor allem, wenn man mit diesem Beitrag beginnt:

NFA verbietet Schließung ab 15. Mai 2009

solandr 26.04.2009 12:06

2. Wenn Sie ein amerikanisches Maklerkonto haben, teilen Sie es in 2 separate Konten gleicher Größe auf. Auf dem einen Konto werden alle Positionen für alle Instrumente nur KAUFEN, auf dem anderen Konto werden alle Positionen für alle Instrumente nur VERKAUFEN sein. Diese Regel wird nicht verletzt, wenn das Hedging auf einem Konto verboten ist, weil wir 2 Konten haben. Dann müssen wir eine Methode zur Verteilung der Positionen des einzigen Expert Advisors auf diese 2 verschiedenen Konten ausarbeiten. Da dies nicht meine bisherige Aufgabe war, würde ich gerne wissen, welche Methoden es für die genaue Ausführung von Aufträgen eines Expert Advisors auf 2 verschiedenen Konten gibt?

Ich möchte die technische Umsetzung des Datenaustauschs zwischen zwei EAs diskutieren, die in verschiedenen Terminals arbeiten.

Die vielversprechendste Diskussionsrichtung ist meines Erachtens die Übertragung von Informationen zwischen EAs über einen gemeinsamen Speicherbereich, aber auch andere Optionen können diskutiert werden.

Das heißt, jeder der Expert Advisors muss über alle Informationen über die Aufträge des anderen Terminals verfügen. Wie ist das zu regeln?

Ich möchte darum bitten, dass nur technische Details in diesem Thread diskutiert werden. Vielen Dank im Voraus!

Ich habe mehrere Ideen

1-Dateiaustausch

2- es ist möglich, verschiedene Windows-Ereignismethoden zu verwenden

3 über TCP/IP


Dateifreigabe ist von der Komplexität her einfacher


bei der gemeinsamen Nutzung von Dateien ist Vorsicht geboten

Der Zugriff auf dieselbe Datei durch verschiedene Programme muss ordnungsgemäß getrennt werden

In jedem Fall müssen Sie eine gute Vorstellung davon haben, wie die gemeinsame Nutzung von Dateien funktioniert.

 
kombat >> :


Wenn wir über mysql sprechen, dann suche ich nach Möglichkeiten, die auch für den Austausch zwischen Konten nützlich sind,

Wie können dieselben Datenbankzellen geschrieben und gelesen werden?


Elementar, Watson. Durch SQL-Abfragen.

 
Reshetov >> :

Das ist elementar, Watson. Über SQL-Abfragen.

Vielen Dank, Holmes! ;)))

Das einzige Problem ist, wie man das macht...

Ich zum Beispiel habe mich dieser Aufgabe noch nicht unterworfen.

(obwohl ich nur gelegentlich daran arbeite).

*

Im Ernstfall besteht das Problem darin, eine Lese-/Schreibanfrage nach bestimmten Tabellenkoordinaten zu stellen.

 
kombat >> :

Danke, Holmes! ;)))

Das einzige Problem ist, wie man das macht...

Ich zum Beispiel habe mich dieser Aufgabe noch nicht unterworfen.

(obwohl ich nur gelegentlich daran arbeite).

*

Das Problem besteht darin, eine Lese-/Schreibabfrage für bestimmte Tabellenkoordinaten durchzuführen.


SQL kann es auch

Es gibt ein Problem... Woher wissen die beiden EAs, dass sie mit dem SQL herumspielen müssen?

sie müssen einen Monitor in beiden Expert Advisors verwenden, der ein Quantum Zeit benötigt, um in SQL zu sehen, ob der EA etwas "geschrieben" hat

Ähnlich verhält es sich mit dem Dateiaustausch - bei jedem Quantum Zeit, das Sie zur Datei gehen, müssen Sie die gleiche Mühe auf sich nehmen.

wenn sich etwas geändert hat, wenn ein Freund, der mit einem anderen Konto handelt, etwas gemeldet hat


--

es ist ressourcenschonender und besser, ein Ereignis zu verwenden

Ereignis tritt ein - Kick!

wenn ein Ereignis nicht eingetreten ist - nicht treten!

jeder Experte kann den "Drang" verspüren, seinem Freund von seinen Absichten zu erzählen

das wird das Ereignis sein... So tritt er seinen schlafenden Freund

Windows ist ein ereignisgesteuertes Betriebssystem - es ist besser, in diese Richtung zu gehen.

--

 

Im Prinzip reicht es mir aus, eine Datei in regelmäßigen Abständen zu überprüfen/aufzuzeichnen.

Was den Dateizugriff anbelangt, so hat mir ein Kollege die folgende Idee vorgeschlagen. Wenn wir in eine Datei schreiben, nennen wir das etwas wie file.running. Sobald wir mit dem Schreiben fertig sind, benennen wir sie in file.output um. Nachdem die Datei von dem zweiten Expert Advisor gelesen wurde , löschen Sie die Datei. Auf diese Weise teilen wir dem ersten Expert Advisor mit, dass wir während des nächsten Operationszyklus des ersten EA (nach einer bestimmten Zeitspanne) eine neue Datei mit den übergebenen Informationen schreiben können. Vielleicht könnten wir für die Sicherheit der Zugangstrennung einige Flaggen verwenden.


Ich habe einige Beispiele für die Verwendung von TCP/IP gesehen, bei denen Daten über den lokalen Host 127.0.0.1 auf einem bestimmten Port gesendet werden. Jeder Expert Advisor kennt den Port eines anderen Expert Advisors und sendet Daten an diesen, während er gleichzeitig auf seinem eigenen Port lauscht, um Daten von anderen Expert Advisors abzufangen. Ich habe ein Beispiel dafür, wie dies in einem VB-Skript gemacht werden kann. Ich weiß nicht, wie dies in einem EA umgesetzt werden kann.

Gibt es fertige Beispiele für die Datenübertragung über TCP/IP für Expert Advisors?