라이브러리: MT4Orders 퀵리포트 - 페이지 3

 
Forester #:

어떤 브라우저? 트랜잭션이 몇 개인가요? 100,000개가 있고 생각하는 데 10초 정도 걸리지만 표시가 됩니다.

Chrome. 40,000개 라인. 두 번째 클릭부터 가끔 차트가 나타납니다. 회전율 그래픽 형성은 CPU를 가장 많이로드합니다.

 
Варианты улучшения:
  • 보고서를 바이너리 파일에 업로드하고 브라우저에서 읽어볼 수 있으며, 아마도 많은 수의 줄로 작업할 수 있을 것입니다. 그러나 보안 제한으로 인해 바이너리 파일을 수동으로 선택해야 합니다. 즉, 테스트 직후에는 보고서를 자동으로 열 수 없습니다.
여기서는 파일을 통해 수행됩니다. 자동 열기에는 문제가 없습니다.

.
  • MT4Orders뿐만 아니라 일반 MQL5 코드를 통해서도 거래를 업로드 할 수 있다고 생각합니다.

어려울 것입니다.

MQL5 Ордера истории - Извлечь цену открытия и закрытия каждой транзакции в истории сделок
MQL5 Ордера истории - Извлечь цену открытия и закрытия каждой транзакции в истории сделок
  • 2023.11.20
  • www.mql5.com
Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам. Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Идентификатор позиции указывается в каждом ордере , которая ее открыла
 
fxsaber #:

Chrome. 40만 줄. 두 번째 클릭부터 때때로 차트가 나타납니다. 회전율 그래픽 형성은 CPU에 가장 많은 부하를 줍니다.

Mozilla를 사용해보세요. 최대 100,000까지 표시되고 증가합니다. 700,000을 시도했지만 더 이상 확대 할 수없고 모든 메모리를 소비합니다.

.
fxsaber #:
여기에서는 파일을 통해 수행됩니다. 자동 열기에 문제가 없습니다.

며칠이 걸릴 것입니다. 5 백만이 충분하지 않으면 연기하겠습니다. 지금은 관련이 없습니다.

fxsaber #:
힘들겠네요.

서랍에도 있습니다. 줄 추가

#include <MT4Orders.mqh>
더 쉽게)
 
Forester #:

5백만 달러로 충분하지 않다면

왜 이렇게 HTML 문으로 작업해야 할까요?

 
참고로 이 라이브러리는 90% 크로스 플랫폼으로 MT4와 MT5에서 작동합니다. MT4에서도 실행되도록 하려면 약간의 작업이 필요합니다.
 
이 라이브러리는 시그널 서비스의 잠긴 계정에 대한 html 명세서를 가져오기 위해 변경할 필요가 없습니다.
 
fxsaber #:
참고로 라이브러리는 90% 크로스 플랫폼으로 MT4와 MT5에서 작동합니다. MT4에서 작동하게 하려면 약간의 작업이 필요합니다.
누군가 완성하면 모든 사람이 사용할 수 있도록 코드를 업데이트하겠습니다.

.
fxsaber #:
여기서는 파일을 통해 이루어집니다. 자동 열림에는 문제가 없습니다.

HTML 페이지에서 호출되는 JavaScript 텍스트 파일을 만듭니다 (그런데 별도의 파일에 저장할 수는 없지만 내 버전에서와 같이 페이지 코드에 추가 할 수 있습니다).
텍스트 파일이 아닌 바이너리 파일에 데이터를 저장하는 변형을 설명했습니다. JS 코드가 아니기 때문에 자바스크립트 파일로 자동 로드할 수 없으므로 디스크에서 이 파일을 선택해야 읽기를 시작할 수 있습니다. 그러면 560만 줄 이상을 읽을 수 있을 것입니다.

fxsaber #:

왜 이런 HTML 통계로 작업하나요?

지금은 그럴 필요가 없습니다. 그러나 필요성이 발생하면 이를 수행하는 방법에 대한 계획이 있습니다.

fxsaber #:

몰랐네요. 안타깝게도이 google.charts는 매우 느리고 highcharts와 비교할 때 불편합니다.

나는 그것을 highchart로 변경했습니다. google.charts는 700,000개의 거래에서 멈춘 반면, highchart는 특별한 브레이크 없이 거래를 표시하고 개별 거래로 확대할 수 있었습니다.

서수 - 균일 단계(MetaQuotes 테스터 보고서에서와 같이) 또는 로그 - 로그 스케일(기하급수적으로 잔액이 증가하는 경우 유용할 수 있음)을 선택할 수 있습니다. 이러한 항목을 변경한 후 선택한 옵션을 적용하려면 원하는 차트를 다시 클릭해야 합니다.
 
Forester #:
누군가 완성하면 모든 사람이 사용할 수 있도록 코드를 업데이트하겠습니다.
#ifndef __MQL5__

#property strict

long OrderOpenTimeMsc( void ) { return(OrderOpenTime() * 1000); }
long OrderCloseTimeMsc( void ) { return(OrderCloseTime() * 1000); }

double OrderOpenPriceRequest( void ) {return(OrderOpenPrice()); }
double OrderClosePriceRequest( void ) {return(OrderClosePrice()); }

enum ENUM_ACCOUNT_MARGIN_MODE
{
  ACCOUNT_MARGIN_MODE_RETAIL_NETTING,
  ACCOUNT_MARGIN_MODE_EXCHANGE,
  ACCOUNT_MARGIN_MODE_RETAIL_HEDGING  
};

#define SYMBOL_CUSTOM (-1)

#define ACCOUNT_MARGIN_MODE (-1)
#define ACCOUNT_CURRENCY_DIGITS (-2)

long AccountInfoInteger2( const int Property )
{
  switch (Property)
  {
    case ACCOUNT_MARGIN_MODE:
      return(ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
    case ACCOUNT_CURRENCY_DIGITS:
      return(2);      
  }
  
  return(AccountInfoInteger(Property));
}

#define AccountInfoInteger AccountInfoInteger2

// 문자열 BASEPATH_ = (::터미널정보 문자열(터미널_데이터_경로) + "\\MQL4\\파일\\\\");

#endif // #ifndef __MQL5__

#define  REPORT_BROWSER            // 브라우저에서 자동으로 보고서를 엽니다. DLL이 필요합니다.
#include <MT4Orders_QuickReport.mqh> // https://www.mql5.com/ko/code/47816

void OnStart()
{  
  QuickReport("QuickReport", true);
}
 
Forester #:

저는 highchart로 변경했습니다. google.charts는 70만 개의 거래에서 멈췄지만, highchart는 특별한 브레이크 없이 거래가 표시되고 개별 거래를 확대할 수 있어 더 나은 것으로 나타났습니다.

멋지죠!

서수 - 균일한 단계(MetaQuotes 테스터 보고서에서와 같이) 또는 로그 - 로그 스케일(기하급수적인 잔액 증가가 있는 경우 유용할 수 있음)을 선택할 수 있습니다. 이러한 항목을 변경한 후 선택한 옵션을 적용하려면 원하는 차트를 다시 클릭해야 합니다.

유용합니다.


연대기가 깨진 것 같습니다.

 
fxsaber #:
코드 감사합니다. MT4Orders_QuickReport.mqh
에 추가했습니다.
fxsaber #:
연대기가 깨진 것 같습니다.


MQ 테스터 보고서에만 이 내용이 있습니다.
차트 작성을 위해 제한 연산을 포함한 모든 연산을 배열에 넣었습니다. 잔액을 변경하지 않으므로 크게 방해하지 않았습니다.

MQ 테스터는 삭제된 지정가 주문을 지연된 상태로 아카이브로 전송하는 것으로 나타났습니다:

주문

99 1005 2023.05.29 00:03:59.281 2023.05.29 00:03:59.331

2틱 늦게 스토리에 들어왔습니다. 00:03:59.331 이후여야 하는데 00:03:59.380 틱이 누락되어 00:03:59.430 틱에 기록으로 이동됨.
주문

123 1005 2023.05.29 00:03:59.331 2023.05.29 00:03:59.380
1 틱 후에 아카이브에 들어갔습니다. 위의 스크린샷에 더 많은 예가 있습니다.
.


마감 시간은 정확하지만 별도의 배열에 제한이 있고 모든 틱에 대해 기록으로 전송이 처리되지 않는 것 같습니다.

가상 테스터에서는 모든 것이 명확합니다. (배열이 공유되고 자체 틱에 따라 기록으로 전송됩니다.)

차트에서 제한값 출력을 제거했는데 이제 시간이 잘못된 막대가 없습니다.