Entwicklung einer Bibliothek von API-Funktionen für MetaTrader 4 - Seite 4

 
Gemäß den Einstellungen des MT4-Kurs-Servers können keine Operationen mehr als einmal alle 10 Sekunden durchgeführt werden. Der Server begrenzt die Häufigkeit der verschiedenen Anfragen, um mögliche DOS-Angriffe von Hackern zu verhindern. Diese Information wurde einmal in diesem Forum angesprochen.
Das ist nicht wahr.
Die Häufigkeit der Transaktionen wird nur durch die Reaktionsgeschwindigkeit des Brokers begrenzt =)
In MT gibt es keine Grenzen.

Die Entwickler haben dies im Forum mehr als einmal gesagt. Aber sie haben uns immer ehrlich gewarnt - ihr müsst euch selbst um euren Makler kümmern ;)


Daher wäre es fairer zu sagen, dass eine Pause zwar nicht obligatorisch (im technischen Sinne), aber zumindest wünschenswert ist (im Sinne der Gefahr einer Sperrung des Kontos).
 
Ich interessiere mich für ein einfaches Beispiel: Ich sende drei Anfragen, um drei Bestellungen aufzugeben, auch wenn das Intervall 20 Sekunden beträgt. Zu dieser Zeit ist der Markt langsam und der Abstand zwischen den Ticks beträgt bis zu zwei Minuten. Gehen die ersten beiden verloren oder werden alle drei während des ersten Ticks ausgeführt?
 
Ich interessiere mich für ein einfaches Beispiel: Ich sende drei Anfragen, um drei Bestellungen aufzugeben, auch wenn das Intervall 20 Sekunden beträgt. Zu dieser Zeit ist der Markt langsam und der Abstand zwischen den Ticks beträgt bis zu zwei Minuten. Gehen die ersten beiden verloren oder werden alle drei während des ersten Ticks ausgeführt?

Nichts wird verloren gehen. Sie müssen keine Verzögerung in das Programm einbauen. Sie starten die Funktion int NewPos(...) für den ersten Auftrag. Alle Verzögerungen sind darin bereits berücksichtigt. Wenn die Funktion 0 zurückgibt, ist alles in Ordnung - die Anfrage wurde ausgeführt. Wir gehen zur zweiten Ordnung über, und so weiter.
Wenn die Ausführung erfolgreich ist, wird die Funktion von sich aus eine Verzögerung von 10 Sekunden erzeugen, so dass wir keine Probleme mit häufigen Anfragen an den Server haben werden. Die kritische Wartezeit für die Antwort des MT4-Terminals ist ebenfalls in dieser Funktion implementiert. Erfolgt in dieser Zeit keine Antwort des Terminals, gibt die Funktion den Code einer Fehlersituation zurück. Dies wurde für die Diagnose von Situationen im Zusammenhang mit fehlenden Kursen, Kontodeaktivierung, Internetausfällen usw. getan.
Auf diese Weise ist das Ereignis bereits eingetreten, wenn Sie aus der Funktion zurückkehren. Viel Glück!
 
Die Befehle zur Bearbeitung von Aufträgen werden nur ausgeführt, wenn die Kurse für das Paar, für das der Expert Advisor installiert ist, eintreffen. Mit anderen Worten, die Schaltfläche "KAUFEN" in Ihrem Programm bedeutet nicht, dass die Order an den Server gesendet wird, sondern dass sie nur "auf der Festplatte" auf den Kurs des Paares wartet, auf dem der Expert Advisor installiert ist. Der EA sucht nach dem Dateibefehl, und wenn er ihn findet, sendet er einen Auftrag an den Server, und zwar bei jedem Tick. Das Ergebnis der Auftragserteilung bzw. -stornierung kann erst mit dem Eintreffen des nächsten Kurses eintreffen. Dies erlaubt es uns nicht, eine klare Logik für einige TS zu organisieren. Ich hoffe, dass Sie das verstehen.


Die Logik von TS hat damit nichts zu tun. Die Frage bezieht sich nur auf Verzögerungen bei der Auftragsausführung. Aber, wie ich bereits schrieb, ist dieses Problem weit hergeholt: Die Variabilität der Kurse wird durch die eingehenden Ticks mit neuen Preisen bestimmt. Während des aktiven Handels werden bis zu 200 Ticks pro Minute empfangen. Daher kann es in diesem Fall keine Verzögerung geben. Wenn Sie eine Position in der Zeit des schleppenden Handels eröffnen, sind die Preisänderungen fast nicht vorhanden, so dass die Erwartung auch keinen großen Einfluss auf das Kursniveau hat.
Außerdem können wir hier nicht über den "BUY"-Knopf sprechen, da es sich um mechanische Handelssysteme handelt, die ihre eigenen Entscheidungen ohne Knöpfe treffen. Viel Glück!
 
Gemäß den Einstellungen des MT4-Kurs-Servers können Sie nicht mehr als einmal alle 10 Sekunden Transaktionen durchführen.

Dies war auch in MetaTrader 3 der Fall, aber MT4 hat diese Einschränkung nicht mehr.
Trotzdem muss man maßvoll vorgehen und nicht zu viele Operationen hintereinander machen.
 
Eigentlich war das in MetaTrader 3 so, aber MT4 hat diese Einschränkung nicht mehr. <br/ translate="no"> Trotzdem muss man aufpassen, dass man nicht zu viele Operationen hintereinander durchführt.

Ja, Sie haben natürlich Recht. Es wäre besser, gleich eine Verzögerung vorzusehen, was in der entwickelten Bibliothek geschehen ist, da der Server sonst bei zu häufigen Anfragen die Adresse des Nutzers blockieren kann, was entsprechende Folgen für den Handel hat. Viel Glück!
 
ACHTUNG!
Die neue Version der MFOREX-Bibliothek 2.05 für die Nutzung von MetaTrader 4 API-Funktionen wurde veröffentlicht.
Seine Vorteile sind:
1. Während der Arbeit der Bibliothek werden keine temporären Dateien gebildet, der Datentransport erfolgt über gemeinsame Speicherbereiche. Eine solche Lösung beschleunigt den Zugang zu Informationen erheblich und erhöht die Zuverlässigkeit der Bibliothek;
2. Darüber hinaus sind spezielle Funktionen für die Terminaldiagnose implementiert, die den Zeitpunkt des letzten Tickens und den eindeutigen Computercode für den Registrierungsprozess zurückgeben;
3. Die Funktion zur Diagnose von Fehler- und Notsituationen gibt den Code der Situation zurück und speichert die Beschreibung in einem speziellen Protokoll in russischer Sprache.
4. Der Preis der Bibliothek ist erheblich gesenkt worden. Registrierte Nutzer der alten Version erhalten Updates kostenlos.
Lesen Sie alle Einzelheiten auf unserer Website http://www.min2006.ru
 


Leider ist der vorgeschlagene EA:
- liefert keine Kurshistorie;
- erfasst keine Fehler und Notfälle;
- enthält keine Handelshistorie und keine Liste der offenen Positionen;
- erlaubt es nicht, die letzten Notierungen (in Form von Ticks) zu erhalten.

In der Bibliothek, die ich vorschlage, sind alle fehlenden Funktionen implementiert. Außerdem wird der Informationsaustausch über gemeinsam genutzte Speicherbereiche durchgeführt, ohne dass temporäre Dateien erzeugt werden. Lesen Sie alle Details auf http://www.min2006.ru
Viel Glück!
 
Übrigens entspricht das Angebot von Min jetzt eher dem, was man kaufen kann, als früher.
Rein imho :)