1) 각 Expert Advisor는 초당 몇 번이나 HistorySelect를 요청합니까?
2) 어떤 기능이 느려집니까?
3) 로그?
4) 로봇의 작동 원리는 무엇입니까?
이 질문에 대답하는 것이 매우 어렵습니다. 나 자신도 알아낼 수 없기 때문에 속도가 느려집니다. 프로파일러도 실행되지 않습니다. 지연은 CPU에서 발생하기 때문에 측정값을 속입니다. 불행히도 스냅샷과 캐싱을 통해 환경 기능에 대한 액세스를 줄이는 것은 예상한 효과를 내지 못했습니다. EA를 컴파일할 수 있는 프로파일러를 기다리고 있습니다.
Глобальные переменные создаются путем размещения их объявлений вне описания какой-либо функции. Глобальные переменные определяются на том же уровне, что и функции, т. е. не локальны ни в каком блоке. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе...
Zadol 디버깅 스냅샷에 지쳤습니다. 결국 그는 완벽하게 해냈습니다. 한 명의 고문 - 평화롭고 조용합니다. 2개는 훌륭합니다. 20 - 재앙: CPU가 100% 미만입니다. HistorySelect는 몇 밀리초 동안 지연됩니다.
MT5는 많은 수의 로봇이 동시에 작동하도록 설계되지 않은 것 같습니다.
스트레스 테스트를 작성하고 있습니까 아니면 전문가의 일상적인 작업을 작성하고 있습니까?
하나의 데이터베이스에서 다중 스레드 스트레스 테스트일 가능성이 큽니다. 그래서 나는 반복한다:
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
MT5와 속도
레나트 팻쿨린 , 2020.09.16 12:47
내가 올바르게 이해하면 어드바이저가 아니라 각 기호에 스트레스 테스터가 있습니다 . 이것은 상황을 완전히 바꿉니다. 그리고 초기 조건의 은폐를 보여줍니다.
즉, 8(4+HT) 코어 프로세서에서 논스톱 모드로 지연 없이 16개의 스레드(병렬로 +N 터미널 작업자 스레드)가 하나의 동기화된 기호 기본 개체로 나뉩니다. 틱이 지속적으로 기록되기 때문에 읽기/쓰기 잠금이 뒤섞입니다.
일반적으로 이러한 프로필에서 프로세서 및 스레드 스케줄러의 성능에 따라 각 스레드는 시간의 60%에서 80%까지 대기할 수 있습니다.
그리고 작업 유형에 관계없이.
실제로 20 스레드에서 하나의 리소스에 대한 논스톱 전투를 준비하면 몇 가지 옵션이 있습니다.
삽입물을 주의 깊게 읽으십시오. N 개의 스레드가 하나의 동기화 개체로 충돌하는 경우 빈 대기는 60-80% 수준이 됩니다.
그리고 다중 스레드 효율성의 한계는 8-12 스레드 수준 어딘가에 있을 것입니다. 스레드 수가 증가하면 샘플링 속도가 감소합니다. 2600k에서는 효율성 한계가 훨씬 더 낮습니다.
스트레스 테스트를 작성하고 있습니까 아니면 전문가의 일상적인 작업을 작성하고 있습니까?
보통의
하나의 데이터베이스에서 다중 스레드 스트레스 테스트일 가능성이 큽니다. 그래서 나는 반복한다:
실제로 20 스레드에서 하나의 리소스에 대한 논스톱 전투를 준비하면 몇 가지 옵션이 있습니다.
삽입물을 주의 깊게 읽으십시오. N 개의 스레드가 하나의 동기화 개체로 충돌하는 경우 빈 대기는 60-80% 수준이 됩니다.
그리고 다중 스레드 효율성의 한계는 8-12 스레드 수준 어딘가에 있을 것입니다. 스레드 수가 증가하면 샘플링 속도가 감소합니다. 2600k에서는 효율성 한계가 훨씬 더 낮습니다.
전체 캐시 기록. 그러나 그마저도 HistorySelect(0, INT_MAX)를 호출해야 합니다.
실험으로 거래 논리에 필요한 기록에 대한 모든 참조를 잘라냈습니다. CPU의 부하가 크게 줄었습니다.
일반적으로 로봇이 20대라면 그 안에서 역사를 되돌리는 것은 단 하나의 터미널로 재앙을 일으키게 된다. 여러 터미널에 대해 말할 필요도 없습니다.
그리고 싱크로오브젝트가 역사만이 아니라는 느낌이 있습니다. SymbolInfoTick, CopyTicks 및 다른 것 같습니다.
일반적으로 각각에 10개의 로봇이 있는 5개의 터미널도 시작할 수 없습니다.
제동 프로파일러 보기 - 덤 .
보통의
전체 캐시 기록. 그러나 그마저도 HistorySelect(0, INT_MAX)를 호출해야 합니다.
실험으로 거래 논리에 필요한 기록에 대한 모든 참조를 잘라냈습니다. CPU의 부하가 크게 줄었습니다.
일반적으로 로봇이 20대라면 그 안에서 역사를 되돌리는 것은 단 하나의 터미널로 재앙을 일으키게 된다. 여러 터미널에 대해 말할 필요도 없습니다.
그리고 싱크로오브젝트가 역사만이 아니라는 느낌이 있습니다. SymbolInfoTick, CopyTicks 및 다른 것 같습니다.
일반적으로 각각에 10개의 로봇이 있는 5개의 터미널도 시작할 수 없습니다.
제동 프로파일러 보기 - 덤 .
수치 데이터뿐만 아니라 증거도 없습니다.
1) 각 Expert Advisor는 초당 몇 번이나 HistorySelect 쿼리를 수행합니까?
2) 어떤 기능이 느려집니까?
3) 로그?
4) 로봇의 작동 원리는 무엇입니까?
일반적으로 로봇이 20대라면 그 안에서 역사를 되돌리는 것은 단 하나의 터미널로 재앙을 일으키게 된다. 여러 터미널에 대해 말할 필요도 없습니다.
반대로 각 터미널은 자체 동기화 개체를 지원하고 이에 대한 20명의 Expert Advisors 대기열은 없을 것입니까?
1개의 터미널에서 1개의 로봇을 실행해 보십시오. 결과를 보는 것이 재미있습니다.
반대로 각 터미널은 자체 동기화 개체를 지원하고 이에 대한 20명의 Expert Advisors 대기열은 없을 것입니까?
1개의 터미널에서 1개의 로봇을 실행해 보십시오. 결과를 보는 것이 재미있습니다.
불행히도, 이 실험의 결과는 무엇을 해야 할까요?
불행히도, 이 실험의 결과는 무엇을 해야 할까요?
거래 로봇의 개념을 재고하십시오
추가됨
나는 3개의 터미널 + 1개의 데모를 가지고 있습니다.
각 터미널에는 3~4자의 OnBoorEvent를 사용하는 42개의 로봇이 있으며,
0.5초마다 추가합니다. 타이머가 트리거됨 + 각 로봇은 터미널의 전역 변수에 액세스합니다.
32GB RAM 중 8.34GB를 사용하고 CPU는 6.7%
그리고 거래 세션이 시작될 때 TM5 서버를 제외하고는 속도가 느려지지 않습니다.
수치 데이터뿐만 아니라 증거도 없습니다.
1) 각 Expert Advisor는 초당 몇 번이나 HistorySelect를 요청합니까?
2) 어떤 기능이 느려집니까?
3) 로그?
4) 로봇의 작동 원리는 무엇입니까?
이 질문에 대답하는 것이 매우 어렵습니다. 나 자신도 알아낼 수 없기 때문에 속도가 느려집니다. 프로파일러도 실행되지 않습니다. 지연은 CPU에서 발생하기 때문에 측정값을 속입니다. 불행히도 스냅샷과 캐싱을 통해 환경 기능에 대한 액세스를 줄이는 것은 예상한 효과를 내지 못했습니다. EA를 컴파일할 수 있는 프로파일러를 기다리고 있습니다.
그동안 만지작거리다가 트레이딩 이력이 있는 테스터에서 이런 쓰레기를 발견했습니다.
결과
나는 이 버그를 거의 눈치채지 못했고 재생산을 작성하는 데 한 시간 이상을 보냈습니다. 코드는 멍청하지만 문제를 보여줍니다. 테스터가 아닌 터미널에 비슷한 것이 있는지 - 모르겠습니다.
검색 문자열 : Osibka 013.
PS b2626 - 수정되었습니다.
트레이딩 로봇의 개념을 재고하다
모든 기호를 거래하는 단 하나의 로봇?
모든 기호를 거래하는 단 하나의 로봇?
다른 로봇이지만 모두 거의 같은 방식으로 제작되었습니다.
동시에 하나의 터미널에 42개의 작업이 들어가고, 3-126개에서는 400자 정도입니다.
추가됨
나는 반복한다 (나를 위해)
각 로봇은 3~4자의 OnBoorEvent를 사용하며,
0.5초마다 추가합니다. 타이머가 트리거됨 + 각 로봇이 호출 전역 변수 단말기,
32GB RAM 중 8.34GB를 사용하고 CPU - 6.7%
그리고 거래 세션이 시작될 때 TM5 서버(또는 Opener의 하드웨어)를 제외하고는 속도가 느려지지 않습니다.
다른 로봇이지만 모두 거의 같은 방식으로 제작되었습니다.
동시에 하나의 터미널에 42개의 작업이 들어가고, 3-126개에서는 400자 정도입니다.
추가됨
나는 반복한다 (나를 위해)
각 로봇은 3~4자의 OnBoorEvent를 사용하며,
0.5초마다 추가합니다. 타이머가 트리거됨 + 각 로봇이 호출 전역 변수 단말기,
32GB RAM 중 8.34GB를 사용하고 CPU - 6.7%
그리고 거래 세션이 시작될 때 TM5 서버(또는 Opener의 하드웨어)를 제외하고는 속도가 느려지지 않습니다.
이상해요, 저와는 반대에요.
터미널 4개, Expert Advisors 수를 약 200명 정도로 줄이고, OnBook은 모든 것을 버리고, OnTick으로 다시 전환하고, 하드웨어를 업데이트했지만 문제는 여전히 fxsaber와 동일합니다.
하지만 오크리티에는 오랜만에 아침 브레이크가 없다. 그리고 그들이 무엇이었습니까! 때때로 최대 75초에 도달했습니다. :)