빌드 1485 이후 CopyTicks() 및 CopyTicksRange() 개선을 위한 버그 및 제안. - 페이지 3

 
MetaQuotes Software Corp. :
메시지 덕분에 오류가 수정되었습니다. 이제 표시기에서 작동합니다. 업데이트가 곧 출시됩니다.
알려주십시오. CopyTicksRange()를 사용하여 틱을 얻는 속도가 빨라집니까?
 
빌드 1491 - ME의 언어 문서가 업데이트되지 않았습니다. CopyTicksRange()에 대한 정보는 사이트를 통해서만 얻을 수 있습니다!
 
테스터에서 현재(빌드 1495) "패키지"(ms의 정확도로 같은 시간을 가짐)의 틱이 한 번에 하나씩 제공됩니다. 그리고 테스터는 각각을 개별적으로 계산합니다. 실제로는 그럴 수 없습니다.
 

제대로 찾아온 것 같습니다. 포럼 사용자 여러분, 혼자서 오랫동안 이 문제로 씨름했지만 도저히 해결할 수 없었습니다. 도움이 되셨으면 합니다.

상황은 브로커 Finam(Whotrades), MMA 계정입니다. 우리는 26개의 러시아 증권, i.е. 26개의 창이 열려 있고 각 창에 고문의 사본이 첨부되어 있습니다. 디버깅 정보를 관리하고 발행하기 위한 공통 창을 생성하는 라이브러리를 포함하여 공통 C++ 라이브러리를 사용합니다.

일부 전략 매개변수는 틱 피드에 직접 의존하므로 모든 틱이 알고리즘을 통과하는 것이 매우 중요합니다. 물론 OnTick() 이 모든 틱 에서 작동하지 않으며 항상 그런 것은 아니며 심지어 틱에서도 작동한다는 사실을 알게 된 것은 놀라운 일이었습니다. 결과적으로 CopyTicksCopyTicksRange 타이머 기능을 사용해야 하는 필요성이 생겼습니다. datetime * 1000은 1970년 이후의 밀리초 수에 불과하지만 요점은 아니라는 것을 알아내기 위한 놀라운 노력(어디에도 기록되지 않음)이 있습니다.
이제 우리가 가진 것의 끝은 OnTimer에서 오전 10시에 시작하여 최신 틱 데이터를 요청하기 시작하는 코드 블록입니다.

문제는 어떤 이유로 메타 트레이더를 다시 시작한 후 첫날 에 일부 증권의 경우 틱 데이터가 다음 날 오전 11시(기브 또는 테이크)부터 시작되기 시작한다는 것이 중요하다는 것입니다. 모든 것이 정상이고 모든 것이 시작됩니다. 오전 10시에 이 유가 증권의 목록은 어떤 식 으로든 고정되어 있지 않으며 어떤 첫날에는 일부 유가 증권에 대한 틱이 없을 수 있습니다.
나는 문제가 틱 캐싱이라고 생각했습니다. 타이밍이 안맞아서 문제인줄 알았는데 그게 아니더라구요. 또한 CopyTicks(Range)가 데이터를 반환할 수 없는 경우 오류(-1)를 반환할 수 있으며 모든 것이 명확해집니다. 그러나 0이 반환되고 배열 크기도 0이며 GetLastError는 ERR_SUCCESS를 반환합니다. 저것들. 마치 이 진드기가 없는 것처럼 이상합니다. 왜냐하면 그들은 존재하는 창의 테이프에 있습니다.

나는 길을 잃었다. 무엇을 해야할지, 아니면 적어도 나아가야 할 방향을 알려주실 수 있기를 바랍니다.

코드를 제공해야 하는 경우 다음 설명과 함께 "추가" 명령에서 코드를 정리하고 게시하겠습니다.

고맙습니다!

 
antru :

예, 코드가 필요합니다. 실제 또는 데모 계정? 어떤 터미널 빌드?

솔직히 여기에서 중개인과 함께 일하는 사람이 있는지 모르겠습니다. 여기에서 아무도 귀하의 게시물에 응답하지 않으면 ServiceDesk 에 직접 메시지에 대한 링크를 사용할 수 있습니다. 또한 코드를 제공해야 합니다.

 
antru :
이러한 질문이 있으면 재생산 코드를 가지고 즉시 서비스 데스크로 이동하는 것이 좋습니다.
 
Alexey Kozitsyn :

예, 코드가 필요합니다. 실제 또는 데모 계정? 어떤 터미널 빌드?

솔직히, 여기 누군가가 당신의 중개인과 협력하는지 모르겠습니다. 여기에서 아무도 귀하의 게시물에 응답하지 않으면 ServiceDesk 에 직접 메시지에 대한 링크를 사용할 수 있습니다. 또한 코드를 제공해야 합니다.

실제 계정, 마지막 빌드, 1525. 저는 그렇게 생각합니다. 전략 알고리즘 없이 틱을 수행하는 베어 코드를 만듭니다. 실행합니다. 그래도 안되면 서비스 데스크로 가세요. 작동하면 집에서 버그를 찾으십시오.

서비스데스크에 대해 알려주셔서 감사합니다. metaquotes 웹사이트를 보니 모든 연락처가 거기에 있고, 하나의 이메일이 아닌 키프로스와 중국의 전화입니다.

 
Andrey Khatimlianskii :
이러한 질문이 있으면 재생산 코드를 가지고 즉시 서비스 데스크로 이동하는 것이 좋습니다.
고맙습니다!
 
antru :

실제 계정, 마지막 빌드, 1525. 저는 그렇게 생각합니다. 전략 알고리즘 없이 틱을 수행하는 베어 코드를 만듭니다. 실행합니다. 그래도 안되면 서비스 데스크로 가세요. 작동하면 집에서 버그를 찾으십시오.

서비스데스크에 대해 알려주셔서 감사합니다. metaquotes 웹사이트를 보니 모든 연락처가 거기에 있고, 하나의 이메일이 아닌 키프로스와 중국의 전화입니다.

이것이 바로 필요한 것입니다. 이 경우 전략은 문제를 식별하는 데만 방해가 됩니다. 틱을 요청하는 코드가 정확히 필요합니다.
 
antru :

제대로 찾아온 것 같습니다. 포럼 사용자 여러분, 혼자서 오랫동안 이 문제로 씨름했지만 도저히 해결할 수 없었습니다. 도움이 되셨으면 합니다.

상황은 다음과 같습니다. 브로커 Finam(Whotrades), MMA 계정. 우리는 26개의 러시아 증권, i.е. 26개의 창이 열려 있고 각 창에 고문의 사본이 첨부되어 있습니다. 디버깅 정보를 관리하고 발행하기 위한 공통 창을 생성하는 라이브러리를 포함하여 공통 C++ 라이브러리를 사용합니다.

일부 전략 매개변수는 틱 피드에 직접 의존하므로 모든 틱이 알고리즘을 통과하는 것이 매우 중요합니다. 물론 OnTick() 이 모든 틱 에서 작동하지 않으며 항상 그런 것은 아니며 심지어 틱에서도 작동한다는 사실을 알게 된 것은 놀라운 일이었습니다. 결과적으로 CopyTicksCopyTicksRange 타이머 기능을 사용해야 하는 필요성이 생겼습니다. datetime * 1000은 1970년 이후의 밀리초 수에 불과하지만 요점은 아니라는 것을 알아내기 위한 놀라운 노력(어디에도 기록되지 않음)이 있습니다.
이제 우리가 가진 것의 끝은 OnTimer에서 오전 10시에 시작하여 최신 틱 데이터를 요청하기 시작하는 코드 블록입니다.

문제는 어떤 이유로 메타 트레이더를 다시 시작한 후 첫날 에 일부 증권의 경우 틱 데이터가 다음 날 오전 11시(기브 또는 테이크)부터 시작되기 시작한다는 것이 중요하다는 것입니다. 모든 것이 정상이고 모든 것이 시작됩니다. 오전 10시에 이 유가 증권의 목록은 어떤 식 으로든 고정되어 있지 않으며 어떤 첫날에는 일부 유가 증권에 틱이 없을 수 있습니다.
나는 문제가 틱 캐싱이라고 생각했습니다. 타이밍이 안맞아서 문제인줄 알았는데 그게 아니더라구요. 또한 CopyTicks(Range)가 데이터를 반환할 수 없는 경우 오류(-1)를 반환할 수 있으며 모든 것이 명확해집니다. 그러나 0이 반환되고 배열 크기도 0이며 GetLastError는 ERR_SUCCESS를 반환합니다. 저것들. 마치 이 진드기가 없는 것처럼 이상합니다. 왜냐하면 그들은 존재하는 창의 테이프에 있습니다.

나는 길을 잃었다. 무엇을 해야할지, 아니면 적어도 나아가야 할 방향을 알려주실 수 있기를 바랍니다.

코드를 제공해야 하는 경우 다음 설명과 함께 "추가" 명령에서 코드를 정리하고 게시하겠습니다.

고맙습니다!

EA와 OnTisk 및 CopyTicks에서 틱을 얻는 모든 가능한 방법을 사용하고 결과를 비교하고 가장 적절한 것을 사용하십시오.