Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1192

 
Tango_X:

Hallo! Bitte helfen Sie mir, alle Werte auszugeben, ich kann nur die letzten Werte ausgeben. Und die zweite Frage, wie man diese Werte mit einer Verschiebung nach rechts ausgibt (jede Verschiebung kann eingestellt werden). Ich danke Ihnen!

int q[100];
Сдвиг влево
вызов 
for(int w=-1;++w<100;)
q[w]=q[w+1]
Сдвиг вправо
for(int w=100;--w>-1;)
q[w]=q[w-1]

Vielleicht gibt es einen Ausweg aus dieser Situation. Dies ist ein Beispiel mit einem eindimensionalen Array. Die Verschiebung ist hier auf eins gesetzt, aber Sie könnenz.B. ein beliebigesw+5 angeben(aber in diesem Fall wird es definitiv außerhalb der Grenzen sein, also, zählen Sie es und sehen Sie nach). Schreiben Sie es in Excel auf und sehen Sie nach, was was ist.

 
Seric29:

Was meinen Sie damit, dass das Protokoll geschlossen ist? In mql4 gibt es Funktionen zum Öffnen von Aufträgen, es ist im Grunde nur einfacher Code. Das Gleiche gilt für grafische Objekte. Ich habe gehört, dass mql4 ein kommerzielles Produkt ist und dass es deshalb keinen Quellcode oder eingebettete Funktionen (z.B. Arrayresize/Range etc.) gibt. Ich fühle mich zum Beispiel nicht wohl dabei, mit mql4 ein Programm zu schreiben, es ist eine zu tote Sprache, sehr begrenzt. Was ist mit der Sprache Win API 32, kann sie nichts über meine Fragen tun? Ich vermute, dass auch für Win API 32 alles geschlossen ist.

Das Terminal und der Server kommunizieren miteinander über ein bestimmtes Protokoll, das uns von niemandem mitgeteilt wird.

Das bedeutet, dass Aufträge nur von MQL aus eröffnet werden dürfen.

Die gesamte Logik sollte in DLL platziert werden und die Aufträge sollten von MQL aus geöffnet werden. Das ist meine Aufgabe.

 
Koldun Zloy:

Das Terminal und der Server kommunizieren über ein bestimmtes Protokoll miteinander, das uns niemand nennen wird.

Das bedeutet, dass Aufträge nur von MQL aus eröffnet werden dürfen.

Verschieben Sie die gesamte Logik nach DLL und öffnen Sie Aufträge von MQL aus. So mache ich es.

Dies ist eine schlechte Idee, die absichtlich gemacht wurde. Das Terminal und der Server kommunizieren miteinander über ein bestimmtes Protokoll, das uns niemand zur Verfügung stellt. Verzeihen Sie mir den Ausdruck, aber ich bin sprachlos. Es wäre besser, die Implementierung des Programms in mql4 zu schreiben und die steuernden Berechnungsfunktionen in c++. Denn wenn alles außer den Abhängigkeiten (Auftragsobjekte) in C++ geschrieben wird, wäre es zu teuer. Es ist eine Sonderanfertigung. Mir wurde geraten, mich an das Unternehmen zu wenden, aber ich denke, die Antwort wird so ausfallen, wie Sie es wünschen. Ja, es ist ein kommerzielles Produkt.

 
Koldun Zloy:

Das Terminal und der Server kommunizieren miteinander über ein bestimmtes Protokoll, das uns niemand nennen wird.

Das bedeutet, dass Aufträge nur von MQL aus eröffnet werden dürfen.

Verschieben Sie die gesamte Logik zu DLL und öffnen Sie Aufträge von MQL. So mache ich es.

Wenn Sie nicht hinsehen, wird die Bestellung nicht an den Server, sondern an das Terminal gesendet, d. h. es kommuniziert mit dem Terminal, und das Terminal sendet Bestellungen an den Server. Wenn du das Terminal schreibst, wird es komplett zusammenbrechen, aber du musst immer noch irgendwie mit dem Terminal interagieren, das ist es, was ich meine.

 
Seric29:

Sieh nicht hin, du schickst die Bestellung nicht an den Server, sondern an das Terminal, das heißt, du kommunizierst mit dem Terminal, und das Terminal schickt sie an den Server. Wenn Sie auch das Terminal schreiben, wird es zusammenbrechen, aber Sie müssen trotzdem irgendwie mit dem Terminal kommunizieren, das ist der Punkt.

Bitte schreiben Sie in diesem Thema keine absichtlich falschen Antworten für Neulinge, wenn Sie die richtige Antwort nicht kennen. Und es gibt keinen Grund, über Vieh und andere Dinge zu diskutieren, die nichts mit dieser Ressource zu tun haben.

 
Seric29:

Sieh nicht hin, du schickst die Bestellung nicht an den Server, sondern an das Terminal, das heißt, du kommunizierst mit dem Terminal, und das Terminal schickt sie an den Server. Wenn Sie auch das Terminal schreiben, wird es zusammenbrechen, aber Sie müssen trotzdem irgendwie mit dem Terminal kommunizieren, das ist der Punkt.

Ihr Expert Advisor arbeitet im Terminal. Sie ruft Funktionen der DLL auf, sendet Daten an sie und erhält eine Antwort, ob sie einen Auftrag öffnen oder schließen muss.

 
Hallo, brauche ich Hilfe? Wie kann ich Konten von mql4 zu mql5 migrieren?
 
Artyom Trishkin:

Bitte schreiben Sie in diesem Thread nicht absichtlich falsche Antworten an Neulinge, wenn Sie selbst nicht die richtige Antwort wissen. Und es ist nicht nötig, über Rinder und andere Dinge zu diskutieren, die nichts mit dieser Ressource zu tun haben.

Der Mann fragte, wie man ein Array verschiebt. Ich habe Ihnen ein kurzes Beispiel für das Verschieben um 1tsu gezeigt, aber ich kann Ihnen nicht die ganze Funktion zeigen. Es ist auch schade, dass er nur ein sehr kurzes Beispiel genannt hat.

Ich weiß natürlich, dass ich sie nicht beschimpfen sollte, aber die Tatsache, dass die normale Software nicht verwendet werden kann, hat mich doch sehr erschüttert. Ich denke, es gibt etwas, und Sie können es nicht verwenden und müssen leiden.

 
Koldun Zloy:

Ihr EA läuft im Terminal. Durch den Aufruf von Funktionen aus der DLL sendet sie Daten an diese und erhält eine Antwort: sollen Sie einen Auftrag öffnen oder schließen.

Nun, ja, es ist im Terminal, aber es ist nicht klar, was hier passiert: zuerst wird der Auftrag vom Terminal bearbeitet und dann geht er an den Server oder es werden sofort Linien zum Server gezogen, wenn Sie es von einem Benutzer aktiviert haben.

Das Zeichnen von Linien ist jedoch nicht mit dem Server verbunden, so dass es mit eigenen Funktionen implementiert werden kann.

 
Seric29:

Nun, ja, im Terminal, aber es ist nicht klar, was passiert, wenn der Auftrag zunächst durch das Terminal verarbeitet wird und geht dann an den Server, oder zur gleichen Zeit Zeilen an den Server gezogen werden, wenn der Benutzer aktiviert ist, wenn sofort an den Server, dann ernst, aber wenn zuerst an das Terminal und von dort die 2.

Das Zeichnen von Linien ist jedoch nicht mit dem Server verbunden, so dass es mit eigenen Funktionen implementiert werden kann.

Sie können dies nicht über die DLL tun. Vergessen Sie es. Sie können es einfach nicht tun!