[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 287
tara: Vous avez posté la mauvaise partie du code :( vous devriez poster votre fonction.
Une partie du code est correcte, je l'ai coupé et l'ai transformé en conseiller expert, après quoi je l'ai fait passer par le testeur de stratégie et j'ai obtenu un résultat étrange, comme si la fonctionDoubleToStrMorePrecision de la bibliothèquestdlib.mqh était défectueuse.
Pouvez-vous me montrer les valeurs des heures, minutes et secondes avant de les insérer dans le nombre général ?
Quelle est la valeur pratique de cette conversion ?
#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);
}
La conclusion est la suivante :
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
La valeur pratique n'est pas encore pleinement réalisée, mais elle est secondaire, ici j'ai besoin de comprendre pourquoi le résultat des calculs n'est pas celui attendu.
Zhunko: La taille des fichiers est limitée par la taille du disque, mais son affichage est limité par la taille de la mémoire. Je ne pense pas que vous ayez autant de données.
C'est le problème, j'ai l'idée d'écrire un graal, mais cela nécessite une très grande base de données, donc je me demande comment l'aborder.
Ensuite, direction les annales pour la connaissance :)
Soit vous me montrez, soit vous y allez vous-même.
Règles de recherche
https://www.mql5.com/ru/articles/1561
Règles de recherche
https://www.mql5.com/ru/articles/1561
S'agit-il d'un article sur les fonctions de la bibliothèque ?
Vous avez posté la mauvaise partie du code :( vous devriez poster votre fonction.
Pouvez-vous me montrer les valeurs des heures, minutes et secondes avant de les insérer dans le nombre général ?
Quelle est la valeur pratique de cette conversion ?
#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); }La conclusion est la suivante :
La valeur pratique n'est pas encore pleinement réalisée, mais elle est secondaire, ici j'ai besoin de comprendre pourquoi le résultat des calculs n'est pas celui attendu.
La taille des fichiers est limitée par la taille du disque, mais son affichage est limité par la taille de la mémoire. Je ne pense pas que vous ayez autant de données.
Pour une raison quelconque, j'ai tout compris (sauf l'alphabet cyrillique).
Pour une raison quelconque, j'ai tout compris (sauf l'alphabet cyrillique).
C'est bien ça ? C'est le même problème que le mien.