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

 
Vladimir Karputov :

에이전트에서 작업이 계속 계산될 때 랩톱 에서 나에게 발생합니다. 계속 폭탄을 터뜨리고 그 결과 모든 요원들은 오래전에 계산을 끝냈고 이 불쌍한 동료는 타작하고 타작했다).

즉, 간단히 말해서: 마지막 작업의 작업이 에이전트에 걸려 있고 에이전트는 계속해서 싸우고 있습니다.

에이전트가 하루 이상 일하지 않은 후 오늘은 반대였습니다.

승인 및 데이터 교환에 걸림돌이 있다고 생각합니다. EA/히스토리가 오랫동안 전송되지 않으면 클라이언트가 다시 연결되고 에이전트는 여전히 파일이 도착하기를 기다리고 있습니다.
 
fxsaber :

거의 3백만 틱과 단 16K OrderSend. 그러나 이러한 거래 주문은 시간의 3분의 1이 걸립니다. 그러나 각 틱마다 고문에 계산이 있습니다.

따라서 질문. 프로파일러에서 OrderSend 코드를 실행할 수 있습니까? 그런 플러그가 어디에 있습니까?

일반 기능을 자신의 것으로 교체하면 더 빨리 작동한다고 생각합니다. 아마도 OrderSend에서 일부 값비싼 확인 및 제스처가 진행되고 있을 것입니다. 예를 들어 Expert Advisor(+ 표시기)의 어디에도 History-functions 및 OnTrade*가 없는 경우 해당 기록/이벤트의 형성은 시간 낭비입니다.

어떤 사람들에게는 한 번의 달리기가 몇 분 동안 지속된다는 것을 이해합니다. 그러나 실행 속도에주의를 기울이면 위와 같은 경우가 있습니다. 초 단위입니다. 여기에서 Optimization을 3시간 동안 실행하고 그 중 1시간이 OrderSend이며 평균 실행 시간이 69µs인 것으로 나타났습니다(스크린샷 참조).

여기요,

Metaquote로부터 유용한 답변을 받으셨습니까?

MT5 전략 테스터를 사용하여 성능을 향상시키려는 고객이 있습니다. EA 전략은 "저렴한 가격만" 모드를 쉽게 사용할 수 있습니다. 하지만 MT4로 1.5초 걸리던 백테스트는 MT5로 5초만에 완성!

이 전략은 후행 중지를 사용하고 백테스트 시간의 90%에서 OrderSend()를 사용하는 것으로 보입니다.


 
Alain Verleyen :

여기요,

Metaquote로부터 도움이 되는 답변을 받으셨습니까?

MT5 전략 테스터를 사용하여 성능을 향상시키려는 고객이 있습니다. EA 전략은 "저렴한 가격만" 모드를 쉽게 사용할 수 있습니다. 하지만 MT4로 1.5초 걸리던 백테스트는 MT5로 5초만에 완성!

이 전략은 후행 중지를 사용하고 백테스트 시간의 90%에서 OrderSend()를 사용하는 것으로 보입니다.

모든 답변은 이 스레드에서만 제공되었습니다. 그들이 뭔가를 한 것 같습니다

MetaQuotes Software Corp. :
  1. 테스터: 전략 테스터의 작업을 최적화하고 가속화합니다.

자체적으로 Virtual을 통해 결정됩니다.


위협 당신의 조언자를 보여주십시오.

Библиотеки: Virtual
Библиотеки: Virtual
  • 2018.10.03
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: Virtual
 
fxsaber :

그들이 뭔가를 한 것 같습니다

1930년

Core 1   pass 0 returned result 99753711.00 in 0 : 00 : 03.729
Core 1   pass 1 returned result 99753711.00 in 0 : 00 : 03.432
Core 1   pass 2 returned result 99753711.00 in 0 : 00 : 03.401
Core 1   pass 3 returned result 99753711.00 in 0 : 00 : 03.354
Core 1   pass 4 returned result 99753711.00 in 0 : 00 : 03.323
Core 1   pass 5 returned result 99753711.00 in 0 : 00 : 03.385
Core 1   pass 6 returned result 99753711.00 in 0 : 00 : 03.448
Core 1   pass 7 returned result 99753711.00 in 0 : 00 : 03.369
Core 1   pass 8 returned result 99753711.00 in 0 : 00 : 03.369
Core 1   pass 9 returned result 99753711.00 in 0 : 00 : 03.385
Tester  optimization finished, total passes 10
Statistics      optimization done in 0 minutes 35 seconds
Statistics       shortest pass 0 : 00 : 03.323 , longest pass 0 : 00 : 03.729 , average pass 0 : 00 : 03.419


가상

Core 1   pass 0 returned result 99753711.00 in 0 : 00 : 02.231
Core 1   pass 1 returned result 99753711.00 in 0 : 00 : 01.217
Core 1   pass 2 returned result 99753711.00 in 0 : 00 : 01.217
Core 1   pass 3 returned result 99753711.00 in 0 : 00 : 01.185
Core 1   pass 4 returned result 99753711.00 in 0 : 00 : 01.170
Core 1   pass 5 returned result 99753711.00 in 0 : 00 : 01.201
Core 1   pass 6 returned result 99753711.00 in 0 : 00 : 01.186
Core 1   pass 7 returned result 99753711.00 in 0 : 00 : 01.201
Core 1   pass 8 returned result 99753711.00 in 0 : 00 : 01.185
Core 1   pass 9 returned result 99753711.00 in 0 : 00 : 01.202
Tester  optimization finished, total passes 10
Statistics      optimization done in 0 minutes 13 seconds
Statistics       shortest pass 0 : 00 : 01.170 , longest pass 0 : 00 : 02.231 , average pass 0 : 00 : 01.299


그 차이는 1881년 이후로 3배입니다. 아마도 다른 곳에서 수정했을 것입니다. 그러나 OrderSend 주제는 대부분 건드리지 않았습니다.

 
fxsaber :

모든 답변은 이 스레드에서만 제공되었습니다. 그들이 뭔가를 한 것 같습니다

자체적으로 Virtual을 통해 결정됩니다.

답장을 보내 주셔서 감사합니다.
 
얘들아. 사이트의 또 다른 오류입니다.
마켓에서 전화로 메시지를 받을 수 없습니다. 목록이 나오지 않습니다.
휴가에는 컴퓨터가 없습니다.

 

최적화 중에 각 에이전트에 대해 128개의 작업 팩이 형성됩니다. 다른 크기의 팩을 형성할 수 있습니까?

상황이 이렇게 되었어요

한 명을 제외한 모든 요원이 임무를 완료했습니다. 그리고 Agent 하나 때문에 Optimization의 끝을 기다려야 합니다. 그러나 모든 에이전트의 작업을 거의 동시에 완료하는 것은 가능했습니다.

예를 들어 스크린샷에서와 같이 8명의 에이전트와 5376개의 작업을 가정합니다. 5376 / 8 = 672 작업. 이것은 각각 336개(=672/2), 168개(672/4) 또는 84개(672/8)개의 작업 팩을 구성할 수 있음을 의미합니다. 그러면 모든 요원이 동시에 결승선에 도착합니다.


값 128은 이 다중성을 고려하지 않습니다. 이 때문에 다중 코어를 사용할 경우 최적화 시간이 늘어납니다.

 

KB로 평가하고 싶었지만 제대로 작동하지 않았습니다. 그리고 최신 출판물에 등급이 전혀 없는 것으로 판단하면 이 문제는 저만의 문제가 아닌 것 같습니다.

글쎄요, 동시에 등급 시스템( 단순 산술 평균)이 많이 부족하다는 것을 인정하고 싶습니다. 결국, 방금 게시되어 등급에 별 5개 등급이 하나 있는 코드는 몇 년 동안 KB에 있던 코드에 별5개 등급 49개와 별4개 등급 하나가 있는 코드보다 높을 것입니다. 공정합니까?

제 생각에는 적어도 그러한 공식이 훨씬 더 공정할 것입니다.

 double R=Average* pow (N, 0.1 );

어디:

R- 원하는 등급

평균 - 산술 평균 점수

N은 등급 수입니다.

 
fxsaber :

최적화 중에 각 에이전트에 대해 128개의 작업 팩이 형성됩니다. 다른 크기의 팩을 형성할 수 있습니까?

상황이 이렇게 되었어요

한 명을 제외한 모든 요원이 임무를 완료했습니다. 그리고 Agent 하나 때문에 Optimization의 끝을 기다려야 합니다. 그러나 모든 에이전트의 작업을 거의 동시에 완료하는 것은 가능했습니다.

예를 들어 스크린샷에서와 같이 8명의 에이전트와 5376개의 작업을 가정합니다. 5376 / 8 = 672 작업. 이것은 각각 336개(=672/2), 168개(672/4) 또는 84개(672/8)개의 작업 팩을 구성할 수 있음을 의미합니다. 그러면 모든 요원이 동시에 결승선에 도착합니다.


값 128은 이 다중성을 고려하지 않습니다. 이 때문에 다중 코어를 사용할 경우 최적화 시간이 늘어납니다.

일반적으로 지지하지만, 상담원의 작업을 자동으로 취소하는 기능(에이전트의 활동을 비활성화하기 위해 버튼을 눌렀을 때 이미 구현되어 있음)을 구현하는 것이 더 정확할 것이라고 생각합니다. 5배 더 많은 작업이 있으며 제거된 수를 포함하여 모든 에이전트 간에 작업을 다시 재분배합니다.

 

모두 좋은 하루! 어리석은 질문에 대해 사과드립니다. 얘들 아, 왼쪽 마우스 버튼이 버튼을 눌렀을 때 Pressed 속성이 true 값을 가져오고 놓을 때 false 값을 갖도록 만드는 방법을 알려주십시오. 지금 상황은 눌렀을 때 아무 일도 일어나지 않지만 눌렀을 때 Pressed가 반대로 바뀌는 상황입니다.

이벤트 핸들러 CButton::OnMouseUp 및 CButton::OnMouseDown을 재정의해야 한다는 것은 이해하지만 어디서 해야할지 상상이 되지 않습니다. 힌트를 주세요. 미리 감사드립니다!