MT5 코드 프로파일러 정보 - 페이지 5 1234567 새 코멘트 Renat Fatkhullin 2021.09.10 10:03 #41 나를 혼란스럽게 만드는 유일한 것은 두 번째 슬립입니다. 다른 모든 것은 유효합니다. 알아내자 fxsaber 2021.09.10 10:46 #42 Renat Fatkhullin # : 나를 혼란스럽게 만드는 유일한 것은 두 번째 슬립입니다. 다른 모든 것은 유효합니다. 분명히 프로파일러는 몇 밀리초보다 빠르게 실행되는 코드의 속도를 높이는 목적에는 적합하지 않습니다. fxsaber 2021.09.10 10:59 #43 #include <fxsaber\Usage\Usage.mqh> // https://www.mql5.com/ru/code/33875 const bool Init = EventSetMillisecondTimer ( 1 ); void Sleep2( uint Interval ) { const ulong StartTime = GetMicrosecondCount (); Interval *= 1000 ; while ( GetMicrosecondCount () - StartTime < Interval) ; } #define Sleep Sleep2 void f() { Sleep ( 10 ); } void OnTimer () { _USAGE f(); Sleep ( 20 ); } EA는 30ms 동안 슬립 상태에 있으며 프로파일러는 3개의 덧셈과 2개의 곱셈이 있는 함수에 최대 13%가 있음을 보여줍니다! 그리고 다음은 b2593이 보여주는 것입니다. 거기 제로! 왜냐하면 실제로는 0이 있기 때문입니다. 또한 두 번째 보고서에 따르면 모든 것이 매우 명확합니다. 맹세하지 말고 개선하기 위해 이해합시다. fxsaber 2021.09.10 11:06 #44 fxsaber # : 프로파일러는 그 중 13%가 3개의 덧셈과 2개의 곱셈 이 있는 함수에 있음을 보여줍니다! 그래서 나는 60%로 추정되는 프로파일링이 "3 추가 및 2"에 있을 때 OnTick에서 완전한 통과가 평균 3ms(많은 계산 및 거래 환경 작업이 있음)가 걸리는 전투 고문이 어떤 이유로 곱하기". 그러한 간결한 예를 보기 위해 여기까지 왔습니다. MT5에서 이전 프로파일러를 사용하고 싶지만 여기서는 빌드로 그런 춤을 추어야 합니다. 여전히 실행에 실패했습니다. Ilyas 2021.09.10 13:12 #45 fxsaber # : 간단한 예제를 사용하여 프로파일러 데이터의 해석을 도와주시기 바랍니다. 모든 것이 미친 헛소리처럼 보입니다. 수면(2)이 완전히 누락되었습니다. 어떤 이유로 USAGE는 Sleep(1)보다 몇 배나 더 오래 살아남습니다. 열심히 들어가려고 하는데 아직 안나오네요. ZY 수면 교체를 시도했습니다. 이해할 수 없는 모든 프로파일러 값도 있습니다. 통화 보고서에는 무엇이 있습니까? 주어진 코드가 스크린샷의 보고서와 일치하지 않는다는 인상을 받았습니다. 프로파일러가 실행되는 동안 코드를 정확히 수정하지 않았습니까? fxsaber 2021.09.10 13:37 #46 Ilyas # : 통화 보고서에는 무엇이 있습니까? 주어진 코드가 스크린샷의 보고서와 일치하지 않는다는 인상을 받았습니다. 프로파일러가 실행되는 동안 코드를 정확히 수정하지 않았습니까? 통치하지 않았습니다. 2021.09 . 10 11 : 46 : 48.616 MQL5 profiler 8064 total measurements, 0 / 0 errors, 2014 kb of stack memory analyzed ( 11256 / 1073741824 ) 2021.09 . 10 11 : 46 : 48.616 MQL5 profiler 49442 total function frames found ( 9141 mql5 code, 6461 built-in, 11590 other, 22250 system) fxsaber 2021.10.11 01:44 #47 프로파일러의 결과를 해독하는 데 도움을 요청합니다. #include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006 void OnStart () { double Res = 0 ; const int Total = OrdersHistoryTotal(); for ( int i = 0 ; i < Total; i++) if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY)) Res += OrderProfit(); } MQL 프로파일러 보고서 - \MQL5\Experts\Test19.mq5 기능 라인 총 CPU 백분율 자체 CPU 백분율 MT4ORDERS::GetHistoryPositionData 1093 7 50.00% 2 14.29% MT4ORDERS::Order.CloseTimeMsc = ::HistoryDealGetInteger(티켓, DEAL_TIME_MSC); 1109 하나 12.50% 하나 50.00% } 1360 하나 12.50% 하나 50.00% return(티켓 && ((::HistoryOrderGetInteger(티켓, ORDER_TICKET) == 티켓) || 824 2 25.00% 0 0.00% WHILE(_B2(MT4ORDERS::HistorySelectOrder(OrderTicket))) // https://www.mql5.com/ru/forum/304239#comment_10710403 1151 하나 12.50% 0 0.00% 시작 시간 = ::GetMicrosecondCount(); 1370 하나 12.50% 0 0.00% 더블 OrderPriceOpen = ::HistoryOrderGetDouble(주문 티켓, ORDER_PRICE_OPEN); 1182 하나 12.50% 0 0.00% MT4ORDERS::Order.TicketID = ::HistoryDealGetInteger(MT4ORDERS::Order.Ticket, DEAL_POSITION_ID); 1096 하나 12.50% 0 0.00% CHashMap<ulong,ulong>::크기 조정 514 하나 7.14% 하나 7.14% m_entries[i].next = m_buckets[버킷]; 526 하나 12.50% 하나 100.00% ArrayFill(m_buckets,0,new_size,-1); 518 7 87.50% 0 0.00% @global_initializations 하나 7.14% 하나 7.14% 클래스 MT4HISTORY 428 하나 50.00% 하나 100.00% 정적 상수 부울 MT4ORDERS::IsTester = ::MQLInfoInteger(MQL_TESTER); 2496 하나 50.00% 0 0.00% MT4HISTORY::새로고침 히스토리 588 6 42.86% 0 0.00% this.Tickets[this.Amount - 1] = (long)TicketDeal; 626 2 28.57% 0 0.00% if (_B2(::HistorySelect(0, INT_MAX))) 590 삼 42.86% 0 0.00% ::HistoryDealGetInteger((TicketDeal = ::HistoryDealGetTicket(this.LastTotalDeals)), DEAL_TIME_MSC) : LONG_MAX; 636 하나 14.29% 0 0.00% return(!::HistoryOrderGetInteger(티켓, ORDER_POSITION_ID) || (::HistoryOrderGetDouble(티켓, ORDER_VOLUME_CURRENT) && 660 하나 14.29% 0 0.00% CHashMap<ulong,ulong>::추가 294 하나 7.14% 0 0.00% 크기 조정(new_size); 600 하나 50.00% 0 0.00%if((후보 % 제수) == 0) 40 하나 50.00% 0 0.00% 시작하다 삼 열셋 92.86% 0 0.00% _B2(this.RefreshHistory()); 763 6 40.00% 0 0.00% _BV2(MT4ORDERS::GetHistoryPositionData(티켓)) 1872년 7 46.67% 0 0.00% return(_B2(MT4ORDERS::MT4OrderSelect(인덱스, 선택, 풀))); 2588 2 13.33% 0 0.00% MQL 프로파일러 보고서 - \MQL5\Experts\Test19.mq5 기능 라인 총 CPU 백분율 자체 CPU 백분율 HistoryOrderGetInteger 삼 21.43% 삼 21.43% WHILE(_B2(MT4ORDERS::HistorySelectOrder(OrderTicket))) // https://www.mql5.com/ru/forum/304239#comment_10710403 1151 하나 7.14% 삼 21.43% return(티켓 && ((::HistoryOrderGetInteger(티켓, ORDER_TICKET) == 티켓) || 824 2 14.29% 삼 21.43% 기록선택 삼 21.43% 삼 21.43% if (_B2(::HistorySelect(0, INT_MAX))) 590 삼 21.43% 삼 21.43% HistoryOrderGetDouble 2 14.29% 2 14.29% 더블 OrderPriceOpen = ::HistoryOrderGetDouble(주문 티켓, ORDER_PRICE_OPEN); 1182 하나 7.14% 2 14.29% return(!::HistoryOrderGetInteger(티켓, ORDER_POSITION_ID) || (::HistoryOrderGetDouble(티켓, ORDER_VOLUME_CURRENT) && 660 하나 7.14% 2 14.29% MT4ORDERS::GetHistoryPositionData 1093 7 50.00% 2 14.29% _BV2(MT4ORDERS::GetHistoryPositionData(티켓)) 1872년 7 50.00% 2 14.29% GetMicrosecondCount 하나 7.14% 하나 7.14% 시작 시간 = ::GetMicrosecondCount(); 1370 하나 7.14% 하나 7.14% CHashMap<ulong,ulong>::크기 조정 514 하나 7.14% 하나 7.14% 크기 조정(new_size); 600 하나 7.14% 하나 7.14% HistoryDealGetInteger 하나 7.14% 하나 7.14% ::HistoryDealGetInteger((TicketDeal = ::HistoryDealGetTicket(this.LastTotalDeals)), DEAL_TIME_MSC) : LONG_MAX; 636 하나 7.14% 하나 7.14% @global_initializations 하나 7.14% 하나 7.14% CHashMap<ulong,ulong>::추가 294 하나 7.14% 0 0.00% this.Tickets[this.Amount - 1] = (long)TicketDeal; 626 하나 7.14% 0 0.00% 무효 OnStart() 삼 열셋 92.86% 0 0.00% MT4HISTORY::새로고침 히스토리 588 6 42.86% 0 0.00% _B2(this.RefreshHistory()); 763 6 42.86% 0 0.00% About the MT5 code 프로그래머는 아니지만 어드바이저 양성에 트레이딩의 머신러닝: 이론, 모델, Andrey Khatimlianskii 2021.10.11 03:15 #48 fxsaber # : 프로파일러의 결과를 해독하는 데 도움을 요청합니다. 명확하지 않은 것은 무엇입니까? 나는 일반적으로 총 CPU를 기준으로 정렬하고 프로그램 전체의 속도를 저하시키는 요인을 확인합니다. 그것은 유용합니다. 역사상 5700건의 주문이 있었고, 첫 출시 때 거의 빈 보고서를 받았고 다음과 같이 받았습니다. 무엇보다도 그들은 HistoryDealGetInteger(모든 호출이 36% 차지)와 HistorySelect(27%)를 먹습니다. 그런 다음 HistoryOrderGetInteger(18%) 및 global_initialization(9%)이 제공됩니다. 나머지 10%는 나머지 코드로 이동했습니다. 그러나 이렇게 빠른 단일 실행에서는 결과를 볼 가치가 없습니다. IMHO. About the MT5 code MQL4 및 MQL5에 대한 트레이딩의 머신러닝: 이론, 모델, fxsaber 2021.10.11 07:39 #49 Andrey Khatimlianskii # : 명확하지 않은 것은 무엇입니까? 해석상의 문제. 무엇을, 어디서, 어떻게 감속하는지에 대한 이해가 없습니다. 나는 일반적으로 총 CPU를 기준으로 정렬하고 프로그램 전체의 속도를 저하시키는 요인을 확인합니다. 그것은 유용합니다. 5,700건의 주문이 기록된 상태에서 첫 실행에서 거의 빈 보고서를 받았고 다음은 다음과 같습니다. 무엇보다도 그들은 HistoryDealGetInteger(모든 호출이 36% 차지)와 HistorySelect(27%)를 먹습니다. 그런 다음 HistoryOrderGetInteger(18%) 및 global_initialization(9%)이 제공됩니다. 나머지 10%는 나머지 코드로 이동했습니다. 자세한 답변 감사합니다. 왜 45% 라인과 나머지는 고려되지 않았는지 이해하지 못했습니다. fxsaber 2021.10.11 07:46 #50 Andrey Khatimlianskii # : 그러나 이렇게 빠른 단일 실행에서는 결과를 볼 가치가 없습니다. IMHO. 큰 이야기에 20회 반복을 추가했습니다. 29.41%(무엇으로부터 명확하지 않음)는 반환 후 메서드의 닫는 괄호에 해당합니다. 해석하기 어렵습니다. 1234567 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
나를 혼란스럽게 만드는 유일한 것은 두 번째 슬립입니다. 다른 모든 것은 유효합니다.
분명히 프로파일러는 몇 밀리초보다 빠르게 실행되는 코드의 속도를 높이는 목적에는 적합하지 않습니다.
EA는 30ms 동안 슬립 상태에 있으며 프로파일러는 3개의 덧셈과 2개의 곱셈이 있는 함수에 최대 13%가 있음을 보여줍니다!
그리고 다음은 b2593이 보여주는 것입니다.
거기 제로! 왜냐하면 실제로는 0이 있기 때문입니다. 또한 두 번째 보고서에 따르면 모든 것이 매우 명확합니다.
맹세하지 말고 개선하기 위해 이해합시다.
프로파일러는 그 중 13%가 3개의 덧셈과 2개의 곱셈 이 있는 함수에 있음을 보여줍니다!
그래서 나는 60%로 추정되는 프로파일링이 "3 추가 및 2"에 있을 때 OnTick에서 완전한 통과가 평균 3ms(많은 계산 및 거래 환경 작업이 있음)가 걸리는 전투 고문이 어떤 이유로 곱하기". 그러한 간결한 예를 보기 위해 여기까지 왔습니다.
MT5에서 이전 프로파일러를 사용하고 싶지만 여기서는 빌드로 그런 춤을 추어야 합니다. 여전히 실행에 실패했습니다.
간단한 예제를 사용하여 프로파일러 데이터의 해석을 도와주시기 바랍니다.
모든 것이 미친 헛소리처럼 보입니다.
열심히 들어가려고 하는데 아직 안나오네요.
ZY 수면 교체를 시도했습니다.
이해할 수 없는 모든 프로파일러 값도 있습니다.
통화 보고서에는 무엇이 있습니까?
주어진 코드가 스크린샷의 보고서와 일치하지 않는다는 인상을 받았습니다.
프로파일러가 실행되는 동안 코드를 정확히 수정하지 않았습니까?
통화 보고서에는 무엇이 있습니까?
주어진 코드가 스크린샷의 보고서와 일치하지 않는다는 인상을 받았습니다.
프로파일러가 실행되는 동안 코드를 정확히 수정하지 않았습니까?
통치하지 않았습니다.
프로파일러의 결과를 해독하는 데 도움을 요청합니다.
프로파일러의 결과를 해독하는 데 도움을 요청합니다.
명확하지 않은 것은 무엇입니까?
나는 일반적으로 총 CPU를 기준으로 정렬하고 프로그램 전체의 속도를 저하시키는 요인을 확인합니다. 그것은 유용합니다.
역사상 5700건의 주문이 있었고, 첫 출시 때 거의 빈 보고서를 받았고 다음과 같이 받았습니다.
무엇보다도 그들은 HistoryDealGetInteger(모든 호출이 36% 차지)와 HistorySelect(27%)를 먹습니다. 그런 다음 HistoryOrderGetInteger(18%) 및 global_initialization(9%)이 제공됩니다.
나머지 10%는 나머지 코드로 이동했습니다.
그러나 이렇게 빠른 단일 실행에서는 결과를 볼 가치가 없습니다. IMHO.
명확하지 않은 것은 무엇입니까?
해석상의 문제. 무엇을, 어디서, 어떻게 감속하는지에 대한 이해가 없습니다.
나는 일반적으로 총 CPU를 기준으로 정렬하고 프로그램 전체의 속도를 저하시키는 요인을 확인합니다. 그것은 유용합니다.
5,700건의 주문이 기록된 상태에서 첫 실행에서 거의 빈 보고서를 받았고 다음은 다음과 같습니다.
무엇보다도 그들은 HistoryDealGetInteger(모든 호출이 36% 차지)와 HistorySelect(27%)를 먹습니다. 그런 다음 HistoryOrderGetInteger(18%) 및 global_initialization(9%)이 제공됩니다.
나머지 10%는 나머지 코드로 이동했습니다.
자세한 답변 감사합니다. 왜 45% 라인과 나머지는 고려되지 않았는지 이해하지 못했습니다.
그러나 이렇게 빠른 단일 실행에서는 결과를 볼 가치가 없습니다. IMHO.
큰 이야기에 20회 반복을 추가했습니다.
29.41%(무엇으로부터 명확하지 않음)는 반환 후 메서드의 닫는 괄호에 해당합니다. 해석하기 어렵습니다.