Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 24
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
Was wird sich dadurch ändern?
Ein einfacher kurzfristiger Netzwerkausfall macht die Handelslogik, die NUR auf der Beobachtung von Handelsereignissen basiert, zunichte.
Daher gehen die OnTradeTransaction-Adepten in ihrer Argumentation ein wenig zu weit.
Dies ist der Mechanismus der Handelslogik, der auf jeder Plattform treu funktioniert
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Gutes Beispiel für die Arbeit mit Limit-Orders in einem EA
fxsaber, 2017.01.02 23:12
Ich handele meistens nur mit schwebenden Aufträgen. Es findet überhaupt keine Verarbeitung statt. OrderSend gab -1 zurück (MT4 oder MT5+MT4Orders) - es hat nicht funktioniert und das ist auch gut so, denn der nächste Schritt ist immer noch die komplette Betrachtung der Handelsumgebung. Und wenn kein Auftrag vorliegt, aber einer vorliegen sollte, synchronisieren wir ihn mit dem Zustand, in dem er sich befinden sollte - der entsprechende OrderSend wird gesendet.
Bei diesem Ansatz werden alle Nuancen von Regressionen, Teilausführungen usw. berücksichtigt. Und die Umsetzung ist sehr einfach und effizient. Sie hat noch nie versagt.
Ich habe asynchrone Methoden nicht ausprobiert, und hier ist es nicht viel schwieriger, aber ich bin mir nicht sicher.
Ein einfacher kurzfristiger Netzwerkausfall macht die Handelslogik, die NUR auf der Beobachtung von Handelsereignissen basiert, zunichte.
Daher sind die OnTradeTransaction-Adepten in ihrer Argumentation ein wenig überzogen.
Dies ist der Mechanismus der Handelslogik, der auf jeder Plattform treu funktioniert
Ja, der einzige zuverlässige Weg ist die Überprüfung des Status des Handelskontos. Alle OnTrade*-Ereignisse bieten keinen zuverlässigen Mechanismus für die Verwaltung von Handelsaufträgen.
Was die asynchronen Operationen anbelangt, so besteht ihr einziger Vorteil darin, dass Sie Handelsaufträge nacheinander senden können, ohne auf die Ergebnisse früherer Aufträge zu warten. Aber auch die Kontrolle ihrer Ausführung kann sich nicht auf Ereignisse stützen, in dieser Hinsicht gibt es keinen Unterschied zur Kontrolle der Ergebnisse synchroner Aufträge.
Der Stand des Handelskontos ist der, den wir zum Zeitpunkt der Anfrage haben (wir stellen die Anfrage selbst), wenn es Probleme mit dem Netzwerk gibt - keine große Sache, wir können Anfragen stellen, bis sich das Netzwerk erholt. Sich auf Ereignisse zu verlassen, macht uns dagegen völlig abhängig von äußeren Faktoren.
fxsaber:
Diese Situation bei den Handelsereignissen entspricht voll und ganz dem Thema dieses Zweigs.
Ich widerspreche dem keineswegs, ich sage nur, dass nicht viele Menschen solche Feinheiten erkennen müssen.
Ein einfacher kurzfristiger Netzwerkausfall macht die Handelslogik, die NUR auf der Beobachtung von Handelsereignissen basiert, zunichte.
Deshalb gehen die OnTradeTransaction-Adepten in ihrer Argumentation ein wenig zu weit.
Dies ist der Mechanismus der Handelslogik, der auf jeder Plattform treu funktioniert
Und ich werde niemanden davon abhalten. Zumal ich es für sehr notwendig halte, die Rückkehr vom Server zu kontrollieren. Nur gibt es unterschiedliche Ansätze. Was Sie vorschlagen, ist richtig, aber kein Allheilmittel.
Vielleicht ist es mein Lebensprinzip: "Ich kann es schlechter machen, aber auf meine Weise. Wenn irgendetwas passiert, gibt es niemanden, der dafür verantwortlich ist.
Ich habe mich daran gewöhnt, die Funktion MarketInfo(_Symbol, MODE_TICKVALUE) für den Punktwert eines Symbols in 4 zu verwenden. Ich habe noch keine Probleme festgestellt.
Es ist nicht so einheitlich bei verschiedenen Brokern von MT5. Ich habe ein kleines Skript für EURUSD und USDJPY auf zwei verschiedenen Konten ausgeführt. Beachten Sie den Punktwert und die Vertragsgröße.
Dies ist ein Demokonto von MQ.
Dies ist einDemokonto von Just2Trade:
Hat jemand eine universelle Funktion, die den Punktwert gleich aussehen lässt?
Ich verstehe, dass die Größe eines Ticks und die Kontraktgröße berücksichtigt werden sollten, aber vielleicht auch etwas anderes?
D.h. wenn es sich um EURUSD handelt und die Einlage auf Dollar lautet - dann 1 fünfstelliger Punkt, damit es 1 Dol entspricht.
Und in welchen Fällen sollten wir SYMBOL_TRADE_TICK_VALUE_PROFIT oder SYMBOL_TRADE_TICK_VALUE_LOSS verwenden?Ich habe mich daran gewöhnt, die Funktion MarketInfo(_Symbol, MODE_TICKVALUE) für den Punktwert eines Symbols in 4 zu verwenden. Ich habe noch keine Probleme festgestellt.
Es ist nicht so einheitlich bei verschiedenen Brokern von MT5. Ich habe ein kleines Skript für EURUSD und USDJPY auf zwei verschiedenen Konten ausgeführt. Beachten Sie den Punktwert und die Vertragsgröße.
Dies ist ein Demokonto von MQ.
Dies ist einDemokonto von Just2Trade:
Hat jemand eine universelle Funktion, die den Punktwert gleich aussehen lässt?
Ich verstehe, dass die Größe eines Ticks und die Kontraktgröße berücksichtigt werden sollten, aber vielleicht auch etwas anderes?
D.h. wenn es sich um EURUSD handelt und die Einlage auf Dollar lautet - dann 1 fünfstelliger Pip, damit es 1 Dol entspricht.
Wann ist es richtig, SYMBOL_TRADE_TICK_VALUE_PROFIT oder SYMBOL_TRADE_TICK_VALUE_LOSS zu verwenden?Wenn das "nikonor's office" eine Vertragsgröße wie die normalen hat, also hunderttausend, dann wird auch der Punktwert wie bei den normalen sein. In der Zwischenzeit können Sie das, was Sie haben, mit 100.000 multiplizieren und bekommen, was Sie wollen.
Ich habe auch einmal damit zu kämpfen gehabt. Bei MetaQuotes-Demo ist die Kontraktgröße eine, bei Just2Trade ist sie eine andere. Für Devisen ist es dasselbe, aber für Aktien und andere ist es anders. - für Devisen, eine für Aktien usw. Das ist unterschiedlich. Was in der Referenz steht, wie man alles berechnet, geht nicht auf, verdammt noch mal. Und der Kunde wartet schon... Wir haben uns also darauf geeinigt, dass er sie nicht automatisch berechnet, sondern einfach mit 100 multipliziert. Und nur auf seinem Just2Trade. Ich verstehe diesen Trick immer noch nicht... :((
Was könnte nicht klar sein?
Größe des Standardkontrakts = 1 Gekaufte 1000 Lots erhielten 0,00001*1000/1 = 0,01 für 1 Pip
Eine andere Option, Kontraktgröße = 100000 kaufte 0,01 Lot (100000*0,01=1000) bekam 1 Punkt 1*1000/100000 = 0,01
Dies ist für 5/3 Ziffern.
ps; Und bei Insta betrug die Größe des Standardvertrags 10000.Was könnte nicht klar sein?
Standardkontraktgröße = 1, 1000 Lot gekauft, 0,00001*1000/1 = 0,01 für 1 Pip erhalten
Eine andere Option, Kontraktgröße = 100000 kaufte 0,01 Lot (100000*0,01=1000) bekam 1 Punkt 1*1000/100000 = 0,01
Dies ist für 5/3 Ziffern.
ps; Und in Insta war die Standardvertragsgröße 10000.Verstehe, ich bin es einfach nicht gewohnt, 3000 oder 5000 Lose zu verwenden. Sie werden sich daran gewöhnen müssen.
Wenn Sie es nicht gewohnt sind, können Sie es wie folgt schreiben
Und in der Funktion OrderSend() senden Sie eine Vertragsvariable unabhängig von der Laune des Händlers.