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

 
Igor Makanu :

이것은 표시기에서 올바르게 작동하지 않아야 합니다.

내가 틀리지 않았다면 도움말에는 모든 기간 동안 데이터를 업로드하기 위한 스크립트 구문 분석이 포함되어 있으며 표시기가 작동한다는 사실 때문에 이러한 방식으로 표시기에서 기록 데이터를 요청할 수 없다는 경고가 있어야 합니다. 비동기적으로

예, BarsCalculated()는 핸들을 바인딩한 후 한 번 사용하는 것이 좋습니다.


UPD: 스와핑 기록용 스크립트 및 지표에서 작동하지 않는 이유 설명: https://www.mql5.com/en/docs/series/timeseries_access

이 기사에서는 표시기의 시계열에서 데이터를 요청하거나 루프에서 SeriesInfoInteger 를 요청하는 것은 바람직하지 않다고 말합니다.


" 업데이트를 유발한 지표 와 동일한 주기로 시계열 업데이트 요청을 보내는 것은 매우 바람직하지 않습니다. 지표와 동일한 심볼 기간 동안 데이터를 요청하는 것은 바람직하지 않습니다. 지표가 작동하는 것과 동일한 흐름으로 데이터가 업데이트되므로 클린치 가능성이 높습니다."


SeriesInfoInteger를 요청하고 거짓이면 OnCalculate를 종료하면 어떻게 클린치가 여기에 올 수 있습니까?

 

모두에게 질문:

도움말 https://www.mql5.com/en/docs/series/timeseries_access 에서 다음과 같이 말합니다.

"시계열에서 데이터를 복사하는 함수를 호출할 때 시작 매개변수 (가격 데이터 복사를 시작하는 막대 번호)는 항상 터미널의 사용 가능한 기록 내에 있어야 합니다. 막대가 100개만 있는 경우 , 그러면 인덱스가 500인 막대에서 시작하여 300개 막대를 복사하는 것은 의미가 없습니다. 이러한 요청은 잘못된 것으로 인식되어 처리되지 않습니다. 즉, 거래 서버에서 기록이 로드되지 않습니다."

CopyTime이 -1을 반환한다는 것은 이해할 수 있지만 - 바 서버에서 최대 800번째(500+300)까지 시계열/스왑을 빌드하기 위해 프로세스 자체가 시작됩니까?

제발 내게 말해줘.

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


1. 이 기사에서는 표시기의 시계열에서 데이터를 요청하거나 루프에서 SeriesInfoInteger를 요청하는 것은 바람직하지 않다고 말합니다.


" 업데이트를 유발한 지표 와 동일한 주기로 시계열 업데이트 요청을 보내는 것은 매우 바람직하지 않습니다. 지표와 동일한 심볼 기간 동안 데이터를 요청하는 것은 바람직하지 않습니다. 데이터는 지표가 작동하는 것과 동일한 흐름으로 업데이트되므로 클린치 가능성이 높습니다."


2. SeriesInfoInteger를 요청하고 거짓이면 OnCalculate를 종료하면 어떻게 클린치가 여기에 올 수 있습니까?

1. 예, 동기화 상태에 대한 요청이 히스토리 페이징으로 이어지기 때문에 표시기 흐름을 늦추는 것이 불가능하지만 기다릴 수는 없습니다.

2. 사실이다. 데이터가 준비되지 않은 경우 oncalk는 단순히 종료되고 동기화 터미널이 시작되지만 표시기 흐름은 느려지지 않습니다. 다음 oncalc는 데이터가 준비되고 요청된 표시기가 완전히 계산된 경우에만 브레이크 없이 완전히 실행할 수 있습니다. 위의 코드에서 요청한 표시기가 항상 준비된 것은 아니지만 모든 표시기의 가장 빠른 계산을 위해 모든 틱이 아닌 한 번만 새 막대를 계산할 수 있음을 보여주는 인쇄를 추가했습니다.

 
Andrey Dik :

고맙습니다.

또한 내 질문을 참조하십시오. https://www.mql5.com/en/forum/1111/page3028#comment_22557528

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2021.05.28
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 

Andrey Dik :

위의 코드를 보고,

코드 수정, 인쇄물 추가

   if ( SeriesInfoInteger ( Symbol (), OldTF, SERIES_SYNCHRONIZED ))
   {
     if ( iBars ( Symbol (), OldTF) != BarsCalculated (Handle))
     {
       Print ( "Баров " , iBars ( Symbol (), OldTF));
       Print ( "посчитано" , BarsCalculated (Handle));
       return 0 ;
     }
   }
   else
   {
     Print ( "Период " , OldTF, " не синхронизирован." );
     return 0 ;
   }

바퀴벌레가 보이면 모니터를 튜브에 넣고 밀어 넣습니다 ... 어디 있는지 알 수 있습니다.

 
mktr8591 :

고맙습니다.

또한 내 질문을 참조하십시오. https://www.mql5.com/ru/forum/1111/page3028#comment_22557528

이 문제에 대해 100% 확신할 수 없습니다(확인해야 함). 요청한 날짜가 서버 기록의 첫 번째 날짜보다 최신인지 확인하고 데이터를 요청할 수 있으며 기록이 펌핑됩니다.

 
Andrey Dik :

이 문제에 대해 100% 확신할 수 없습니다(확인해야 함). 요청한 날짜가 서버 기록의 첫 번째 날짜보다 최신인지 확인하고 데이터를 요청할 수 있으며 기록이 펌핑됩니다.

감사해요,

내 다른 게시물에 대해 물었습니다. 다시 링크: https://www.mql5.com/en/forum/1111/page3028#comment_22557528

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2021.05.28
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Alexey Viktorov :

코드 수정, 인쇄물 추가

바퀴벌레가 보이면 모니터를 튜브에 넣고 밀어 넣습니다 ... 어디 있는지 알 수 있습니다.

내 말을 확인했구나, 동지.

 
mktr8591 :

감사해요,

내 다른 게시물에 대해 물었습니다. 다시 링크: https://www.mql5.com/en/forum/1111/page3028#comment_22557528

나는 당신의 코드를 잘 이해하지 못했습니다. "return 0;" 후에 무슨 일이 일어나야 합니까? OnCalculate에 대한 다음 호출에서?

우리는 0을 반환하여 아직 아무 것도 계산하지 않았으며 다음 막대에서 precalc가 1만큼 증가하지 않을 것이라고 선언합니다.

즉, return(rates_total)을 반환할 때까지 상위 TF에서 데이터를 요청하기 시작한 막대에 있을 것입니다.

[삭제]  
Andrey Dik :

내 말을 확인했구나, 동지.

1. 모두 덕분에 지표에 대해 좀 더 이해하게 되었습니다 )))

2. Andrey, 누군가가 (나를 포함하여) 당신의 조작을 이해하지 못한다면 이것은 단지 한 가지 의미입니다. 당신은 그림을 올바르게 그리지 못하고 있습니다! 더 정확하게는-많은 사람들이 이해하지 못하는 방식으로 그립니다 ...