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

 
Sergey Dzyublik :
MT5 버그(빌드 2323),
템플릿 함수 내에서 명시적 캐스트 작업의 일부로 전달된 포인터는 클래스처럼 작동하므로 그에 따라 컴파일 오류가 발생합니다.

올려주셔서 감사합니다 수정했습니다

 
Aliaksandr Hryshyn :

브라켓의 유무에 차이가 있습니다.

   ulong n_yes= 3 *1000;; ok  
   ulong n_no=( 3 *1000;); ne ok


 
Aliaksandr Hryshyn :

브라켓의 유무에 차이가 있습니다.

그것은 당신에게 달려 있지만 쓰기 전에 확인할 수 있습니다

 
MT5 버그(빌드 2361)는 C++의 동작과 비교하여 오버로드된 템플릿 함수에 대한 호출 우선 순위의 또 다른 문제입니다.
MT5 컴파일 오류 "오버로드된 함수에 대한 모호한 호출"에서 C++에서는 모든 것이 정상입니다.
C++ 온라인( https://onlinegdb.com/Sy8cqdFr8 );

 template < typename _Tp>
struct It_wrapper{
   _Tp p;
};

template < typename _Tp>
struct It_g : public It_wrapper<_Tp>{};


template < typename _It, typename _Tp>
int __test_print( const It_wrapper<_It> &it, int n, const _Tp &value){
   Print (it.p);
   return 0 ;
};

template < typename _It> 
int test_print( const It_wrapper<_It> &it, int n, const int value){
   return __test_print(it, n, value);
}    

template < typename _It, typename _ValueType>                                                                                                    
int test_print( const It_wrapper<_It> &it, int n, const _ValueType &value){                                                              
   return __test_print(it, n, value);                                                                                                     
}   
  
   
void OnStart (){
   It_g< int > it;
   It_g< string > it_s;
   
   it.p = 4 ;
   it_s.p = "test" ;
   
   const int n = 10 ;
   test_print(it, 5 , n);          // Compile Error: 'test_print' - ambiguous call to overloaded function
   test_print(it_s, 5 , n);        // Compile Error: 'test_print' - ambiguous call to overloaded function
};


int main(){
   OnStart ();
   return 1 ;
};
 

텍스트에디터가 시장에서 고장나서 전체화면으로 확장하려고 하면 저장버튼만 멈춥니다....

또한, 무게가 큰 사진을 업로드할 수 있는데 사진이 업로드되었지만 설명에 제대로 표시되지 않습니다.
 
버그 1 position.Comision() 테스트 중 커미션은 항상 0입니다(테스터 자체에서 커미션은 포지션 히스토리에 표시됨). 이는 커미션이 계산되는 Expert Advisors의 매개변수 최적화에 영향을 미칩니다.

버그 2 simbol.Spred()는 프로그램 시작부터 세 번째 호출에서만 실제 값을 생성합니다.

버그 3 테스팅 에이전트가 분실되었을 때(로컬 네트워크에서만 작동), 몇 시간 동안 그것을 잊지 못하고 에이전트가 이미 로컬 네트워크에 나타나도 찾으려고 시도합니다 - 에이전트의 IP를 변경해야 합니다 테스터가 한 시간 이내에 에이전트를 잊어버린 후에야 에이전트의 IP가 반환되고 테스터는 계속 작동합니다. 그 결과 운 좋게도 30분에서 몇 시간 동안 테스트가 중지됩니다.

유전자 알고리즘 설명의 버그 4는 테스트가 정상적으로 중지되지 않았거나 테스트를 수동으로 중지했을 때 테스트 매개변수를 변경하지 않으면 최적화 캐시를 저장하고 테스트를 재개하면 다음 시점부터 최적화가 계속된다. 중지 - 실제로 이와 같은 것은 없습니다. 최적화가 다시 시작되고 최적화 결과가 중지된 최적화의 최적화 결과 파일에 추가됩니다. 결과적으로 - 최적화 파일에 더 많은 최적화 결과가 있을 뿐입니다 - 이것은 최적의 매개변수를 찾기 위한 실용적인 응용 프로그램이 없으며 총 최적화 시간이 늘어납니다.

버그 5 mql5 컴파일러는 최적화되지 않은 것 같습니다. 프로그램이 느려서 매개변수 최적화 속도에 영향을 줍니다. 20줄 프로그램이 어떻게 그렇게 느릴 수 있습니까?
 
Vladimir Pastushak :

텍스트에디터가 시장에서 고장나서 전체화면으로 확장하려고 하면 저장버튼만 멈춥니다....

또한, 무게가 큰 사진을 업로드할 수 있는데, 사진이 업로드되지만 설명에 제대로 표시되지 않습니다.

안녕하세요!

버그를 신고해 주셔서 감사합니다!

그림의 문제를 더 자세히 설명할 수 있습니까?

 

나는 이해할 수없는 문제에 부딪쳤다. 한 틱에 한 주문을 열고 특정 순간에 다른 주문을 닫고 테스터에서 모든 것이 잘 작동하고 실제에 놓고 탬버린과 함께 춤을 추는 한 곳에서 시작되고 포지션이 열립니다. , 그러나 다른 하나를 닫지 않습니다. 이와 관련하여 질문이 생겼습니다. 실생활에서 거래 할 때 동시에 두 가지 주문을 보낼 수 있습니까 (개설 및 마감)?

Razgon_y= OrderSend ( Symbol (),OP_BUY,Razgon_Lot,Ask, 100 , 0 , 0 ,Razgon_Comment,Razgon_Magic, 0 , clrBlue ); 
       if (Razgon_y< 0 ) 
       { 
         Print (" OrderSend завершилась с ошибкой #", GetLastError ()); 
       } 
       else ( Print ("Функция OrderSend успешно выполнена") );
       for ( int Razgon_index= 0 ; Razgon_index<= OrdersTotal (); Razgon_index++)
       {
         if ( OrderSelect (Razgon_index,SELECT_BY_POS,MODE_TRADES)== true )
        {
         if (OrderMagicNumber()==Razgon_Magic && OrderType()==OP_SELL && OrderProfit()> 0 )
         {
          Razgon_OC=OrderClose(OrderTicket(),OrderLots(),Ask, 100 , clrGreen );
           if (Razgon_OC== false ) 
          { 
           Print ("OrderClose завершилась с ошибкой #", GetLastError ()); 
          } 
           else ( Print ("Функция OrderClose успешно выполнена") );
          Razgon_AccountEquity=AccountEquity();
         }
        }
       }
      }
 
Maksim Slovakov :

나는 이해할 수없는 문제에 부딪쳤다. 한 틱에 한 주문을 열고 특정 순간에 다른 주문을 닫고 테스터에서 모든 것이 잘 작동하고 실제에 놓고 탬버린과 함께 춤을 추는 한 곳에서 시작되고 포지션이 열립니다. , 그러나 다른 하나를 닫지 않습니다. 이와 관련하여 질문이 생겼습니다. 실생활에서 거래 할 때 동시에 두 가지 주문을 보낼 수 있습니까 (개설 및 마감)?

당신의 사이클은 포지션을 닫기 에 적합하지 않습니다. 역 사이클을 수행하십시오.

 

실제 데이터(빌드 2361)를 기반으로 하는 디버거로 작업하는 동안 터미널에서 심각한 오류가 발생 했습니다.

2020.03.16 16:30:41.730 (RTS Splice,M1)    crash -->  00000115A15300A5 488D0B            lea        rcx, [rbx]

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300A8 E8850B0000        call       0x115a1530c32

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300AD 90                nop        

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300AE 89842488000000    mov        [rsp+0x88], eax

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300B5 F4                hlt        

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300B6 842488            test       [rax+rcx*4], ah

2020.03.16 16:30:41.730 (RTS Splice,M1)               00000115A15300B9 0000              add        [rax], al

2020.03.16 16:30:41.730 (RTS Splice,M1)

2020.03.16 16:30:41.730 (RTS Splice,M1) 00: 0x00000115A15300A5

2020.03.16 16:30:41.730 (RTS Splice,M1) 01: 0x00000115A7DFFD64

2020.03.16 16:30:41.730 (RTS Splice,M1) 02: 0x00000001776FA270

2020.03.16 16:30:41.730 (RTS Splice,M1) 03: 0x0000000000000001

2020.03.16 16:30:41.730 (RTS Splice,M1) 04: 0x00000001776FA23C

2020.03.16 16:30:41.730 (RTS Splice,M1)