[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 287
tara: Hai postato la parte sbagliata del codice:( dovresti postare la tua funzione.
Una parte del codice è corretta, l'ho tagliata e l'ho fatta diventare un Expert Advisor, dopo di che l'ho fatta passare attraverso lo strategy tester e ho ottenuto uno strano risultato, come se la funzioneDoubleToStrMorePrecision della libreriastdlib.mqh fosse difettosa
Puoi mostrarmi i valori di ore, minuti e secondi prima di inserirli nel numero generale?
Qual è il valore pratico di questa conversione?
#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 conclusione è questa:
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
Il valore pratico non è ancora pienamente realizzato, ma è secondario, qui ho bisogno di capire perché il risultato dei calcoli non è quello che ci si aspetta.
Zhunko: La dimensione dei file è limitata dalla dimensione dell'unità, ma la sua visualizzazione è limitata dalla dimensione della memoria. Non credo che tu abbia così tanti dati.
Questo è il punto, ho un'idea per scrivere un graal, ma richiede un database molto grande, quindi mi sto chiedendo in che modo avvicinarmi
Hai postato la parte sbagliata del codice:( dovresti postare la tua funzione.
Se intendi DoubleToStrMorePrecision, è una funzione di libreria :)
Poi, via agli annali per la conoscenza :)
O me lo mostri o ci vai tu stesso.
Regole di ricerca
https://www.mql5.com/ru/articles/1561
Regole di ricerca
https://www.mql5.com/ru/articles/1561
È un articolo sulle funzioni della biblioteca?
Hai postato la parte sbagliata del codice:( dovresti postare la tua funzione.
Puoi mostrarmi i valori di ore, minuti e secondi prima di inserirli nel numero generale?
Qual è il valore pratico di questa conversione?
#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 conclusione è questa:
Il valore pratico non è ancora pienamente realizzato, ma è secondario, qui ho bisogno di capire perché il risultato dei calcoli non è quello che ci si aspetta.
La dimensione dei file è limitata dalla dimensione dell'unità, ma la sua visualizzazione è limitata dalla dimensione della memoria. Non credo che tu abbia così tanti dati.
Per qualche ragione, mi viene bene (tranne che per l'alfabeto cirillico)