[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 287

 
tara :
그들은 코드의 잘못된 부분을 게시했습니다.



DoubleToStrMorePrecision에 대해 이야기하고 있다면 이것은 라이브러리 함수입니다. :)
 
그녀에 대해 :)
 
그런 다음, 지식을 위해 연대기를 앞으로:)
 
Roger :
그런 다음, 지식을 위해 연대기를 앞으로:)

나에게 보여주거나 직접 가십시오.
 
 

이것은 라이브러리 기능에 대한 기사입니까?
 
tara :
그들은 코드의 잘못된 부분을 게시했습니다.

코드의 일부가 정확합니다. 특별히 잘라서 Expert Advisor로 포맷한 후 전략 테스터를 통해 실행하고 표준 라이브러리 stdlib.mqh의 DoubleToStrMorePrecision 함수 가 버그가 있는 것처럼 이상한 결과를 얻었습니다.
 
Roger :



일반 숫자에 삽입하기 전에 시, 분, 초 값을 표시할 수 있습니까?

파이시. 이 변환의 실제 가치는 무엇입니까?


#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);
  }

결론은 다음과 같습니다.

 2007.01 . 02 08 : 00    double EURUSD,M15: Alert : Значение переменной SS = 0
2007.01 . 02 08 : 00    double EURUSD,M15: Alert : Значение переменной MM = 0
2007.01 . 02 08 : 00    double EURUSD,M15: Alert : Значение переменной HH = 8
2007.01 . 02 08 : 00    double EURUSD,M15: Alert : Значение переменной DD = 2
2007.01 . 02 08 : 00    double EURUSD,M15: Alert : Значение переменной MN = 1
2007.01 . 02 08 : 00    double EURUSD,M15: Alert : Значение переменной YY = 2007

나 자신은 아직 실용적인 가치를 완전히 깨닫지 못했지만 이것은 부차적입니다. 여기서 계산 결과가 예상과 다른 이유를 이해해야 합니다.

 
Zhunko :
파일 크기는 디스크 크기에 따라 제한되지만 표시는 메모리 크기에 따라 제한됩니다. 데이터가 너무 많을 가능성은 거의 없습니다.

그게 요점입니다. grail 을 작성하는 아이디어가 있지만 매우 큰 데이터베이스가 필요하다는 것을 의미하므로 어느 쪽에서 이 문제에 접근해야 하는지 생각하고 있습니다.
 

어떤 이유로 모든 것이 올바르게 표시됩니다(키릴 자모 제외).

 2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 15 çíàêàìè ðàâíî 0.201304150832510
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 14 çíàêàìè ðàâíî 0.01304150832510
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 13 çíàêàìè ðàâíî 0.0130415083251
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 12 çíàêàìè ðàâíî 0.013041508325
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 11 çíàêàìè ðàâíî 0.20130415083
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 10 çíàêàìè ðàâíî 0.2013041508
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 09 çíàêàìè ðàâíî 0.201304151
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 08 çíàêàìè ðàâíî 0.20130415
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 07 çíàêàìè ðàâíî 0.2013042
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DTM ñ 06 çíàêàìè ðàâíî 0.201304
2013.04 . 14 22 : 32 : 52      stdlib GBPUSD,H1: loaded successfully
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé SS = 51
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé MM = 32
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé HH = 8
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé DD = 15
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé MN = 4
2013.04 . 14 22 : 32 : 52      test GBPUSD,H1: Çíà÷åíèå ïåðåìåííîé YY = 2013
사유: