Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1021

 
kashi_ann:

Guten Abend,


Irgendwo bin ich auf einen Artikel gestoßen, in dem der gesamte Code für einen "Test"-EA geschrieben/dechiffriert wurde. Ich habe vergessen, sie zu speichern und kann sie nicht mehr finden. Vielleicht weiß jemand Bescheid, hat diesen Artikel gesehen?

Praktisch jeder Artikel enthält einen Test-EA-Code. Wie kann jemand wissen, wonach Sie fragen?

 
ToNy_Nazarov:

Guten Tag!
Ist es möglich, dass ein EA für MT4 mit Preisen mit 5 Dezimalstellen arbeitet? Wenn ja, wie soll ich das tun? Ich arbeite über Forex Club.

Die Funktion Digits gibt "5" zurück, aber der Geldkurs gibt "1.1094" statt "1.10943" zurück, d.h. ohne das fünfte Zeichen.
Wie kann ich den vollen Preis mit der 5. Nachkommastelle anzeigen lassen?

Außerdem gibt die Funktion Punkt einen Wert von 0 statt 0,00001 aus. Warum passiert das und wie erhalte ich den richtigen Wert?

Natürlich können Sie das. Standardmäßig.

Kein Code, keine Antwort.

 
Wie kann ich eine einzelne Ziffer aus einer Zahl herausnehmen? Nehmen wir an, es gibt eine Zahl 1,2568. Wie nehme ich die letzte Ziffer "8"? Ich kann DoubleToStr() verwenden , um sie in eine Zeichenkette umzuwandeln, und dann StringSubstr() verwenden, um die letzte Zahl zu erhalten und sie in int zu konvertieren. Gibt es noch andere Möglichkeiten?
 
Yevhenii Levchenko:
Wie kann ich eine einzelne Ziffer aus einer Zahl herausnehmen? Nehmen wir an, es gibt eine Zahl 1,2568. Wie nehme ich die letzte Ziffer "8"? Ich kann DoubleToStr() verwenden , um sie in eine Zeichenkette umzuwandeln, und dann StringSubstr(), um die letzte Zahl zu erhalten und sie in int zu konvertieren. Gibt es noch andere Möglichkeiten?

Es gibt immer andere Möglichkeiten.

Wenn es sich um einen normalisierten Wert handelt, muss er multipliziert werden, in diesem Fall mit 10000, oder durch 0,0001 geteilt werden, um die ganze Zahl 12568 zu erhalten undden Rest der Division durch 10 zu nehmen.

12568%10=8

 
Alexey Viktorov:

Es gibt immer andere Möglichkeiten.

Wenn es sich um einen normalisierten Wert handelt, muss er multipliziert werden, in diesem Fall mit 10000, oder durch 0,0001 geteilt werden, um die ganze Zahl 12568 zu erhalten und den Rest der Division durch 10 zu nehmen.

12568%10=8

Tolle Option! Vielen Dank, Victor!
 
Yevhenii Levchenko:
Tolle Option! Vielen Dank, Victor!

Als ich jünger war, hieß ich Alexey. Aber ich mag Victor auch:)))

 
Artyom Trishkin:

Natürlich können Sie das. Standardmäßig.

Kein Code, keine Antwort.


//--------------------------------------------------------------------
int start()
{
Comment("Gebot = ", Gebot,
"\nAsk = ", Ask,
"\nPoint = ", _Point,
"\nDigits = ", Digits);
zurück(0);
}
//--------------------------------------------------------------------
Dateien:
 
Alexey Viktorov:

Als ich jünger war, hieß ich Alexey. Aber ich mag Victor auch :)))

Ups, da ist etwas schief gelaufen ))))

Tut mir leid, Alexej)))

 
ToNy_Nazarov:

//--------------------------------------------------------------------
int start()
{
Comment("Gebot = ", Gebot,
"\nAsk = ", Ask,
"\nPoint = ", _Point,
"\nDigits = ", Digits);
zurück(0);
}
//--------------------------------------------------------------------

Die Funktion DoubleToString() wird zum Ausdrucken von reellen Zahlen verwendet

Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
[in]  Формат точности. Если значение digits лежит в диапазоне от 0 до 16, то будет получено строковое представление числа с указанным количество знаков после запятой. Если значение digits лежит в диапазоне от -1 до -16, то...
 
Artyom Trishkin:

Die Funktion DoubleToString() wird verwendet, um reelle Zahlen zu drucken

Die Frage ist vollständig gelöst, vielen Dank für die Hilfe!

//--------------------------------------------------------------------
int start()
{
double delta = Ask-Bid;
double delta2 = 1.10059-_Point;
Comment("Bid = ", DoubleToString(Bid,5),
"\nAsk = ", DoubleToString(Ask,5),
"\nDelta = ", DoubleToString(delta,5),
"\nDelta2 = ", DoubleToString(delta2,5),
"\nPoint = ", DoubleToString(_Point,5),
"\nDigits = ", Digits);
zurück(0);
}
//--------------------------------------------------------------------



Dateien:
Grund der Beschwerde: