오류, 버그, 질문 - 페이지 659

 
antt :
액세스 포인트는 무엇입니까?
키프로스.
 

상황은 이렇다. 예를 들어 금요일에 열린 자리가 있습니다. 손절매이익실현이 설정 됩니다. 거래 세션이 끝날 때까지 기다리지 않고 이러한 위치를 떠나 연결을 끊고 컴퓨터를 최대 절전 모드(절전 모드)로 전환합니다. 우리는 다음날 합류합니다. 우리는 인터넷을 켭니다. 서버와 연결되어 있습니다. 토요일. 시장이 닫혀 있습니다. 일부는 손절매 로, 일부는 이익실현 으로 마감되었음을 알 수 있습니다. 이러한 거래는 거래 터미널기록 탭에서 볼 수 있습니다.

지난 세 번의 거래 기록을 요청합니다.

   datetime Start= 0 ;
//---
   if (! HistorySelect (Start, TimeCurrent ())) // Загрузим историю сделок
     {
       Print ( "Ошибка при загрузке истории!" ); return ;
     }
   else
     {
       ulong ticket= 0 ;
       datetime time= 0 ;
       string symbol= "" ,comment= "" ;
       //---
       int total_deals= HistoryDealsTotal ();
       //---
       for ( int d=total_deals- 1 ; d>=total_deals- 3 ; d--)
        {
         if ((ticket= HistoryDealGetTicket (d))> 0 ) // Если сделка выбрана
           {
            symbol= HistoryDealGetString (ticket, DEAL_SYMBOL );
            comment= HistoryDealGetString (ticket, DEAL_COMMENT );
            time=( datetime ) HistoryDealGetInteger (ticket, DEAL_TIME );
             //---
             Print ( "<-- symbol: " ,symbol, "; comment: " ,comment, "; time: " ,time, " -->" );
           }
        }
     }

그리고 우리는 이야기가 일치하지 않는다는 것을 알 수 있습니다. 즉, 터미널에서 볼 수 있지만 프로그래밍 방식으로 가져올 수는 없습니다.

//---

이것은 버그입니까 아니면 의도된 것이며 이러한 거래는 이제 시장이 열릴 때만 프로그래밍 방식으로 받을 수 있습니까?

추신 나는 또한 이것을 시도했지만 도움이되지 않습니다.

 #define Milliseconds_Ahead 200
//---
datetime TimeCurrentAhead()
  {
   return ( TimeCurrent ()+Milliseconds_Ahead);
  }
 

tol64 :

...

추신 나는 또한 이것을 시도했지만 도움이되지 않습니다.

탈출구를 찾았습니다. Market Watch 창에서 퇴장 시간을 확인할 수 있습니다. 즉, 서버와 연결이 있고 틱이 도착한 마지막 시간(마지막 틱 시간):

즉, 제 경우에는 18:43:30 입니다.

이 기능의 도움으로 모두 동일하다는 것이 밝혀졌습니다 ...:

 #define Milliseconds_Ahead 10000
//---
datetime TimeCurrentAhead()
  {
   return ( TimeCurrent ()+Milliseconds_Ahead);
  }

...상황을 해결할 수는 있지만 상당한 여유를 가지고 요청을 해야 합니다. 또는 이 목발이 전혀 없으면 영원히 잊어버리되, 실시간이라면 기록을 요청할 때 항상 TimeLocal () 함수를 사용하십시오. 그리고 테스터에서 TimeCurrent () 또는 TimeCurrentAhead (). 그런 것:

 datetime ChoiceTimeFunction()
  {
   if (NotTest())
     { return ( TimeLocal ()); }
   else
     { return ( TimeCurrent ()+Milliseconds_Ahead); }
//---
   return ( TimeLocal ());
  }

그런 다음이 순간은 인증서 또는 무언가에 포함되어야합니다 ...

 

터미널에는 삭제된 차트를 복원할 수 있는 기능이 있습니다.

원격 열기

복구를 위해 삭제된 차트의 하위 메뉴를 엽니다. 터미널 설정에서 "삭제된 창을 다시 열 수 있도록 저장" 확인란이 설정된 경우 삭제된 차트가 저장됩니다. /Profiles/Deleted 디렉토리 는 삭제된 차트의 모든 템플릿을 저장합니다. 이 명령을 실행하면 이러한 템플릿에 액세스하고 해당 차트가 열립니다. 삭제된 차트 템플릿은 이 메뉴의 해당 명령을 사용하여 삭제할 수 있습니다.

상황은 이렇다. Expert Advisor가 차트에 멈추고 해당 정보 패널 이 표시됩니다. OnDeinit () 함수에서 차트가 닫히면 개체 없이 복원할 템플릿을 저장하기 위해 정보 패널을 삭제해야 한다고 지정합니다. 차트를 닫습니다. 원격 열기 옵션을 사용하여 복원하지만 개체와 함께 복원이 잘못 발생합니다(일부는 그렇지 않은 경우도 있음). 그런 다음 EA는 초기화 후 모든 것을 복원합니다. 불쾌한 뒷맛과 부주의하게 작업한 느낌이 남아 있습니다. 단말이 아닌 전문가의 입장에서 평가합니다. 다른 초기화 해제 이벤트에서는 모든 것이 올바르게 작동합니다. 내가 이해하는 한 템플릿은 초기화 해제 중에 객체가 여전히 삭제되지만 템플릿에 저장될 수 있기 때문에 초기화 해제 전에 저장됩니다.

 

여기서 나오는 문제는...

내가 아는 한, 터미널은 서버의 추가 기록과 일종의 로컬 기록의 "갭"을 "인식"할 수 있고 자동으로 미친 듯이 다운로드를 시작하여 이러한 격차를 채울 수 있습니다. 물론 다 좋지만...

비표준 타임프레임 같은 것이 있는데, 그 히스토리는 어디서도 다운로드 되지 않은 것 같지만 터미널 자체에서 자동으로 "마음속으로" 완성됩니다. 그리고 그것이 내가 지금 주목한 것입니다. 기록 및 자동 재개의 "실패"에 대한 메모와 함께 모든 것이 정상인 경우 비표준 시간 프레임의 구축 및 후속적으로 손상된(디스크 또는 메모리에서) 기록 복원과 관련하여 상황이 종료됩니다. 손의. 글쎄, 나는 내 터미널의 전체 기록을 다운로드 한 다음 모든 시간 프레임을 뛰어 넘었고 H2H3 에서 누군가가 터미널에서 로컬로 다운로드하거나 다시 작성하는 것에 대해 생각조차하지 않은 기록의 전체 최근 부분을 깨물었다는 것을 발견했습니다. 그 자체. 터미널을 언로드하고 C:\Program Files\MetaTrader 5\Bases\MetaQuotes-Demo\history\NZDUSD\cache help 에서 해당 시간 프레임의 파일을 수동으로 삭제한 다음 터미널을 실행하고 H2H3 으로 전환하고 기다리십시오. 처음부터 올바른 자신의 이야기를 재구성합니다.

분명히, 나는 비표준 시간대를 포함하여 이러한 물린 부분을 "느끼고" 즉시 채우려고 시도하는 더 똑똑한 터미널을 원합니다.

---------------

추가: 솔직히 말해서 터미널에는 아무 것도 표시되지 않습니다. 나는 1999년부터 MetaQuotes에서 실제로 시작하는 몇 분의 비뚤어진 기록으로 1년 동안 앉아 있었고, 어떤 이유에서인지 내 경계는 2009년 즈음에 지나갔습니다. 그래서 어쩌죠? 이 자동 이력서는 어디에 있습니까? 다행히 다운받을 곳이 있었고 여유가 있었는데 이력서가 없었고, 오늘이 되어서야 다 부수고 다시 설치하기 전까지는 없었습니다. 물론 여기서 우리는 재개에 대해 이야기하지 않고 터미널에서 전체 기록을 처음부터 완전히 다운로드하는 것에 대해 이야기합니다. 아 아주 조금 - 그리고 빵.

그리고 이와 관련하여 프로그램을 디버그하고 다른 사용자가 소프트웨어 제품을 사용하기를 기대하는 모든 MQL 프로그래머에게 중요한 경고와 함께 다음과 같은 중요한 경고를 주고 싶습니다. 더 높은 기간을 기록으로 대체하면 처리 속도가 만족스럽지만 귀하 또는 귀하의 소프트웨어 제품 사용자가 최신 시스템의 CPU 사용률 100%에서 울고 결과를 "무한" 대기하는 일이 발생할 수 있습니다. 완료될 것입니다 - 훨씬 더 커집니다!

 

'f0_34' - 비교 표현식이 필요함

이 경고가 무엇을 의미하는지 말씀해 주시겠습니까?

 

같은 오류가 다시 나타납니다.

문제 영역이 확인되었습니다. 서비스 데스크의 자세한 설명.

//---

추신 . 유사한 문제가 해결되면 이미 존재하는 응용 프로그램을 보완합니다. 잠시 후 프로필 근처에 알림이 표시되었습니다. Service Desk 에 가는데 응용 프로그램이 완전히 사라졌습니다. 이제 다시 써야 하나? )))

 
tol64 :

같은 오류가 다시 나타납니다.

문제 영역이 확인되었습니다. 서비스 데스크의 자세한 설명.

//---

추신 . 유사한 문제가 해결되면 이미 존재하는 응용 프로그램을 보완합니다. 잠시 후 프로필 근처에 알림이 표시되었습니다. Service Desk 에 가는데 응용 프로그램이 완전히 사라졌습니다. 이제 다시 써야 하나? )))

댓글과 함께 응용 프로그램이 제자리에 있지만 어떤 이유로 프로필에 표시되지 않습니다.

우리는 확실히 그것을 알아낼 것입니다.

 
MetaQuotes :

댓글과 함께 응용 프로그램이 제자리에 있지만 어떤 이유로 프로필에 표시되지 않습니다.

우리는 확실히 그것을 알아낼 것입니다.

내 응용 프로그램 중 일부도 완전히 떠났으므로 정렬하십시오. 열리지도 닫히지도 않습니다.
 
MetaQuotes :

댓글과 함께 응용 프로그램이 제자리에 있지만 어떤 이유로 프로필에 표시되지 않습니다.

우리는 확실히 그것을 알아낼 것입니다.

고맙습니다. 설명이 있기 때문에 기대하고 있습니다. 문제는 내가 지적한 곳뿐만 아니라 그 자체로 나타나기 시작했습니다. 발현 영역은 이제 유비쿼터스입니다.