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

 
Nikolai Semko # :

분명한.
아, 이 일식의 회랑...

연결이 없었고 이미 40시간이 지났을 때부터 데모를 할 시간이 있습니다.

 
Nikolai Semko # :

그 전에는 모든 것이 오류가 없었지만 새 버전의 제품을 놓치지 않습니다.


내가 문제가 아닌 것 같습니다.
빌드 3110

어제 Market 제품을 검증하는 데에도 사용되는 MetaQuotes-Demo 서버에 연결하는 데 문제가 있었습니다.

우리는 어제 이 문제를 수정하고 기술적인 이유로 검증에 실패한 모든 제품을 다시 검증했습니다.

불편에 대해 사과드립니다.

실수로 제품을 놓치고 다시 시작하지 않은 경우 직접 실행하십시오. 이제 검사가 정상적으로 작동해야 합니다.

 

다음은 코드 샘플입니다.

 //+------------------------------------------------------------------+
#property strict
//+------------------------------------------------------------------+
void OnStart ()
  {
   uint iCurrent = 722 ;
   int   iinterval= 1000 ;         
   int   iNext=( int )(iCurrent-iinterval/ 2 ); // 722-500=222
   Print ( "Current :" ,iCurrent);
   Print ( "iNext   :" ,iNext);
   long   temp=( long )(iNext-iCurrent); //предупреждений нет ожидаем Лонг -500
   Print ( " temp (long):" ,temp); //int - uint ->uint Result: uint -- oшибка!

   Print ( " delta(&int)" + string (( int )(iNext-iCurrent)));     // неожиданный успех  
   Print ( " delta(&long)" + string (( long )(iNext-iCurrent)));   // опять штанга
   //-----------------------------------
 }

결과:

 2021.11 . 23 13 : 07 : 35.931 testUint (Volatility 75 Index,M15)      Current : 722
2021.11 . 23 13 : 07 : 35.932 testUint (Volatility 75 Index,M15)      iNext   : 222
2021.11 . 23 13 : 07 : 35.932 testUint (Volatility 75 Index,M15)       temp ( long ): 4294966796
2021.11 . 23 13 : 07 : 35.932 testUint (Volatility 75 Index,M15)       delta(& int )- 500
2021.11 . 23 13 : 07 : 35.932 testUint (Volatility 75 Index,M15)       delta(& long ) 4294966796

누군가 이유를 설명 할 수 있습니까?

 long   temp=( long )(iNext-iCurrent);

준다

 4294966796

-500이 아닙니다.

뭔가가 전혀 요리되지 않습니다 ... (

 
Mikhail Dovbakh # :

다음은 코드 샘플입니다.

결과:

누군가 이유를 설명 할 수 있습니까?

준다

-500이 아닙니다.

뭔가가 전혀 요리되지 않습니다 ... (

 long temp=( long )iNext-iCurrent;

https://www.mql5.com/ru/docs/basis/types/casting

먼저 iNext를 부호 없는 정수로 변환해야 합니다. 그런 다음 부호 없는 정수 결과가 long으로 변환됩니다.

내 예에서 iNext는 즉시 long으로 캐스트되므로 iCurrent도 암시적으로만 long으로 캐스트됩니다. long 유형의 즉시 결과

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Приведение типов - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Slava # :

문제는 이러한 유형의 순서가 올바른 결과를 제공하지 않는 이유였습니다. 표현식의 유형 계층 순서에 따라 다르다고 가정할 수 있습니다. 실행 중 표현식에서 계층 구조의 순서대로 유형을 정렬하면 답이 맞고 그렇지 않은 경우 계층 구조를 위반하는 암시적 유형 변환으로 인해 변수 값이 변경될 수 있습니다.

 long temp=( long )(( int )iNext-( uint )iCurrent); 

위협 일반적으로 명시적 형식 변환이 아닌 동시에 계층 구조 위반입니다.

 
MetaQuotes # :

어제 Market 제품을 검증하는 데에도 사용되는 MetaQuotes-Demo 서버에 연결하는 데 문제가 있었습니다.

우리는 어제 이 버그를 수정하고 기술적인 이유로 검증에 실패한 모든 제품을 다시 검증했습니다.

불편에 대해 사과드립니다.

실수로 제품을 놓치고 다시 시작하지 않은 경우 직접 실행하십시오. 이제 검사가 정상적으로 작동해야 합니다.

고맙습니다!
이제 모든 것이 작동합니다.
 
Slava # :

https://www.mql5.com/ru/docs/basis/types/casting

먼저 iNext를 부호 없는 정수로 변환해야 합니다. 그런 다음 부호 없는 정수 결과가 long으로 변환됩니다.

내 예에서 iNext는 즉시 long으로 캐스트되므로 iCurrent도 암시적으로만 long으로 캐스트됩니다. long 유형의 즉시 결과

그럼 이유를 설명

  Print ( " delta(&int)" + string (( int )(iNext-iCurrent)));     // неожиданный успех 

그리고

int itemp=(int)(iNext-iCurrent); 


올바른 결과를 제공합니까?

귀하의 설명에 따라   먼저 iNext를 부호 없는 정수로 캐스팅합니다. 그런 다음 부호 없는 정수 결과는 부호 획득과 함께 정수로 축소됩니다.

바르게?

 

추세선은 빨간색 촛대의 저점에 연결되지 않습니다( EURUSD, M5; 정확한 타임라인 ; 자화: 15).


 
Mikhail Dovbakh # :

그럼 이유를 설명

그리고

int itemp=(int)(iNext-iCurrent); 


올바른 결과를 제공합니까?


용이하게

부호 없는 정수 32비트 길이 4294966796 같은 차원의 부호 있는 정수로 줄이면 -500이 됩니다.

 
Valeriy Yastremskiy # :

문제는 이러한 유형의 순서가 올바른 결과를 제공하지 않는 이유였습니다. 표현식의 유형 계층 순서에 따라 다르다고 가정할 수 있습니다. 실행 중 표현식에서 계층 구조의 순서대로 유형을 정렬하면 답이 맞고 그렇지 않은 경우 계층 구조를 위반하는 암시적 유형 변환으로 인해 변수 값이 변경될 수 있습니다.

위협 일반적으로 명시적 형식 변환이 아닌 동시에 계층 구조 위반입니다.

나는 이미 링크를 제공했습니다 https://www.mql5.com/ru/docs/basis/types/casting

거기에 모든 것이 아주 자세하게 기록되어 있습니다. 건너뛰지 않고 처음부터 끝까지 읽기

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Приведение типов - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5