새로운 MetaTrader 5 빌드 5570: ONNX 및 차트 렌더링의 개선

 

MetaTrader 5 플랫폼의 업데이트가 2026년 1월 30일(금)에 출시됩니다.

이번 버전에서는 MQL5의 ONNX지원 기능을 개선했습니다. 이제 CUDA를 지원하는 GPU에서 모델이 훨씬 빠르게 실행됩니다. 또한 새로운 플래그에 대한 지원을 도입하고 라이브러리 워크플로우를 수정했습니다: 이제 ONNX는 플랫폼과 함께 설치되지 않고 이를 사용하는 프로그램을 처음 실행할 때만 설치됩니다.

또한 이전 업데이트에서 도입된 Blend2D 엔진을 위해 차트에서의 텍스트와 분석 객체의 렌더링을 개선했습니다. 또한 이번 업데이트를 통해 트레이딩 리포트가 개선되고 전략 테스터의 안정성이 향상되었습니다.

플랫폼의 웹 버전에도 여러 가지 개선 사항이 적용되었습니다. 차트에서 스톱 레벨을 조정할 때 이제 대략적인 수익 또는 손실액을 금액으로 확인할 수 있습니다. 또한 일부 거래 데이터의 표시 방식을 수정했습니다.

새로운 MetaTrader 5 빌드 5570: ONNX 및 차트 렌더링 개선 사항


MetaTrader 5 클라이언트 터미널

  1. 터미널: Wine을 사용하는 macOSLinux 환경의 차트에서 텍스트 렌더링이 수정되었습니다.
  2. 터미널: 가변 색상의 라인으로 표시되는 지표의 그리기를 수정했습니다.
  3. 터미널: Text LabelButton 객체의 렌더링이 수정되었습니다.
  4. 터미널: 이전에 잘못 반올림될 수 있었던 보고서의 일부 통계 서식을 수정했습니다.
  5. 터미널: 트레이딩 보고서의 '총 수익' 및 '총 손실' 계산이 수정되었습니다. 이제 이러한 값에는 수수료와 스왑이 포함됩니다.
  6. 터미널: 차트에 대한 도구 모음 상태 저장을 수정했습니다. 플랫폼을 재시작한 후 숨겨진 도구 모음이 다시 나타날 수 있었습니다.
  7. 터미널: JSON 파일에서 사용자 지정 트레이딩 상품 설정의 로딩이 수정되었습니다. 스왑 설정, 트레이딩 세션, 틱 값을 잘못 가져올 수 있었습니다.
  8. 터미널: 차트에서 스크립트를 실행할 때 창 제목에 상품 및 기간이 표시되도록 했습니다.



    차트에서 스크립트를 실행할 때 창 제목에 상품 및 차트주기가 표시됩니다.


  9. 터미널: 종합시세에서 상품을 검색할 때 표시되는 도구 설명에서 거래 상품이 중복되는 현상을 수정했습니다.
  10. 터미널: 차트에서 Wingdings 글꼴의 렌더링이 수정되었습니다.
  11. 터미널: 컬러색상 있는 캔들 (DRAW_COLOR_CANDLES) 및 컬러 라인(DRAW_COLOR_LINE)으로 표시되는 지표의 렌더링이 수정되었습니다.
  12. 터미널: 브로커 서버가 오래된 버전을 실행 중임을 나타내는 로그 메시지가 출력되도록 했습니다. 서버 버전이 6개월 전에 출시된 5200 미만인 경우 경고가 표시됩니다:
    오래된 서버 빌드 - 5200 이상이어야 합니다. 브로커에 문의하세요.
    이 메시지는 정보를 제공하기 위한 목적으로만 표시되며 서버 연결 기능에는 영향을 미치지 않습니다.

  13. MQL5: ONNX 라이브러리는 이제 플랫폼과 함께 로드되는 것이 아니라 ONNX를 사용하는 MQL5 프로그램이 처음 실행될 때 로드 됩니다. 라이브러리 업데이트는 자동으로 이루어집니다.
  14. MQL5: ONNX 용 CUDA 지원에 대한 내용을 추가했습니다. 그래픽 카드가 이 기술을 지원하면 모델의 추론 성능이 크게 향상됩니다. 안정성과 성능 향상을 위해 NVIDIA 드라이버를 업데이트하실 것을 강력히 권장합니다.
    CUDA 사용 권한은 플랫폼 설정에서 관리할 수 있습니다: 


    플랫폼 설정에서 CUDA 관리하기


  15. MQL5: ENUM_ONNX_FLAGS 열거형에서 플래그를 업데이트했습니다. 이 플래그는 ONNX 모델을 생성하고 실행할 때 사용됩니다:

    로깅
    더 이상 사용되지 않는 ONNX_DEBUG_LOGS 대신 이제 다음 로깅 플래그가 사용됩니다:

    • ONNX_LOGLEVEL_VERBOSE — 모든 메시지를 기록합니다.
    • ONNX_LOGLEVEL_INFO — 정보성 메시지, 경고 및 오류를 기록합니다. 더 이상 사용되지 않는 ONNX_DEBUG_LOGS를 대체합니다.
    • ONNX_LOGLEVEL_WARNING — 경고 및 오류를 로그에 기록합니다. 기본적으로 사용됩니다.
    • ONNX_LOGLEVEL_ERROR — 오류만 기록합니다.

    CUDA 및 GPU 관리
    ONNX_CUDA_DISABLE 플래그가 제거되었습니다. 대신 새로운 ONNX_USE_CPU_ONLY 플래그를 사용하세요. 활성화하면 모델 실행에 CPU만 사용됩니다.

    모델이 실행될 GPU 장치를 선택하기 위한 플래그가 추가되었습니다:

    • ONNX_GPU_DEVICE_0
    • ONNX_GPU_DEVICE_1
    • ONNX_GPU_DEVICE_2
    • ONNX_GPU_DEVICE_3
    • ONNX_GPU_DEVICE_4
    • ONNX_GPU_DEVICE_5
    • ONNX_GPU_DEVICE_6
    • ONNX_GPU_DEVICE_7

    시스템에 두 개 이상의 CUDA 지원 디바이스가 있는 경우 이 플래그를 사용합니다. 여러 개의 플래그를 지정하면 인덱스가 가장 낮은 장치가 선택됩니다.

    모델 프로파일링
    ONNX 모델 프로파일링을 활성화하기 위해 ONNX_ENABLE_PROFILING 플래그를 추가했습니다 profiling.

    이 플래그를 활성화하여 모델을 시작하면 /MQL5/Files/OnnxProfileReports/ 폴더에 [EX5 file name]_[date]_[time].json 형식의 프로파일링 보고서 파일이 생성됩니다.

  16. MQL5: 프로그램에 리소스로 포함될 수 있는 파일의 제한이 증가했습니다. 새로운 제한은 1GB로 프로젝트에 대용량 ONNX 모델을 포함할 수 있습니다. 
  17. MQL5: OpenCL작업의 안정성이 향상되었습니다.
  18. MQL5: ReplaceToZero 메서드가 추가되었습니다. 이 메서드는 행렬/벡터에서 작은 값을 0으로 대체하고 대체된 요소의 개수를 반환합니다.
  19. MQL5: 새로운 OpenBLAS 메서드가 추가되었습니다:

    • FactorizationLDLComplexSyRaw - 번치-카우프만 대각선 피벗 메서드를 사용하여 복소 행렬의 인수분해를 계산합니다.
    • LDLComplexSyLinearEquationsSolution - 복소 대칭 부정 행렬을 가진 선형 방정식 A * X = B의 시스템을 복수의 우변이 있는 FactorizationLDLComplexSyRaw로 계산된 인수분해 A = U**T * D * U 또는 A = L * D * L**T를 사용하여 풀 수 있습니다.
    • LDLComplexSyInverse - FactorizationLDLComplexSyRaw에서 계산한 인수분해 A = U**T * D * U 또는 A = L * D * L**T를 사용하여 복소 대칭 부정 행렬의 역을 계산합니다.
    • LDLComplexSyCondNumReciprocal - FactorizationLDLRaw에 의해 계산된 LDLT 인수분해를 사용하여 실수대칭 또는 복소 헤르미티아 부정 행렬 A의 조건 수의 역수를 추정합니다.

  20. MQL5: ColorToPRGB 함수를 추가했습니다. 색상 유형을 uint로 변환하여 PRGB 색상 표현을 얻습니다. 이 형식은 그래픽 리소스를 만들거나 텍스트를 렌더링할 때, 그리고 표준 라이브러리 CCanvas 클래스에서 COLOR_FORMAT_ARGB_RAW 색상 형식으로 작업할 때 사용됩니다.
    uint  ColorToPRGB(
       color  clr,          // the color to be converted, in 'color' format
       uchar  alpha=255     // the alpha channel that controls color transparency
    );
    PRGB 색상은 다음의 공식을 사용하여 계산합니다:
    R = R * A / 255
    G = G * A / 255
    B = B * A / 255
    A = A
  21. MQL5: OBJ_LABEL, OBJ_TEXT, OBJ_BUTTON, OBJ_EDIT 객체에 대한 프로그래밍 텍스트 설정 오류를 수정했습니다. 일부 조건에서 텍스트가 표시되지 않을 수 있었습니다.
  22. MQL5: ObjectSetInteger를 사용하여 그래픽 객체의 색상을 설정하는 문제를 수정했습니다. 이전에는 clrNONE 값이 무시될 수 있었습니다.
  23. MQL5: 서버에서 가격 히스토리를 사용할 수 없을 때 Bars 함수가 정지되는 문제를 수정했습니다.
  24. MQL5: 범위에서 전역 변수의 검색을 수정했습니다. 이전에는 namespace 내의 변수는 전역 수준 변수와 동일한 이름을 가질 수 없었습니다.
  25. MQL5: final 속성의 동작을 수정했습니다. 이제 'final'로 표시된 함수를 재정의하려고 시도하면 컴파일러 오류가 정확히 나타납니다.
  26. MQL5: include *.mqh 파일에 #import 지시어가 없는 함수 전달 선언을 사용할 때 발생하는 잘못된 컴파일러 경고를 수정했습니다. 이제 컴파일러는 이러한 선언을 올바르게 처리하며 함수를 DLL에서 가져오지 않는 경우 #import를 요구하지 않습니다.

    예시

    파일 utils.mqh: 
    // Function forward declaration
    double CalcLot(double risk, double stop);
    expert.mq5 파일:
    #include "utils.mqh"
    
    double CalcLot(double risk, double stop)
      {   
       return risk / stop;
      }
    이전에는 사용자가 정의하고 프로젝트 코드에서 구현한 함수임에도 불구하고 컴파일러에서는 utils.mqh의 CalcLot 함수에 #import 지시어가 누락되었다는 경고가 표시될 수 있었습니다. 이제 이러한 코드는 경고 없이 컴파일 됩니다. #import 지시어는 외부 DLL에서 실제로 가져온 함수에 대해서만 필요합니다. 

  27. MetaEditor: 대용량 소스 파일(수 메가바이트) 작업 시 발생하던 메모리 부족 오류를 수정했습니다.
  28. MetaEditor: 디버깅 중 Watch 창에 열거형 값과 이름이 표시되던 문제를 수정했습니다.
  29. 테스터: 반복을 실행하는 EA의 테스트를 종료하는 것이 수정되었습니다. 무한 루프에서도 이제 '중지'를 누르면 실행이 즉시 중지됩니다.
  30. 테스터: 시각적 테스트 중 EventChartCustom 호출 오류를 수정했습니다. 이전에는 이벤트가 실수로 두 번 전송될 수 있었습니다.
  31. 테스터: 신규 펜딩 주문을 삭제할 때 동결 레벨 확인(SYMBOL_TRADE_FREEZE_LEVEL)을 수정했습니다.
  32. 테스터: 포워드 테스트 데이터 내보내기가 수정되었습니다. 포워드 모드를 사용하지 않은 테스트를 내보낼 때 이전 포워드 테스트의 데이터가 저장되는 경우가 있습니다.
  33. 사용자 인터페이스 번역이 업데이트되었습니다.

MetaTrader 5 웹 터미널

  1. 차트에서 손절 또는 이익실현을 설정할 때 대략적인 수익/손실을 금액으로 표시하는 기능이 추가되었습니다.


    대략적인 수익/손실을 금액으로 표시하는 기능 추가


  2. 특수 문자가 있는 기기의 기호 사양 표시가 수정되었습니다.
  3. 거래 대화창에서 음수 가격 표시를 수정했습니다.
  4. 입금 통화가 소수점 이하 두 자리보다 큰 경우 계정 재무 지표 표시가 수정되었습니다.


업데이트는 실시간 업데이트를 통해 제공됩니다.