최근 빌드에서 틱 스트림을 수신하는 것은 이론적으로조차 효과가 없습니다. 실제로 SymbolInfoTick은 이미 캐시와 함께 작동 하지만 개별 시민은 계속해서 검은 고양이를 찾습니다.
그리고 그는 시험에서 80%도 얻지 못했습니다. 4개의 코어에 6개의 에이전트가 있습니다. 100% 보장됩니다.
유일한 질문은 그의 시스템의 작업 스케줄러가 이러한 상황에 대처하는 방법입니다. 동시에 책임은 터미널의 구현이라는 진술이 만들어집니다.
저것들. 컴퓨터가 측정할 수 없을 정도로 로드되고 말 그대로 모든 것이 느려질 때 상황이 인위적으로 만들어지고 "오, 봐요, 터미널이 때때로 거기에 지연이 있는 이유는 무엇입니까?"라는 스타일로 진술됩니다.
그런 조건에서도 "약 0.01%"라는 사실에 눈을 감자. 디테일은 지옥에! "병원의 평균 온도는 아무도 괴롭히지 않는다", "지연은 거래 중에 문제를 일으킨다", "우리는 HFT를 원한다"라고 말하면 충분하다.
게다가 우리는 HFT 가 오래된 사무실 데스크탑이나 죽은 가상 머신에 대한 20명의 전문가가 되기를 원합니다.
PS PositionSelectByTicket() 구현 시 액세스 동기화를 통해 공유 리소스에 무조건 액세스할 수 있습니다. 그리고 각 통화에서 위치를 선택하지 않으면 이전 가격을 읽는 것입니다. SymbolInfoDouble을 통해 "스냅샷"을 만드는 것이 더 쉬웠습니다.
고맙습니다
내 질문이 제기되었습니다. 왜냐하면 반년 전 나는 코드를 최적화하고 시스템 기능의 속도를 테스트했고, 반년 전에는 SymbolInfoDouble이 SymbolInfoTick보다 느렸다.
그러나 일반적으로 당신은 아마도 진실을 말하고 있을 것입니다. 오늘 저는 특히 멀티 코어 프로세서의 캐시에 대한 몇 가지 기사를 검색했습니다(저는 오랫동안 이 정보에 관심이 없었습니다).
결론은 ALU가 L1 캐시에서 독점적으로 데이터를 수신한다는 것입니다. 이는 매우 작습니다. 프로세서를 최대한 로드하면 실제로 테스트가 운영 체제 테스트 + 속도 테스트로 바뀝니다 . 프로세서 캐시 (로드, 예측 L1 + L3 데이터), 코드(애플리케이션)의 성능 테스트에서는 제외
최근 빌드에서는 틱 스트림을 수신해도 이론적으로 영향을 미치지 않습니다. 실제로 SymbolInfoTick은 이미 캐시와 함께 작동 하지만 개별 시민은 계속해서 검은 고양이를 찾습니다.
개별 시민이 얻은 와이드 팬츠부터 동일한 조건에서 목발이 표준 기능보다 더 빠르게 작동한다는 것을 보여주는 귀중한 화물 MQL 코드의 사본입니다 .
그러나 당신은 당신의 기능이 좋다고 주장합니다. 단지 사용 조건에 제한이 있을 뿐입니다.
그리고 그는 시험에서 80%도 얻지 못했습니다. 4개의 코어에 6개의 에이전트가 있습니다. 100% 보장됩니다.
유일한 질문은 그의 시스템의 작업 스케줄러가 이러한 상황에 대처하는 방법입니다. 동시에 책임은 터미널의 구현이라는 진술이 만들어집니다.
저것들. 컴퓨터가 측정할 수 없을 정도로 로드되고 말 그대로 모든 것이 느려질 때 상황이 인위적으로 만들어지고 "오, 봐요, 터미널이 때때로 거기에 지연이 있는 이유는 무엇입니까?"라는 스타일로 진술됩니다.
6/8 - 속도가 느려지지 않습니다. 브라우저, 컴파일, 디버깅 등 브레이크의 힌트가 없는 평행 쟁기.
하지만 지금은 의도적으로 모든 것을 끄고 에이전트의 4/8만 남겼습니다. 상황은 기능의 브레이크로 변경되지 않았습니다.
게다가 우리는 HFT 가 오래된 사무실 데스크탑이나 죽은 가상 머신에 대한 20명의 전문가가 되기를 원합니다.
빠른 자동차가 사용되었습니다. 그리고 이미 6개의 차트만이 제동을 걸었습니다.
PS PositionSelectByTicket() 구현 시 액세스 동기화를 통해 공유 리소스에 무조건 액세스할 수 있습니다. 그리고 각 통화에서 위치를 선택하지 않으면 이전 가격을 읽는 것입니다. SymbolInfoDouble을 통해 "스냅샷"을 만드는 것이 더 쉬웠습니다.
실시간 커널이 어떻게든 도움이 될까요?
분명히 더 많은 코어를 설치하고 상황을 단일 코어 다운로드의 100%로 가져오지 마십시오.
동화를 믿지 마세요. 프로세서와 스레드 스케줄러는 상상하는 대로 작동하지 않습니다.
최근 빌드에서 틱 스트림을 수신하는 것은 이론적으로조차 효과가 없습니다. 실제로 SymbolInfoTick은 이미 캐시와 함께 작동 하지만 개별 시민은 계속해서 검은 고양이를 찾습니다.
그리고 그는 시험에서 80%도 얻지 못했습니다. 4개의 코어에 6개의 에이전트가 있습니다. 100% 보장됩니다.
유일한 질문은 그의 시스템의 작업 스케줄러가 이러한 상황에 대처하는 방법입니다. 동시에 책임은 터미널의 구현이라는 진술이 만들어집니다.
저것들. 컴퓨터가 측정할 수 없을 정도로 로드되고 말 그대로 모든 것이 느려질 때 상황이 인위적으로 만들어지고 "오, 봐요, 터미널이 때때로 거기에 지연이 있는 이유는 무엇입니까?"라는 스타일로 진술됩니다.
그런 조건에서도 "약 0.01%"라는 사실에 눈을 감자. 디테일은 지옥에! "병원의 평균 온도는 아무도 괴롭히지 않는다", "지연은 거래 중에 문제를 일으킨다", "우리는 HFT를 원한다"라고 말하면 충분하다.
게다가 우리는 HFT 가 오래된 사무실 데스크탑이나 죽은 가상 머신에 대한 20명의 전문가가 되기를 원합니다.
PS PositionSelectByTicket() 구현 시 액세스 동기화를 통해 공유 리소스에 무조건 액세스할 수 있습니다. 그리고 각 통화에서 위치를 선택하지 않으면 이전 가격을 읽는 것입니다. SymbolInfoDouble을 통해 "스냅샷"을 만드는 것이 더 쉬웠습니다.
고맙습니다
내 질문이 제기되었습니다. 왜냐하면 반년 전 나는 코드를 최적화하고 시스템 기능의 속도를 테스트했고, 반년 전에는 SymbolInfoDouble이 SymbolInfoTick보다 느렸다.
그러나 일반적으로 당신은 아마도 진실을 말하고 있을 것입니다. 오늘 저는 특히 멀티 코어 프로세서의 캐시에 대한 몇 가지 기사를 검색했습니다(저는 오랫동안 이 정보에 관심이 없었습니다).
여기에 짧은 기사가 있습니다 https://i2hard.ru/publications/25666/
결론은 ALU가 L1 캐시에서 독점적으로 데이터를 수신한다는 것입니다. 이는 매우 작습니다. 프로세서를 최대한 로드하면 실제로 테스트가 운영 체제 테스트 + 속도 테스트로 바뀝니다 . 프로세서 캐시 (로드, 예측 L1 + L3 데이터), 코드(애플리케이션)의 성능 테스트에서는 제외
fxsaber , 작업 관리자에서 에이전트에 대해 낮은 우선 순위를 설정하고 MT5에 대해 높은 우선 순위를 설정하면 어떻게 될까요?
모든 OS 프로그램/스레드에 대해 특정 CPU 스레드 형태로 리소스 할당을 차단하는 유틸리티를 찾을 수 없습니다. 그렇지 않으면 MT5에 대한 스레드를 예약하고 다른 프로그램에 대한 작업을 자동으로 차단할 수 있습니다. 이론적으로 지연을 줄일 수 있습니다.
최근 빌드에서는 틱 스트림을 수신해도 이론적으로 영향을 미치지 않습니다. 실제로 SymbolInfoTick은 이미 캐시와 함께 작동 하지만 개별 시민은 계속해서 검은 고양이를 찾습니다.
개별 시민이 얻은 와이드 팬츠부터 동일한 조건에서 목발이 표준 기능보다 더 빠르게 작동한다는 것을 보여주는 귀중한 화물 MQL 코드의 사본입니다 .
그러나 당신은 당신의 기능이 좋다고 주장합니다. 단지 사용 조건에 제한이 있을 뿐입니다.
그리고 그는 시험에서 80%도 얻지 못했습니다. 4개의 코어에 6개의 에이전트가 있습니다. 100% 보장됩니다.
유일한 질문은 그의 시스템의 작업 스케줄러가 이러한 상황에 대처하는 방법입니다. 동시에 책임은 터미널의 구현이라는 진술이 만들어집니다.
저것들. 컴퓨터가 측정할 수 없을 정도로 로드되고 말 그대로 모든 것이 느려질 때 상황이 인위적으로 만들어지고 "오, 봐요, 터미널이 때때로 거기에 지연이 있는 이유는 무엇입니까?"라는 스타일로 진술됩니다.
6/8 - 속도가 느려지지 않습니다. 브라우저, 컴파일, 디버깅 등 브레이크의 힌트가 없는 평행 쟁기.
하지만 지금은 의도적으로 모든 것을 끄고 에이전트의 4/8만 남겼습니다. 상황은 기능의 브레이크로 변경되지 않았습니다.
게다가 우리는 HFT 가 오래된 사무실 데스크탑이나 죽은 가상 머신에 대한 20명의 전문가가 되기를 원합니다.
빠른 자동차가 사용되었습니다. 그리고 이미 6개의 차트만이 제동을 걸었습니다.
PS PositionSelectByTicket() 구현 시 액세스 동기화를 통해 공유 리소스에 무조건 액세스할 수 있습니다. 그리고 각 통화에서 위치를 선택하지 않으면 이전 가격을 읽는 것입니다. SymbolInfoDouble을 통해 "스냅샷"을 만드는 것이 더 쉬웠습니다.
그리고 나는 이것을 사용합니다.
터미널에 문제가 있을 때 전투 성능의 속도에 대해 이야기할 수 있습니다.
Expert Advisor는 모든 금융 상품을 스캔하고 주어진 패턴을 찾습니다.
금융 상품에 부딪혀 단단히 매달립니다!!!
도움말의 코드 , 단계, 문제가 있는 핀 도구 및 타이머만 적었습니다.
작업 결과:
스크립트 실행이 끝날 때까지 기다리지 않았습니다.
터미널에 이런 버그가 있는 한 전투 성능은 말할 것도 없다!!!
금융 상품이 시장 개요에 들어갈 때 적어도 모든 자산과 역사 시작 날짜가 표시될 것으로 예상되었습니다. 서버에 기록이 없으면
SeriesInfoInteger(symbol,period,SERIES_FIRSTDATE,first_date)
즉시 NULL을 반환해야 하는데 실행 시간이 18446744073475877138인 이유는 무엇입니까?
어쩌면 내가 무엇을 몰라? CopyXXX 기능도 16-29초 동안 멈춥니다!!!
브로커가 3000-6000 금융 상품을 가지고 있다면 그것은 정상이 아닙니다.
어쩌면 내가 무엇을 몰라? CopyXXX 기능도 16-29초 동안 멈춥니다!!!
브로커가 3000-6000 금융 상품을 가지고 있으면 정상이 아닙니다.
바는 악이다. 따라서 다른 스레드에 게시하십시오.
바는 악이다. 따라서 다른 스레드에 게시하십시오.
프로그래밍 방식으로 금융 상품을 선택하고 수세기 동안 고정되지 않는 방법을 알고 있습니까?
프로그래밍 방식으로 금융 상품을 선택하고 수세기 동안 고정되지 않는 방법을 알고 있습니까?
이 문제에 직면하지 않았습니다.
fxsaber , 작업 관리자에서 에이전트에 대해 낮은 우선 순위를 설정하고 MT5에 대해 높은 우선 순위를 설정하면 어떻게 될까요?
특정 CPU 스레드의 형태로 리소스의 모든 OS 프로그램/스레드에 대한 할당을 차단하는 유틸리티를 찾을 수 없습니다. 그렇지 않으면 MT5에 대한 스레드를 예약하고 다른 프로그램에 대한 점유를 자동으로 차단할 수 있습니다. 이론적으로 지연을 줄일 수 있습니다.
모든 에이전트에 대해 가장 낮은 우선 순위를 설정합니다.
도움이 되지 않습니다.
위협 결과는 실행 중인 어드바이저의 수에 영향을 받습니다.
개발자 여러분, MQL_MEMORY_USED가 어떻게 계산되는지 알려주실 수 있나요?
모든 EA 변수가 차지하는 메모리를 계산했습니다.
이것은 10% 미만입니다. 내가 올바르게 이해한다면 MQL_MEMORY_USED에는 History 캐시와 CopyTicks 캐시가 포함됩니다. 그러나 여전히 훨씬 덜 걸릴 것입니다.
동시에 병렬 고문은 몇 배 적게 먹습니다. 원리는 동일하지만.
일반적으로 이 값에는 무엇이 포함됩니까?
추신: 어드바이저와 함께 템플릿을 저장하고 동일한 차트에 적용하여 재부팅했습니다. 그렇게 되었다.
메모리 소비가 거의 10배 정도 변경되었습니다. 그것이 무엇을 의미하는지 설명하기가 어렵습니다.