Fehler, Irrtümer, Fragen - Seite 720

 

Hallo zusammen!

Ich bin auf diesen Fehler gestoßen (oder vielleicht habe ich etwas falsch verstanden)

Wenn man sich die Historie für einen Monat ansieht, zeigt sie angemessene Daten, d.h. verdient 740, getauscht -250

Wenn ich mir den gesamten Zeitraum anschaue, sind die 500 verdienten Punkte und der Tausch fast identisch

Deshalb verstehe ich auch nicht, wie es sein kann, dass der Verdienst für den gesamten Zeitraum geringer ist als die monatliche Summe.

Bei Bedarf kann ich Berichte über den Verlauf beifügen

 
tol64:

Wenn Sie also einen 5. schwebenden Buy-Stop-Auftrag mit einer offenen Position von 3 Lots und 4 bestehenden Buy-Stop-Aufträgen von je 3 Lots (mit einem Limit von 15 Lots) platzieren, sollten Sie keinen Erfolg haben.

Im Allgemeinen ja - in Bezug auf das, was in der Hilfe beschrieben ist.

Aber logischerweise - nicht unbedingt. Auf den Börsenmärkten gibt es nur Limit-Orders im Stapel, während Stop-Orders auf dem Server des Brokers gespeichert werden und zwei Parameter haben - den Aktivierungspreis (Price" in MT) und den Preis der platzierten Limit-Order (der schlechteste Preis, zu dem der Handel ausgeführt werden kann). Dies ist ähnlich wie das BuyStopLimit und SellStopLimit in MT5, nur dass das Limit gleich dem Stoppkurs oder höher (für BuyStopLimit) oder niedriger (für SellStopLimit) sein kann. An den Aktienmärkten führt das Setzen eines höheren Limits (für Käufe) zu einem Abschluss, während dies bei MT nicht möglich ist. So haben an den Börsen, insbesondere an den unterentwickelten Märkten (z.B. an der ukrainischen Börse), die Stops oft (und besonders am Tag des Verfalls eines vierteljährlichen Index-Futures zwischen 16:30 und 16:35 Uhr) keine Zeit zu arbeiten, und die Tasse ist mit Limit-Orders gefüllt, die unter normalen Bedingungen sofort zur Ausführung führen würden.

Also - Limit auf dem Markt - feste Verpflichtung zum Kauf / Verkauf (wenn Geld plötzlich knapp werden, kann der Makler den Auftrag zu entfernen, aber früher als es zur Ausführung kommen wird), während STOP - einfach eine Aufzeichnung auf dem Server Broker, so dass im Moment des Erreichens der Aktivierung Preis der Makler kann freie Mittel zu schätzen und zu entscheiden - aussetzen Limit oder nicht. Deshalb sage ich ja, dass man bei Grenzwerten die Grenzwerte einhalten muss, bei Stopps aber theoretisch nicht.

 
Yedelkin:

Zu DoubleToString gekommen ? :)

Sehen Sie sich NormalizeDouble an:

Sie müssen bedenken, dass eine normalisierte Zahl bei der Ausgabe in das Journal mit Print() mehr Dezimalstellen enthalten kann, als Sie erwarten würden.

   double pi=M_PI;
   Print("pi=",DoubleToString(pi,16));
      
   double pi_3=NormalizeDouble(M_PI,3);
   Print("NormalizeDouble(pi,3) = ",DoubleToString(pi_3,16))
   ;
   double pi_8=NormalizeDouble(M_PI,8);
   Print("NormalizeDouble(pi,8) = ",DoubleToString(pi_8,16));
   
   double pi_0=NormalizeDouble(M_PI,0);
   Print("NormalizeDouble(pi,0) = ",DoubleToString(pi_0,16));
/*
   Результат:
   pi= 3.1415926535897931
   NormalizeDouble(pi,3)= 3.1419999999999999                          <-----------
   NormalizeDouble(pi,8)= 3.1415926499999998                          <-----------
   NormalizeDouble(pi,0)= 3.0000000000000000
*/

Nichts Verwirrendes?

 
victorg:

Ah, schauen Sie sich NormalizeDouble an:

Irgendetwas verwirrend?

Nein, nichts Verwirrendes. In Ihrem Beispiel

void OnStart()
  {
  double a=2000000.0/3.0;
  Print(DoubleToString(a,30));
  }
Es gab keinerlei Hinweis auf die Verwendung der Funktion NormalizeDouble() und normalisierter Zahlen. Dementsprechend ist meine Bemerkung"Have you got to DoubleToString?:)" wurde von einem Zitat der FunktionDoubleToString() begleitet, ohne dass es auch nur den Hauch einer Verlegenheit gab.Und niemand hat bisher die Relevanz dieses Zitats widerlegt.
 
Yedelkin:

Nein, nichts ist verwirrend. In Ihrem Beispiel.

Es gab nie einen Hinweis auf die Verwendung der Funktion NormalizeDouble() und normalisierter Zahlen. Dementsprechend ist meine Bemerkung"Have you got to DoubleToString?:)" wurde von einem Zitat der FunktionDoubleToString() begleitet, ohne dass es auch nur den Hauch einer Verlegenheit gab.Und niemand hat bisher die Relevanz dieses Zitats widerlegt.

Eigentlich beziehe ich mich nicht auf Ihren Kommentar, sondern auf das Andocken an NormalizeDouble().

 
notused:

Im Allgemeinen ja - in Bezug auf das, was in der Hilfe beschrieben ist.

Aber logischerweise - nicht unbedingt. Auf den Börsenmärkten gibt es nur Limit-Orders im Stapel, während Stop-Orders auf dem Server des Brokers gespeichert werden und zwei Parameter haben - den Aktivierungspreis ("Price" in MT) und den Preis der Limit-Order, die platziert wird (der schlechteste Preis, zu dem der Handel ausgeführt werden kann). Dies ist ähnlich wie das BuyStopLimit und SellStopLimit in MT5, nur dass das Limit gleich dem Stoppkurs oder höher (für BuyStopLimit) oder niedriger (für SellStopLimit) sein kann. An den Aktienmärkten führt das Setzen eines höheren Limits (für Käufe) zu einem Abschluss, während dies bei MT nicht möglich ist. So haben an den Börsenmärkten, insbesondere an den unterentwickelten (z.B. an der ukrainischen Börse), oft (und besonders am Tag des Verfalls eines vierteljährlichen Index-Futures zwischen 16:30-16:35) die Stopps keine Zeit zu arbeiten, und die Tasse ist mit Limit-Ordern gefüllt, die unter normalen Bedingungen sofort zur Ausführung führen würden.

Also - Limit auf dem Markt - feste Verpflichtung zum Kauf / Verkauf (wenn Geld plötzlich knapp werden, kann der Makler den Auftrag zurückziehen, aber früher als es zur Ausführung kommen wird), während STOP - einfach eine Aufzeichnung auf dem Server Broker, so dass im Moment des Erreichens der Aktivierung Preis der Makler kann freie Mittel zu schätzen und zu entscheiden - aussetzen Limit oder nicht. Deshalb sage ich, dass bei Grenzwerten die Grenzen eingehalten werden müssen, während sie bei Anschlägen theoretisch nicht eingehalten werden müssen.

Vielen Dank für die ausführliche Erklärung.

Valery, haben Sie versucht, eine Auto-Strategie in MT5 Strategy Tumbler zu implementieren? Ich habe es vor etwa einem Monat versucht und es hat nicht funktioniert, niemand hat im Forum geantwortet. Ich weiß nicht, ob es sich um einen Fehler oder ein Missverständnis meinerseits handelt. Bringen Sie etwas Licht ins Dunkel. :)

 

Guten Tag!

Bitte beraten Sie, ich habe ein iCustom Indikator in einem normalen Programm Körper, es funktioniert gut und bekommt den Griff.

Wenn ich ihn in der EX5-Bibliothek platziere, erhalte ich den Indikator handle=-1 und das Hauptprogramm kann den Indikator nicht aufrufen:

"Laden von DZMACD EURGBP,M15 fehlgeschlagen"
"Benutzerdefinierter Indikator 'DZMACD' kann nicht geladen werden [4002]"

Gleichzeitig arbeiten Standardindikatoren wie iMA oder iMACD ganz normal in der gleichen ex5-Bibliothek, sie erhalten den Griff.

Ich weiß nicht, was ich falsch mache oder ob es ein Fehler ist?

Документация по MQL5: Технические индикаторы / iCustom
Документация по MQL5: Технические индикаторы / iCustom
  • www.mql5.com
Технические индикаторы / iCustom - Документация по MQL5
 
In der StrukturMqlDateTime

intday;// Tag

Ist damit der Tag des Monats gemeint?
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура даты - Документация по MQL5
 
victorg:

Eigentlich beziehe ich mich nicht auf Ihren Kommentar, sondern auf das Dokument NormalizeDouble().

Der Wortlaut der Nachricht lautete wie folgt:

victorg:

Yedelkin:

Sind Sie zu DoubleToString gekommen ? :)

Ah, schauen Sie sich NormalizeDouble an:

Ist Ihnen denn gar nichts peinlich?

Das heißt, es gab ein direktes Zitat aus "meinem Kommentar" mit dem Vorschlag "schauen Sie dort oben etwas anderes nach" und der Frage "ist das verwirrend?".

Wenn Sie nur neue Forschungsergebnisse in der Form "...über ein Dock von NormalizeDouble()" präsentieren wollten, würden Sie es so schreiben, ohne unnötige Informationen zu zitieren. Ich denke schon :/

Da Ihr Beitrag jedoch einen benannten Link und genau zu meiner Replik verwendet - musste ich klarstellen, dass NormalizeDouble() nichts mit meiner Replik oder Ihrem ursprünglichen Beitrag zu tun hatte, den ich mir erlaubt habe zu kommentieren.

 
Fia:

Guten Tag!

Bitte beraten, ich habe iCustom Indikator in der üblichen Körper des Programms funktioniert gut, es wird handel, alles funktioniert.

Wenn ich ihn in der EX5-Bibliothek platziere, erhalte ich Handel= -1 und das Hauptprogramm kann den Indikator nicht aufrufen:

"Laden von DZMACD EURGBP,M15 fehlgeschlagen"
"Benutzerdefinierter Indikator 'DZMACD' kann nicht geladen werden [4002]"

Gleichzeitig funktionieren Standard-Indikatoren wie iMA oder iMACD in der gleichen ex5-Bibliothek einwandfrei, sie erhalten den Griff.

Ich kann nicht verstehen, was ich falsch mache, oder ist es ein Fehler?

Sind die benutzerdefinierten Indikatoreinstellungen in der Bibliothek in Ordnung?

ERR_WRONG_INTERNAL_PARAMETER

4002

Fehlerhafter Parameter in internem Client-Terminal-Funktionsaufruf