Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
...
es wird eine Möglichkeit geben, Daten zwischen EAs auszutauschen, die auf verschiedenen Charts laufen
Ich habe dies bereits umgesetzt und es funktioniert. Jeder, der versteht, was Mehrfachvererbung bedeutet, sollte in der Lage sein, dies zu tun. Ansonsten ist es eine Schande, was er weiß.
Eine beliebige Standardfunktion, die ein Array von Bytes an globale Variablen des Terminals sendet (vorzugsweise ein int-Array, damit es weniger Fragen zur Konvertierung gibt), und dementsprechend die umgekehrte Funktion, mit der dieses Array in einem anderen Expert Advisor gelesen werden kann
Globale Variablen reichen einfach nicht aus, um Daten auszutauschen - es gibt ein großes Feld für den Variablennamen und ein kleines Feld für Daten, es braucht das Gegenteil ;)
SZZ: es gibt eine Menge Beispiele im Netz für das Parsen von Entscheidungsgraphen, meist wird durch die Schnittstellen eine flexible Codestruktur erreicht, Schnittstellen sind überall, in MQL nicht (
Ich stimme völlig zu. Die globalen Variablen des Terminals sind lahm. Aber Sie müssen Klasseninstanzen speichern, keine Arrays, wie in WCF. Ich war seinerzeit wirklich schockiert über diese Funktion. Anstatt Bytes über das Netzwerk zu streamen, konnte ich einfach die Klasseninstanz senden, und alles wurde von .NET erledigt, und zwar schnell, wenn ich es im Binärformat schickte.
Hmm, während ich die Tastatur drückte, kam mir die Idee, eine Libu wie diese zu machen...
---
Über die Entscheidung Graphen und Schnittstellen habe ich einfach nicht begegnet, die Programmierung Welt ist riesig ))
Ich habe es bereits umgesetzt und es funktioniert. Jeder, der versteht, was Mehrfachvererbung bedeutet, sollte in der Lage sein, dies zu tun. Ansonsten ist sein Wissen wertlos.
Und das ohne billigen Pomp und Umstände?
Ich habe es bereits umgesetzt und es funktioniert.
и?
In der KB gibt es seit langem fertige Lösungen, haben Sie auch Ihre eigene Lösung hinzugefügt? oder nur... im Vorbeigehen?
и?
in der KB gibt es schon seit langem fertige Lösungen, haben Sie auch Ihre eigene Lösung hinzugefügt oder sind Sie nur vorbeigekommen?
nach der Erwähnung der Mehrfachvererbung zu urteilen, leer...
wie in WCF, Klasseninstanzen
man kann keine komplizierte Lösung haben, es wird keinen Massengebrauch geben, jeder kann ein Array lesen und schreiben, wenn etwas Komplizierteres benötigt wird, wird es keine Nachfrage dafür geben. Wie ich oben schrieb, hat KB anständige Lösungen für den Datenaustausch, aber imho, GlobalArrayWrite(string name, int out[]) und GlobalArrayRead(string name , int &in[]) - das war's, kein Bedarf mehr für Benutzer
Und das ohne Prunk und Pomp?
Ressourcen. Deklarieren Sie eine Vereinigung mit Arrays verschiedener Typen in beiden EA-Programmen (oder Indikatoren, oder EA und Indikator), die Sie auf verschiedenen Charts platzieren wollen. In jedem Programm schreiben Sie die Adresse der Gegenseite in eine String-Variable (Ordner, Unterordner, Programmname). Sie verwenden zwei Funktionen zur Kommunikation - die erste Funktion ist das Lesen der Nachricht, die zweite das Schreiben der Nachricht. Die Funktionen werden in beiden Programmen mit der Frequenz des Timers aufgerufen.
Die Funktionalität eines jeden Programms muss alle zu übertragenden Daten in eine String-Variable schreiben. Am Ende der Timer-Funktion wird dann dieFunktion zur Nachrichtenübermittlungaufgerufen, die die gesammelte Zeichenfolge in der Ressource speichert. Ein anderes Programm auf einer anderen Karte wird in der nächsten Zeitperiode die Lesefunktion der Ressource an der Adresse des anderen Programms aufrufen und die Nachricht auspacken. Es kann dann seine Nachricht an das erste Programm auf die gleiche Weise zusammenstellen und weiterleiten, indem es einfach die erforderlichen Daten in seine Ressource schreibt.
Ich habe mich gefragt, ob ich seit etwa 13 Jahren mit Devisen handele. Ich habe 2006 mit MT4 begonnen. Ich habe mich nur mit diesem Thema beschäftigt, weil meine damalige Freundin mich bat, mir zu helfen, das Terminal zu verstehen, und ich entdeckte glücklicherweise eine C-ähnliche Sprache, MQL4, und wurde süchtig. Es ist lustig, wenn ich mich daran erinnere, dass ich im Terminal auf Englisch gearbeitet habe und mir sicher war, dass es sich um eine westliche Entwicklung handelte. Als ich herausfand, dass die Jungs aus Kazan es geschafft hatten, bekam ich eine kognitive Dissonanz)).
Nach 13 Jahren kann ich also mehrere Etappen in der Entwicklung von MT*-Terminals verzeichnen.
1. Der Beginn der MT5-Entwicklung, ich glaube es war 2009. Die Entwicklung von MT5 wurde begonnen, ich glaube, es war im Jahr 2009. Zu dieser Zeit pflegte ich zu besuchen alp Forum, ich erinnere mich noch, wie Renat besucht es mit seiner Propaganda, und ich pflegte zu argumentieren, dass Netting-Schema ist tot kommerziell auf Forex.
2. ein sehr wichtiger Meilenstein für mich, Anfang 2013, die Veröffentlichung des neuen MT4 Build > 600. Mann, ich war begeistert, es gab Strukturen, sogar Klassen, neue normale Definitionen wie in C++. Endlich wurden alle Fehler behoben, der Editor stürzt beim Kopieren und Einfügen nicht mehr ab, und auch andere Fehler wurden behoben. Früher habe ich alle meine Strategien in C# über eine Brücke zu C++ geschrieben, und jetzt habe ich angefangen, meinen Code auf MQL4 zu portieren, da es möglich wurde, normal zu arbeiten, anstatt zu mischen.
3. Ich erinnere mich nicht an das Jahr hier, vielleicht ist es 2016? Bitte korrigieren. Meine Idee war es, die Hedge-Version von MT5 zu verwenden, deshalb habe ich mich für den Wechsel zu MT5 entschieden.
4. Ich kann mich auch nicht mehr an das Jahr erinnern, etwa 2018? Ein einziger Compiler und die Möglichkeit, ein Multiplattform-Projekt in MT5 zu schreiben. Seitdem schreibe ich nur noch für mich. Wenn ich meinen Kunden diese Möglichkeit anbiete, nehmen 90 % von ihnen sie sofort an, und absolut alle wissen nicht einmal davon. Für Multiplattform empfehle ich die MT4Orders libu von fxsaber, Sie finden sie in kodobase.
5. Dies ist ein Sammelsurium von Dingen, da MT5 ständig weiterentwickelt wird, ist dies sehr erfreulich.
Ich habe die Entwicklung der Plattform in 13 Jahren grob skizziert, aber was wird in weiteren 10 Jahren passieren? Vielleicht werden sich einige Fantasien in zukünftigen Entwicklungen widerspiegeln ))
Das ist eine andere Sache... Ich hatte einmal 10 Freundinnen, die mich auf den Knien anflehten, das Terminal zu finden... Ich antwortete ihnen: Schämt euch, ich bin kein freier Mann, ich habe bereits 50 Freundinnen unter meiner Obhut, ich habe nur eine Dreizimmerwohnung in St. Petersburg, und ich habe nicht genug Zeit - ich muss Tag und Nacht auf Tschetschenen pinkeln...
Und MT ist und wird es sein.
и?
In der KB gibt es seit langem fertige Lösungen, haben Sie auch Ihre eigene Lösung hinzugefügt? oder nur... im Vorbeigehen?
Man kann keine komplexe Lösung haben, es wird keine Massen geben, jeder kann das Array lesen und schreiben, wenn etwas komplizierteres nicht nachgefragt wird. Wie ich oben schrieb, gibt es gute Lösungen für den Datenaustausch in KB, aber imho, GlobalArrayWrite(string name, int out[]) und GlobalArrayRead(string name , int &in[]) - das ist es, mehr braucht man nicht für den Benutzer
Sehen Sie, auch Datei-Operationen gibt es schon seit langem
uintFileWriteStruct(
intfile_handle,//Datei-Handle
const void&struct_object,// Objektreferenz
intsize=-1// Größe zum Schreiben in Bytes
);
Es ist viel bequemer, Strukturen oder Klassenobjekte zu lesen und zu schreiben, als einen Strom von einfachen Typen zu parsen. Vielleicht bin ich mit dem Alter faul geworden? Ja, ich ziehe es vor, mehr Dinge zu tun und dabei weniger auf die Tastatur zu hämmern ))