MT5와 속도 - 페이지 21

 
fxsaber :

전투 로봇에서는 0 -INT_MAX 옵션만 남겼습니다. 브레이크가 눈치 채지 못했습니다.

이 이야기로 무엇을 합니까?

물론 매월 부계정을 변경하여 주문 내역을 수십만 개로 제한할 수 있지만 이는 선택사항이 아닙니다. :)

 
Dmi3 :

이 이야기로 무엇을 합니까?

물론 매월 부계정을 변경하여 주문 내역을 수십만 개로 제한할 수 있지만 이는 선택사항이 아닙니다. :)

   static ulong IsHistoryDeals( const long TimeMsc )
  {    
     ulong Res = 0 ;
/*    
    if (_B(::HistorySelect(TimeMsc / 1000, INT_MAX), 5))
    {
      const int Total = _B(::HistoryDealsTotal(), 1);
      
      if (Total > 100)
        ::Alert("::HistoryDealsTotal() = " + (string)Total + ", TimeMsc = " + NEWTICKS::TimeToString(TimeMsc));
                
      for (int i = Total - 1; !Res && (i >= 0); i--)
      {
        const ulong Ticket = _B(::HistoryDealGetTicket(i), 1);
        
        if ((_B(::HistoryDealGetInteger(Ticket, DEAL_TIME_MSC), 1) >= TimeMsc) &&
            (_B(::HistoryDealGetString(Ticket, DEAL_SYMBOL), 1) == _Symbol))        
          Res = Ticket;
      }
    }    
*/     
     if (_B(:: HistorySelect ( 0 , INT_MAX ), 1 )) // 
    {
       const int Total = _B(:: HistoryDealsTotal (), 1 );
      
       for ( int i = Total - 1 ; !Res && (i >= NEWTICKS::PrevTotal); i--)
      {
         const ulong Ticket = _B(:: HistoryDealGetTicket (i), 1 );
        
         if (_B(:: HistoryDealGetInteger (Ticket, DEAL_TIME_MSC ), 1 ) < TimeMsc)
           break ;
         else if (_B(:: HistoryDealGetString (Ticket, DEAL_SYMBOL ), 1 ) == _Symbol ) 
          Res = Ticket;
      }
      
      NEWTICKS::PrevTotal = Total;
    }    
    
     return (Res);
  }
 
fxsaber :
현재 99%의 경우 HistorySelect(0, INT_MAX )만 사용해야 한다는 것을 알았습니다. 다른 옵션을 사용하지 마십시오.

아마도 캐시의 시작 부분을 이동하지 않는 것으로 충분합니다. 즉, 항상 같은 날짜부터 요청합니다(그리고 0과 같을지 여부는 중요하지 않습니다).

확인이 필요합니다.

 
Andrey Khatimlianskii :

아마도 캐시의 시작 부분을 이동하지 않는 것으로 충분합니다. 즉, 항상 같은 날짜부터 요청합니다(그리고 0과 같을지 여부는 중요하지 않습니다).

확인이 필요합니다.

아마도. 테스터로 오래 산다는 것은 어렵다.

 
fxsaber :


결과.


모든 틱에는 문제가 있습니다.


ZY 설치된 Win10, LatencyMon은 모든 것이 정상임을 보여줍니다.

Hose 순진한 이유는 무엇입니까?

이전에, 지금은 - 캐시를 죽이는 것이 표준이 아니라는 것을 갑자기 보여주려고 합니다. 당신 자신은 큰 기록에서 캐시를 죽인 책임이 있습니다. 그리고 시작 위치를 구체적으로 조정하는 것은 귀하의 문제일 뿐입니다. MQL5 환경에서 많은 캐시를 죽이거나 중독시킬 수 있는 많은 기회를 찾을 수 있습니다.

우리는 당신을 돕지 않을 것입니다. 모든 프로그래밍 언어에는 발과 머리에 자신을 쏠 수 있는 수많은 옵션이 있습니다.

"봐라 - 나는 의도적으로 캐시를 독살하고 나 자신을 쏜다."
 
Andrey Khatimlianskii :

아마도 캐시의 시작 부분을 이동하지 않는 것으로 충분합니다 . 즉, 항상 같은 날짜부터 요청합니다(0과 같을지 여부는 중요하지 않음).

확인이 필요합니다.

이것이 바로 내가 설명한 것입니다.

날짜를 기준으로 선택하는 경우 각 요청에 따라 다른 선택을 정렬하려고 하지 마십시오. 글쎄, 날짜와 함께 앞으로 그것을 넣어보십시오.

우리는 구체적으로 to 위치를 제어하여 현재 날짜보다 크거나 같은 경우 자동으로 INT_MAX 로 롤링합니다.

 
Renat Fatkhullin :

이전에, 지금은 - 캐시를 죽이는 것이 표준이 아니라는 것을 갑자기 보여주려고 합니다. 당신 자신은 큰 기록에서 캐시를 죽인 책임이 있습니다. 그리고 시작 위치를 구체적으로 조정하는 것은 귀하의 문제일 뿐입니다. MQL5 환경에서 많은 캐시를 죽이거나 중독시킬 수 있는 많은 기회를 찾을 수 있습니다.

한 라이브러리 는 TimeCurrent에서 HistorySelect 를 사용합니다. 다른 하나는 0에서 왔습니다. 생산적인 작업을 위해 라이브러리가 서로 호환되지 않는다는 것을 알아내기 위해 도대체 왜 라이브러리의 곱창을 뒤져야 합니까?

간결한 예는 무해한 라이브러리가 서로 간섭할 수 있는 이유를 찾는 것입니다. 마지막으로 비판적 사고를 켭니다.

 
fxsaber :

한 라이브러리는 TimeCurrent에서 HistorySelect 를 사용합니다. 다른 하나는 0에서 왔습니다. 생산적인 작업을 위해 라이브러리가 서로 호환되지 않는다는 것을 알아내기 위해 도대체 왜 라이브러리의 곱창을 뒤져야 합니까?

간결한 예는 무해한 라이브러리가 서로 간섭할 수 있는 이유를 찾는 것입니다. 마지막으로 비판적 사고를 하십시오.

이것이 당신의 개인적인 문제이고 라이브러리를 사용하고 머리를 끄는 것은 빌어먹을 일입니다.

 
Renat Fatkhullin :

이것이 당신의 개인적인 문제이고 라이브러리를 사용하고 머리를 끄는 것은 빌어먹을 일입니다.

asma에서 처음부터 모든 것을 작성하러 가자. 각 라이브러리가 개별적으로 날아가는 것은 정상적인 것으로 밝혀졌습니다. 그러나 한 번에 두 가지를 모두 사용하기 시작하자마자 브레이크가 시작됩니다.

 

우리는 버그를 Microsoft에 성공적으로 보고했지만 API에 대해 스스로 목숨을 끊을 수 있는 기회가 약 N백만 개 있다는 것을 작성하거나 비난한 적이 없습니다.

특히 다른 사람의 라이브러리를 사용할 때.