Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 434

 
Artyom Trishkin:
Die Farbe des Kommentars kann nicht geändert werden. Wenn Sie eine Farbe wünschen, können Sie sie über Objekte ändern.
Warum habe ich 0? Ich bin an Fehlern interessiert, nicht an Beispielen. Ich werde das Beispiel kopieren und einfügen, aber der Begriff des Fehlers bleibt unbekannt.
 
Leanid Aladzyeu:
Warum erhalte ich 0? Ich interessiere mich für den Fehler, nicht für die Beispiele. Ich werde das Beispiel kopieren und einfügen, aber der Begriff des Fehlers bleibt unbekannt.

Versuchen Sie, Point zu entfernen - was wird er sagen?

Ich denke, Point() ist richtig.

 
new-rena:

Versuchen Sie, Point zu entfernen - was wird er sagen?

meiner Meinung nach der richtige Punkt()

double p1=(NormalizeDouble(iHigh(Symbol(),PERIOD_MN1,1),Digits)-NormalizeDouble(iLow(Symbol(),PERIOD_MN1,1),Digits)); Print("Bar size 1 = ", p1);

0,0 insgesamt. ohne Punkt und mit Punkt mit Klammern. Ich habe solche Arrays ausprobiert. alle für 0,0.

int  imax5=iHighest(Symbol(),PERIOD_MN1,MODE_HIGH,3,1);Print("max1=====", imax5);
    double   max5= iHigh(Symbol(),PERIOD_MN1,imax5);Print("max2=====", max5);
    max5=NormalizeDouble(max5,Digits);Print("max3=====", max5);
 
Leanid Aladzyeu:

double p1=(NormalizeDouble(iHigh(Symbol(),PERIOD_MN1,1),Digits)-NormalizeDouble(iLow(Symbol(),PERIOD_MN1,1),Digits)); Print("Bar size 1 = ", p1);

0,0 insgesamt. ohne Punkt und mit Punkt mit Klammern. Ich habe solche Arrays ausprobiert. alle für 0,0.

Versuchen Sie es auf diese Weise

 double p1=(NormalizeDouble(iHigh(Symbol(),PERIOD_MN1,1),Digits)-NormalizeDouble(iLow(Symbol(),PERIOD_MN1,1),Digits)); 
Print("Величина бара 1 = ", DoubleToString(p1, Digits));

Leanid Aladzyeu:
Warum erhalte ich 0? Ich bin an Fehlern interessiert, nicht an Beispielen. Ich werde das Beispiel kopieren und einfügen, aber das Fehlerkonzept bleibt unbekannt.
Denn Print() und Alert() geben doppelte Zahlen mit bis zu 4 Ziffern aus, während das Ergebnis eine 5-stellige Zahl ist. Um die fünfte Stelle zu sehen, müssen Sie die Zahl in eine Zeichenkette umwandeln.
 
Alexey Viktorov:

Versuchen Sie dies

 double p1=(NormalizeDouble(iHigh(Symbol(),PERIOD_MN1,1),Digits)-NormalizeDouble(iLow(Symbol(),PERIOD_MN1,1),Digits)); 
Print("Величина бара 1 = ", DoubleToString(p1, Digits));
Мне говорили что моя версия была с багом на массивы iclose[] , получается что и на функцию багом попало  или в терминале не хватает истории  тоже врядли история с начала загружена ,

 
Leanid Aladzyeu:

Ich habe nur gesagt, dass es einen Build mit diesem Fehler gab, ich habe darüber in diesem Forum gelesen, aber nicht gesagt, dass Sie möglicherweise diesen Build haben.

Bezüglich der Nullen habe ich meinen vorherigen Beitrag mit einer leichten Verzögerung korrigiert und ergänzt.


Wenn Sie auch in der fünften Ziffer eine Null erhalten, setzen Sie Print() sowohl für das Minus als auch für den Subtrahierer. Vielleicht sind sie identisch? Obwohl sie das nicht sein sollten. Aber es sind die Drucker, die nach der Ursache suchen sollten.

 
Alexey Viktorov:

Ich habe nur gesagt, dass es einen Build mit diesem Fehler gab, ich habe darüber in diesem Forum gelesen, aber nicht gesagt, dass Sie möglicherweise diesen Build haben.

Die Nullen habe ich korrigiert und meinem vorherigen Beitrag etwas spät hinzugefügt.


Wenn Sie auch in der fünften Ziffer eine Null erhalten, setzen Sie Print() sowohl für den Subtrahierer als auch für den Subtrahierer. Vielleicht sind sie identisch? Obwohl sie es nicht sein sollten. Aber Sie müssen die Ursache bei den Druckern suchen.

Das ist grausam.)) Wie kann man das beheben?

4074
 ERR_NO_MEMORY_FOR_HISTORY
 Не хватает памяти для исторических данных
 
 
Alexey Viktorov:

Weil es falsch geschrieben ist.

Sind Sie sicher? Vor dem Schreiben habe ich diese Konstruktion mit AAA = true und AAA = false ausgeführt - alles funktioniert. Bei true wird (string)c zurückgegeben, bei false wird "offline" zurückgegeben. Negative Werte der Anzahl der Aufträge können nicht sein, so dass es genau passt.
 
Leanid Aladzyeu:
Warum erhalte ich 0? Ich interessiere mich für den Fehler, nicht für die Beispiele. Ich werde das Beispiel kopieren und einfügen, aber der Fehlerbegriff bleibt unbekannt.

Es liegt kein Fehler vor. Das Drehbuch

#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   double p1=(NormalizeDouble(iHigh(Symbol(),PERIOD_MN1,1),Digits)-NormalizeDouble(iLow(Symbol(),PERIOD_MN1,1),Digits))/Point; 
   Print("Величина бара 1 = ", p1);
  }
//+------------------------------------------------------------------+

Es wird im Protokoll angezeigt.

2015.09.05 05:00:09.558 Script SizeCandle USDJPY,Daily: removed
2015.09.05 05:00:09.557 SizeCandle USDJPY,Daily: uninit reason 0
2015.09.05 05:00:09.557 SizeCandle USDJPY,Daily: Величина бара 1 = 9122.0
2015.09.05 05:00:09.556 SizeCandle USDJPY,Daily: initialized
2015.09.05 05:00:09.541 Script С форума\SizeCandle USDJPY,Daily: loaded successfully

Ich verstehe nur immer noch nicht, warum man double braucht, um einen ganzzahligen Wert auszugeben (weil die Anzahl der Punkte eine ganze Zahl ist).

 

Kenner, Hilfe.

Ich brauche eine Schriftart, um Wellenmarkierungen in MT-4 zu schreiben, d.h. Buchstaben und Zahlen in Kreisen.