[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 287
tara: Sie haben den falschen Teil des Codes gepostet:( Sie sollten Ihre Funktion posten.
Ein Teil des Codes ist korrekt, ich schneiden Sie es aus und machte es als Expert Advisor, nach, dass ich es durch Strategie-Tester lief und bekam seltsame Ergebnis, als obDoubleToStrMorePrecision Funktionvonstdlib.mqhBibliothek ist glitchy
Können Sie mir die Werte für Stunden, Minuten und Sekunden zeigen, bevor Sie sie in die allgemeine Zahl einfügen?
Welchen praktischen Wert hat diese Umstellung?
#include <stdlib.mqh>
bool once=false;
int start()
{
if (once==false)
{
double DTM; // дата и время в формате 0,20130429164459
int YY=TimeYear( TimeCurrent()); // Year
int MN=TimeMonth( TimeCurrent()); // Month
int DD=TimeDay( TimeCurrent()); // Day
int HH=TimeHour( TimeCurrent()); // Hour
int MM=TimeMinute( TimeCurrent()); // Minute
int SS=TimeSeconds(TimeCurrent()); // Second
Alert ("Значение переменной YY = ", YY);
Alert ("Значение переменной MN = ", MN);
Alert ("Значение переменной DD = ", DD);
Alert ("Значение переменной HH = ", HH);
Alert ("Значение переменной MM = ", MM);
Alert ("Значение переменной SS = ", SS);
DTM = YY*0.0001+MN*0.000001+DD*0.00000001+HH*0.0000000001+MM*0.000000000001+SS;
Alert ("Значение переменной DTM с 06 знаками равно ", DoubleToStrMorePrecision(DTM,6));
Alert ("Значение переменной DTM с 07 знаками равно ", DoubleToStrMorePrecision(DTM,7));
Alert ("Значение переменной DTM с 08 знаками равно ", DoubleToStrMorePrecision(DTM,8));
Alert ("Значение переменной DTM с 09 знаками равно ", DoubleToStrMorePrecision(DTM,9));
Alert ("Значение переменной DTM с 10 знаками равно ", DoubleToStrMorePrecision(DTM,10));
Alert ("Значение переменной DTM с 11 знаками равно ", DoubleToStrMorePrecision(DTM,11));
Alert ("Значение переменной DTM с 12 знаками равно ", DoubleToStrMorePrecision(DTM,12));
Alert ("Значение переменной DTM с 13 знаками равно ", DoubleToStrMorePrecision(DTM,13));
Alert ("Значение переменной DTM с 14 знаками равно ", DoubleToStrMorePrecision(DTM,14));
Alert ("Значение переменной DTM с 15 знаками равно ", DoubleToStrMorePrecision(DTM,15));
once=true;
}
return(0);
}
Die Schlussfolgerung ist folgende:
2007.01.0208:00double EURUSD,M15: Alert: Значение переменной SS = 02007.01.0208:00double EURUSD,M15: Alert: Значение переменной MM = 02007.01.0208:00double EURUSD,M15: Alert: Значение переменной HH = 82007.01.0208:00double EURUSD,M15: Alert: Значение переменной DD = 22007.01.0208:00double EURUSD,M15: Alert: Значение переменной MN = 12007.01.0208:00double EURUSD,M15: Alert: Значение переменной YY = 2007
Der praktische Wert ist noch nicht vollständig erkannt, aber das ist zweitrangig, hier muss ich verstehen, warum das Ergebnis der Berechnungen nicht das ist, was erwartet wird.
Zhunko: Die Größe der Dateien ist durch die Größe des Laufwerks begrenzt, aber die Anzeige ist durch die Größe des Speichers begrenzt. Ich glaube nicht, dass Sie so viele Daten haben.
Das ist die Sache, ich habe eine Idee, um einen Gral zu schreiben, aber es erfordert eine sehr große Datenbank, so frage ich mich, welchen Weg, um es anzugehen
Sie haben den falschen Teil des Codes gepostet:( Sie sollten Ihre Funktion posten.
Wenn Sie DoubleToStrMorePrecision meinen, handelt es sich um eine Bibliotheksfunktion :)
Dann ab in die Annalen des Wissens :)
Zeigen Sie es mir oder gehen Sie selbst hin.
Regeln für die Suche
https://www.mql5.com/ru/articles/1561
Regeln für die Suche
https://www.mql5.com/ru/articles/1561
Ist dies ein Artikel über Bibliotheksfunktionen?
Sie haben den falschen Teil des Codes gepostet:( Sie sollten Ihre Funktion posten.
Können Sie mir die Werte für Stunden, Minuten und Sekunden zeigen, bevor Sie sie in die allgemeine Zahl einfügen?
Welchen praktischen Wert hat diese Umstellung?
#include <stdlib.mqh> bool once=false; int start() { if (once==false) { double DTM; // дата и время в формате 0,20130429164459 int YY=TimeYear( TimeCurrent()); // Year int MN=TimeMonth( TimeCurrent()); // Month int DD=TimeDay( TimeCurrent()); // Day int HH=TimeHour( TimeCurrent()); // Hour int MM=TimeMinute( TimeCurrent()); // Minute int SS=TimeSeconds(TimeCurrent()); // Second Alert ("Значение переменной YY = ", YY); Alert ("Значение переменной MN = ", MN); Alert ("Значение переменной DD = ", DD); Alert ("Значение переменной HH = ", HH); Alert ("Значение переменной MM = ", MM); Alert ("Значение переменной SS = ", SS); DTM = YY*0.0001+MN*0.000001+DD*0.00000001+HH*0.0000000001+MM*0.000000000001+SS; Alert ("Значение переменной DTM с 06 знаками равно ", DoubleToStrMorePrecision(DTM,6)); Alert ("Значение переменной DTM с 07 знаками равно ", DoubleToStrMorePrecision(DTM,7)); Alert ("Значение переменной DTM с 08 знаками равно ", DoubleToStrMorePrecision(DTM,8)); Alert ("Значение переменной DTM с 09 знаками равно ", DoubleToStrMorePrecision(DTM,9)); Alert ("Значение переменной DTM с 10 знаками равно ", DoubleToStrMorePrecision(DTM,10)); Alert ("Значение переменной DTM с 11 знаками равно ", DoubleToStrMorePrecision(DTM,11)); Alert ("Значение переменной DTM с 12 знаками равно ", DoubleToStrMorePrecision(DTM,12)); Alert ("Значение переменной DTM с 13 знаками равно ", DoubleToStrMorePrecision(DTM,13)); Alert ("Значение переменной DTM с 14 знаками равно ", DoubleToStrMorePrecision(DTM,14)); Alert ("Значение переменной DTM с 15 знаками равно ", DoubleToStrMorePrecision(DTM,15)); once=true; } return(0); }Die Schlussfolgerung ist folgende:
Der praktische Wert ist noch nicht vollständig erkannt, aber das ist zweitrangig, hier muss ich verstehen, warum das Ergebnis der Berechnungen nicht das ist, was erwartet wird.
Die Größe der Dateien ist durch die Größe des Laufwerks begrenzt, aber die Anzeige ist durch die Größe des Speichers begrenzt. Ich glaube nicht, dass Sie so viele Daten haben.
Aus irgendeinem Grund habe ich es richtig gemacht (außer beim kyrillischen Alphabet)