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

 
Fry :

실수

부르다:


결과 로그 메시지:

HistoryBase 'RTS-12.14' 1개의 잘못된 막대가 제거되었습니다.


나는 이미 이 오류에 지쳤습니다. 무엇보다도 통신 채널을 로드합니다.

확인되지 않은 다른 이유로 동일한 오류가 나타납니다.

그러나 흥미롭게도 다른 많은 악기에는 나타나지 않습니다. 무엇보다 RTS 선물에 나옵니다.


나는 몇 달 전에 서비스 데스크에 편지를 썼습니다. 대답은 아니오입니다( 응용 시작: 2014.07.28 13:41 , #1046215) .


현재(그리고 과거) RTS 선물(브로커 "O..."가 있는 데모 계정)의 모든 틱에서 이 오류를 일으키는 터키 코드를 첨부합니다.

터미널 버그인가요? 아니면 브로커? 아니면 나?

무엇을 할까요? D1 기간의 막대 수를 다른 방법으로 알 수 있습니까?

좋은 저녁이에요. 시도하지 않았습니까?

 SeriesInfoInteger ( _Symbol , PERIOD_D1 , SERIES_BARS_COUNT );
 
Tapochun :

좋은 저녁이에요. 시도하지 않았습니까?

그리고 좋은 저녁 되세요. 나는 그것을 시도했다 - 그것은 동일합니다.

결과는 동일합니다. 오류는 각 틱 에서 로그에 올라갑니다.

아이디어 주셔서 감사합니다. SeriesInfoInteger()가 내부적으로 Bars를 참조하지 않으면 이것이 브로커 서버의 "좁은" 데이터 잼일 가능성이 점점 높아집니다.

그리고 이것은 내 질문에 대한 만족스러운 대답이기도 합니다.

결국 어디에서 오류가 발생하는지 이해할 수 없습니다. 피할 수 있습니까?

 
Fry :

그리고 좋은 저녁 되세요. 나는 그것을 시도했다 - 그것은 동일합니다.

결과는 동일합니다. 오류는 각 틱의 로그에 올라갑니다.

아이디어 주셔서 감사합니다. SeriesInfoInteger()가 내부적으로 Bars를 참조하지 않으면 이것이 브로커 서버의 "좁은" 데이터 잼일 가능성이 점점 높아집니다.

그리고 이것은 내 질문에 대한 만족스러운 대답이기도 합니다.

결국 어디에서 오류가 발생하는지 이해할 수 없습니다. 피할 수 있습니까?

아마도 브로커가 정말로 실수를 저질렀을 것입니다. 메시지에 따르면 일부 "깨진" 막대가 삭제되거나 데이터가 도중에 "죽일" 시간이 있습니다. 하지만 이것은 어디까지나 제 추측일 뿐입니다. 그건 그렇고, GetLastError() 는 아무것도 제공합니까? 아, 그리고 Bars()는 무엇을 반환합니까?
 
Tapochun :
아마도 중개인이 정말로 실수를 저질렀을 것입니다. 메시지에 따르면 일부 "깨진" 막대가 삭제되거나 데이터가 도중에 "죽일" 시간이 있습니다. 하지만 이는 어디까지나 제 추측일 뿐입니다. 그건 그렇고, GetLastError()는 아무것도 제공합니까? 아, 그리고 Bars()는 무엇을 반환합니까?

Bars()가 0을 반환하면 오류 4001(ERR_INTERNAL_ERROR 4001 예기치 않은 내부 오류)이 반환됩니다.

그러나 한 번 후에 Bars()는 여전히 막대 수를 반환하고 오류는 없습니다(Bars()는 오류 상태를 변경하지 않음).

 

MT4 빌드 722, ME4 빌드 989

현재 제로 바의 데이터를 복사하려고 합니다.

       MqlRates rates[ 1 ];
       int n= CopyRates ( _Symbol , PERIOD_CURRENT ,time[ 0 ], 1 ,rates); 
       Print ( "n=" ,n);

n=0이 인쇄됩니다. 데이터는 복사되지 않습니다.

PERIOD_CURRENT 대신 씁니다 .   _기간 이 작동합니다.

0이 아닌 막대의 데이터(시간[1] 등)를 복사하면 PERIOD_CURRENT 또는 _Period 항목에 관계없이 정확합니다.

추신: SD를 발행해야 합니까?

 
Fry :

Bars()가 0을 반환하면 오류 4001(ERR_INTERNAL_ERROR 4001 예기치 않은 내부 오류)이 반환됩니다.

그러나 한 번 후에 Bars()는 여전히 막대 수를 반환하고 오류는 없습니다(Bars()는 오류 상태를 변경하지 않음).

오류의 "놀라움"은 다시 한 번 무언가에 도달 할 시간이없고 제거되어 오류가 발생했음을 나타냅니다. 내가 이해하는 한, 당신은 D1 에 있는 막대의 수 를 알아내야 합니다... 하지만 모든 틱에서 이것을 할 필요가 있습니까? 또는 1분에 한 번 이하로 데이터를 요청하는 함수를 작성하십시오. 그리고 오류가 발생하는지 확인하십시오.

 
kPVT :

MT4 빌드 722, ME4 빌드 989

현재 제로 바의 데이터를 복사하려고 합니다.

n=0이 인쇄됩니다. 데이터는 복사되지 않습니다.

PERIOD_CURRENT 대신 씁니다 .   _기간 이 작동합니다.

0이 아닌 막대의 데이터(시간[1] 등)를 복사하면 PERIOD_CURRENT 또는 _Period 항목에 관계없이 정확합니다.

추신: SD를 발행해야 합니까?

좋은 저녁이에요. 시도해보십시오... 대안이 있다면 이 결함을 찾기 위해 서두르지 않을 것입니다. 나는 일주일 동안 두 개의 신청서가 매달려 있습니다 ... 대답도없고 인사도 없습니다.
 
Fry :

무엇을 할까요? D1 기간의 막대 수를 다른 방법으로 알 수 있습니까?

터키는 D1에 출시?
 
MigVRN :
터키는 D1에 출시?

당연히 아니지. 그게 요점입니다. 칠면조 자체가 D1에서 시작될 때 우리는 단순히 " const   int Rates_total, // 입력 시계열의 크기 ".

자, 여기 구체적인 사용 사례가 있습니다.

몇 가지 지표를 초기화하고 핸들을 얻었습니다(여기서는 모든 것이 정상입니다). 다음으로 ontic 함수에서 호출할 때까지 필요한 핸들(외부 칠면조)에서 모든 데이터가 이미 계산되었는지 확인해야 합니다. 제가 하는 일은 다음과 같습니다.

   //not all data may be calculated
   if ( BarsCalculated (hCCI)<rates_total) { Print ( "Not all data of trend CCI is calculated. Error#" , GetLastError ()); return ( 0 );}
   if ( Period ()!= PERIOD_D1 && BarsCalculated (hDayTrand)< Bars ( Symbol (), PERIOD_D1 )) return ( 0 );

또한 이 경우 hDayTrand는 재귀 핸들입니다(동일한 칠면조, D1에만 로드됨).

나는 터미널의 문서와 예제와 권장 사항에 따라 모든 것을 수행하는 것 같습니다. 결과 -이 모든 쓰레기는 잡지에서 맹세하고 분당 메가 바이트를 먹습니다.

 
Fry :

당연히 아니지. 그게 요점입니다. 칠면조 자체가 D1에서 시작될 때 우리는 단순히 " const   int Rates_total, // 입력 시계열의 크기 ".

자, 여기 구체적인 사용 사례가 있습니다.

몇 가지 지표를 초기화하고 핸들을 얻었습니다(여기서는 모든 것이 정상입니다). 다음으로 ontic 함수에서 호출할 때까지 필요한 핸들(외부 칠면조)에서 모든 데이터가 이미 계산되었는지 확인해야 합니다. 그리고 이것이 내가 하는 일입니다:

또한 이 경우 hDayTrand는 재귀 핸들입니다(동일한 칠면조, D1에만 로드됨).

나는 터미널의 문서와 예제와 권장 사항에 따라 모든 것을 수행하는 것 같습니다. 결과 -이 모든 쓰레기는 잡지에서 맹세하고 분당 메가 바이트를 먹습니다.

IMHO, 브로커에게 연락해야 합니다(Opening, 내가 이해하는 대로). 실제 계정에는 이것이 없으므로 문제가 일종의 서버 설정에 있음을 의미합니다.