Diskussion über die MQL4-Dokumentation - Seite 14

 
Mathemat:
Wie auch immer, hoffentlich ist die Notwendigkeit eines C-Compilers verschwunden. Im Grunde kann man sehr kompakte DOS-Distributionen im Web finden, die höchstens ein Dutzend Meg wiegen.

Ich danke Ihnen! Nach zwei Tagen mit C-Tutorials habe ich endlich etwas in den Expert Advisors-Beispielen verstanden. Ich werde versuchen, MQL4 sofort zu verwenden. Ich hoffe, dass ich bald weitere Artikel von Rosha bekomme.
 
Dmitrich:
Mathemat:
Nun, hoffentlich ist die Notwendigkeit eines C-Compilers nicht mehr gegeben. Im Prinzip können Sie sehr kompakte DOS-Distributionen im Internet finden, die höchstens ein Dutzend Megabyte wiegen.

Danke! Nach zwei Tagen mit C-Tutorials habe ich endlich etwas in den Expert Advisors-Beispielen verstanden. Ich werde versuchen, MQL4 sofort zu benutzen und hoffe, dass die Artikel auch bald zur Verfügung stehen werden.

Sie sind jetzt verfügbar, allerdings über einen temporären Link.
 
Rosh:
Dmitrich:
Mathemat:
Nun gut, hoffentlich ist die Notwendigkeit eines C-Compilers nicht mehr gegeben. Im Grunde kann man sehr kompakte DOS-Distributionen im Internet finden, die höchstens ein Dutzend Megabyte wiegen.

Ich danke Ihnen! Nach zwei Tagen mit C-Tutorials habe ich begonnen, etwas in Expert Advisors Beispielen zu verstehen. Ich werde versuchen, MQL4 sofort zu verwenden. Ich hoffe, dass bald mehr Rosha-Artikel verfügbar sein werden.

Sie sind jetzt verfügbar, allerdings über einen temporären Link.

Lieber Rosh, ich danke dir für deine Artikel! Ich bin schon vorsichtig, so etwas im Forum zu schreiben, um niemanden wieder zu beleidigen, aber ich habe Ihre Artikel so aufmerksam gelesen, dass ich einen Tippfehler entdeckt habe. Artikel 3, Zeile 2, die Formulierung "jeder von diesen" anstelle von "jeder von diesen". Die Buchstaben "x" und "z" liegen auf der Tastatur nebeneinander, und ich selbst mache manchmal Fehler und "fange" solche Fehler dann in Dokumenten auf. Ich habe Ihren Tippfehler aus Gewohnheit gesehen.

;)
 
Danke, ich werde es reparieren, wenn ich kann (es ist schon eine Weile her :) ).
 
Nein, das kann ich nicht. Offenbar hat sich auch die Adresse des Publikationssystems geändert.
 
Das Lehrbuch scheint in Ordnung zu sein. Aber die Dokumentation gibt uns keine direkte Antwort.
Und ich habe zufällig beschlossen, mir die Liste der Parameter der FunktionOrderSend anzusehen und bin sofort darauf gestoßen.

In der Erklärung der Funktion heißt es: "Siekönnen keinen geschätzten oder nicht normalisierten Preis verwenden".
Sie ist vollkommen klar und präzise.

Einige Zeilen weiter unten finden Sie ein Beispiel mit nicht-normalisierten Preisen und Abrechnungspreisen:

ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point, "Meine Order #"+Zähler,16384,0,Green);
if(ticket<0)
{
Print("OrderSend failed with error #",GetLastError());
return(0);
}
Renat, ist das nicht ein echter Fehler?
Und sind solche Dinge mit dem Begriff der "Qualitätsdokumentation" vereinbar?

Deshalb bitten interessierte Nutzer Sie, die Dokumentation zu verbessern. Sie versuchen nicht, Sie in unangemessener Weise zu kritisieren, sie verlangen nichts Unmögliches oder Unangemessenes, und sie versuchen sicherlich nicht, jemanden oder das Unternehmen als Ganzes zu beleidigen.
 
In diesem Beispiel wird davon ausgegangen, dass die Geld- und Briefkurse vom Handelsserver empfangen werden, was bedeutet, dass die Standardpreise auf Nachkommastellen normalisiert sind. Es hat sich nämlich herausgestellt, dass, bevor die Möglichkeit bestand, die Deep-Minute-Historie aus dem History Center herunterzuladen, viele Benutzer eine solche Historie selbst aus verschiedenen Quellen erstellt hatten und das erhaltene Ergebnis beim Testen einen Fehler in Bezug auf den nicht normalisierten Preis ergab (die Aufträge konnten einfach nicht geöffnet werden). Deshalb erschien dieser Satz:


Ein geschätzter oder nicht normalisierter Preis kann nicht verwendet werden. Wenn der angeforderte Eröffnungspreis nicht im Preisstrom enthalten war oder der angeforderte Preis nicht nach der Anzahl der Nachkommastellen normalisiert ist, wird der Fehler 129 (ERR_INVALID_PRICE) erzeugt.


Sie haben "vergessen", ihn vollständig zu zitieren. Und dieser Satz bleibt relevant, denn wenn Sie einen berechneten Preis genommen haben (den Wert eines muving oder eines anderen Indikators), dann wird sich der Server nicht die Mühe machen, seine "Smartness" zu zeigen (d.h. ihn in die richtige Richtung zu runden), und wird die Bestellung einfach erneut senden.
 

Ich habe nichts vergessen, Rosh. Der Vorschlag, den Sie meinem Zitat hinzugefügt haben, ändert nichts am Inhalt oder an der Form. Ich habe mehr als einmal im MQ-Forum (ich erinnere mich nicht mehr an dieses oder ein paralleles) Leute gesehen, die fragen, warum Aufträge nicht ausgeführt werden, weil ich den Bid- oder Ask-Kurs verwende, also ist der Kurs relevant, warum also die Ablehnung? Die Lösung für diese Frage war einfach - wir sollten den Preis normalisieren und dies auch für Bid und Ask tun.

Vielleicht hat sich dies in den letzten Builds geändert, aber ich habe nirgendwo einen Hinweis darauf gesehen.

Außerdem sind drei Preise in den OrderSend()-Parametern enthalten. Im obigen Beispiel werden zwei der drei Ausdrücke berechnet. Der berechnete Ausdruck enthält sowohl ganzzahlige als auch doppelte Operanden. Die Preisnormalisierung hat sich als Mittel zur Lösung des Darstellungsproblems bei der Umwandlung von ganzen Zahlen in Doppelzahlen erwiesen. Der Leser dieser Dokumentation, der sicherlich nicht viel Erfahrung mit MQL4 hat, wird also nicht mit Sicherheit sagen können, ob das Ergebnis der Berechnungen normalisiert wird oder nicht. Dieses Beispiel wird also mehr Fragen aufwerfen als Antworten geben.

Und selbst wenn die Normalisierung in Ordnung ist, gibt es immer noch einen Ausdruck für den Preis.

Daher meine Fragen an Sie, Rosh, als jemand, der Artikel über MQL4 für Anfänger schreibt:
Glauben Sie wirklich, dass dieses Beispiel in Ordnung ist und das veranschaulicht, was es veranschaulichen soll?
Glauben Sie wirklich, dass dieses Beispiel einem Anfänger hilft zu verstehen, wie OrderSend() zu verwenden ist und ihn nicht verwirrt?

 
Yurixx:

Glauben Sie wirklich, dass dieses Beispiel einem Anfänger hilft zu verstehen, wie OrderSend() zu verwenden ist, anstatt ihn zu verwirren?

Ich persönlich glaube, dass ein Anfänger nicht gleich ein Idiot ist. Wenn du es herausgefunden hast, wenn es für mich einfach war, warum kann es dann nicht jemand anderes herausfinden? Warum wird dieser abstrakte Newcomer immer mit einem Dummkopf in Verbindung gebracht?
 
Jurix, ich kann sehen, dass Sie nur Kritik üben.