새로운 MetaTrader 5 플랫폼 빌드 5100: Git 및 MQL5 Algo Forge 개발자 허브로의 전환, 다크 테마 및 인터페이스 개선 사항

 

2025년 6월 6일(금)에 메타트레이더 5 플랫폼의 업데이트 버전이 출시됩니다.

이번 버전에서는 MetaEditor 소스 코드 편집기를 대폭 개선했습니다. 내장된 버전 관리 시스템인 MQL5 저장소가 Subversion에서 개발자를 위한 글로벌 Git으로 마이그레이션되어 코드 관리의 안정성과 유연성이 향상되었습니다. Git으로의 전환과 함께 프로젝트 관리를 위한 새로운 온라인 포털인 MQL5 Algo Forge를 소개합니다. 이 사이트는 단순한 프로젝트 목록이 아니라 개발자를 위한 소셜 네트워크입니다. 흥미로운 개발자를 팔로우하고, 팀을 만들고, 프로젝트에서 협업해 보세요.

또한 모든 플랫폼 구성 요소는 이제 다크 모드 인터페이스를 지원하여 야간에 더욱 편안한 사용자 경험을 제공합니다.


또한 VPS 12개월 임대 옵션도 추가했습니다. 장기 호스팅을 선불로 구매하면 총 비용의 1/3을 절약할 수 있습니다.

또한, MQL5에서 OpenBLAS 선형 대수 라이브러리에 대한 지원을 대폭 확장하여 약 30개의 새로운 함수를 추가했습니다.

이번 업데이트에는 다음과 같은 변경 사항이 있습니다:


MetaTrader 5 클라이언트 터미널

  1. MetaEditor: MQL5 저장소를 완전히 수정하여 버전 관리 시스템으로 Subversion을 Git으로 대체했습니다. Git은 개발자를 위한 글로벌 표준으로 코드 관리의 안정성과 유연성을 제공합니다.

    • 유연한 브랜칭 및 병합 - 새로운 기능이나 실험을 위해 별도의 브랜치를 만들고 메인 프로젝트 버전에 쉽게 병합할 수 있습니다.
    • 더 빠른 저장소 작업 - Subversion과 달리 Git은 모든 데이터를 로컬에 저장하므로 커밋, 버전 전환 및 변경 사항 비교가 훨씬 빨라집니다.
    • 오프라인 작업 기능 - 지속적인 서버 연결이 필요 없습니다. 로컬에서 변경 사항을 커밋하고 원할 때마다 온라인 저장소에 푸시하세요.
    • 고급 변경 추적 - 버전 기록을 쉽게 검토하고 타임스탬프 및 작성자를 통해 수정 사항을 추적하고 복잡한 과정 없이 이전 버전으로 되돌릴 수 있습니다.
    • 뛰어난 병합 기능 - 고급 비교 및 병합 도구는 충돌을 최소화하고 공동 개발을 간소화하는 데 도움이 됩니다.

    새로운 차원의 협업 개발
    Git으로의 전환과 함께 프로젝트 관리를 위한 새로운 온라인 포털인 MQL5 Algo Forge를 소개합니다. Algo Forge는 단순한 프로젝트 목록이 아니라 개발자를 위한 본격적인 소셜 네트워크, 즉 알고리즘 트레이더를 위한 깃허브입니다. 흥미로운 개발자를 팔로우하고, 팀을 만들고, 프로젝트에서 협업해 보세요.




    구조, 파일, 커밋, 브랜치 등 프로젝트 세부 정보를 확인하세요. 개별 기여도를 추적하고, 문서를 작성하고, 온라인으로 프로젝트를 공유하세요.




    모든 코드 변경 사항 모니터링: 새로운 줄, 수정된 줄, 삭제된 줄을 감지합니다. 문제가 발생하면 프로젝트 안에서 개발자에게 직접 작업을 할당하세요.




    Git을 편리하게 사용하기 위해 내비게이터와 활성 코드 편집 창을 새롭게 디자인했습니다. 또한 MetaEditor 도구 모음에 전용 Git 메뉴도 도입했습니다:




    종합적인 Git 문서가 곧 제공될 예정입니다.

  2. MetaEditor: 트레이딩 터미널, MetaEditor, 비주얼 테스터를 포함한 모든 구성 요소에 어두운 색 구성표를 지원합니다. 어두운 테마는 밤에 더욱 편안한 개발 환경을 제공합니다. 전환하기 위해서는 보기 메뉴를 사용합니다:




    다양한 테마를 지원하도록 인터페이스를 조정하고, 보다 편안한 사용자 경험을 위해 대화 상자, 메뉴, 패널 및 버튼의 표시를 개선하는 등 다양한 개선 사항을 도입했습니다. MetaEditor에서 커서 위치 정보와 텍스트 입력 모드 표시기(INS/OVR)가 이제 오른쪽 상단 모서리에 표시됩니다. 작업 공간을 절약하기 위해 하단 상태 표시줄이 제거되었습니다.

  3. 터미널: 12개월 VPS 임대 옵션이 추가되었습니다. 장기 호스팅을 선불로 구매하면 총 비용의 1/3을 절약할 수 있습니다.


    12개월 VPS 임대 옵션이 추가되었습니다.


  4. 터미널: 메모리 사용량 최적화. 이제 터미널은 시스템 리소스를 더 적게 소비하여 성능이 향상됩니다.
  5. 터미널: 계정 거래 내역 표시를 최적화했습니다. 이제 플랫폼에서 수백만 개의 레코드를 올바르게 표시할 수 있습니다.
  6. 터미널: 창 메뉴에 '기본값으로 재설정' 명령을 추가했습니다. 차트, 내비게이터, 전략 테스터 등 모든 인터페이스 요소를 원래 위치로 초기화합니다.
  7. 터미널: 특정 조건에서 위치 수정 대화 상자가 멈추는 오류를 수정했습니다.
  8. 터미널: 음수 가격의 오픈 포지션에 대한 고정 가치 수정.
  9. 터미널: 음수 가격의 거래 기호 사양에서 마진율 계산을 수정했습니다.
  10. 터미널: 트레이딩 리포트에서 현재 MFE 및 MAE 값의 계산 및 그래프 표시가 수정되었습니다.
  11. 터미널: 차트 하위 창에서 오실레이터의 스케일링이 수정되었습니다. 이제 오실레이터의 세로 눈금이 올바르게 표시됩니다.
  12. 터미널: 전체 화면 모드로 전환할 때 주문서 및 옵션 보드의 가시성을 수정했습니다.
  13. 터미널: 계좌 거래 내역에 포지션 티켓 표시가 추가되었습니다. 상황에 맞는 메뉴를 사용하여 관련 열을 활성화하세요.
  14. 터미널: 선물 및 옵션의 노출 탭에서 청산 가치 계산을 수정했습니다.
  15. 터미널: 새롭게 생성한 계정 데이터를 클립보드에 복사할 때 발생하는 문제를 수정했습니다. 데모 또는 데모 계정 등록의 마지막 단계에서 사용자는 로그인, 비밀번호 등 계정 세부 정보를 받고 클립보드에 복사하여 별도의 파일로 저장할 수 있습니다. 이제 해당 명령이 macOS에서 올바르게 작동합니다.
  16. 터미널: VPS 로그 섹션 표시가 수정되었습니다. 특정 조건에서 페이지에 오류가 표시될 수 있었습니다.
  17. 터미널: Linux에서 HiDPI 모니터 지원이 수정되었습니다.
  18. 터미널: 사용자 인터페이스의 번역 업데이트.
  19. MQL5: 행렬 곱셈 연산자 @를 추가했습니다. 선형 대수 규칙을 따르며 행렬과 벡터의 곱셈은 물론 벡터의 스칼라(점) 곱을 허용합니다.

    행렬 곱셈(행렬 × 행렬)
    matrix A(2, 3);
    matrix B(3, 2);
    matrix C = A @ B; // Result: Matrix C of size [2,2]
    행렬 곱셈(행렬 × 벡터)
    matrix M(2, 3);
    vector V(3);
    vector R = M @ V; // Result: Vector R of 2 elements
    행렬 곱셈(벡터 x 행렬)
    matrix M(2, 3);
    vector V(1, 2);
    vector R = V @ M; // Result: Vector R of 3 elements
    스칼라 곱셈(벡터 × 벡터)
    vector V1(1, 3), V2(1, 3);
    double r = V1 @ V2; // Result: Scalar
  20. MQL5: Std, Var, Cov 메서드에 'ddof' 파라미터를 추가했습니다. 이 매개변수는 표준 편차를 계산할 때 분모에서 차감되는 자유도를 정의합니다. Std 및 Var의 경우 기본 매개 변수는 0이고 Cov의 경우 1입니다.

    ddof가 계산에 미치는 영향:

    • 기본값 ddof=0은 모집단 표준 편차가 계산됨을 의미합니다.
    • ddof=1이면 함수는 데이터의 하위 집합을 분석할 때 통계에서 일반적으로 사용되는 유한한 샘플 크기를 조정하는 샘플 표준 편차를 계산합니다.

  21. MQL5: 새로운 OpenBLAS 메서드가 추가되었습니다:

    고유값과 고유 벡터

    • EigenTridiagonalDC - 분할 및 정복 알고리즘(LAPACK 함수 STEVD)을 사용하여 대칭 삼각형 행렬의 고유값과 고유 벡터를 계산합니다.
    • EigenTridiagonalQR - QR 알고리즘(LAPACK 함수 STEV)을 사용하여 대칭 삼각형 행렬의 고유값과 고유 벡터를 계산합니다.
    • EigenTridiagonalRobust - MRRR(다중 상대적 강건성 표현) 알고리즘(LAPACK 함수 STEVR)을 사용하여 대칭 삼각형 행렬의 고유값과 고유 벡터를 계산합니다.
    • EigenTridiagonalBisect - 이등분 알고리즘(LAPACK 함수 STEVX)을 사용하여 대칭 삼각형 행렬의 고유값과 고유 벡터를 계산합니다.
    • ReduceToBidiagonal - 직교 변환을 통해 일반적인 실수 또는 복잡한 m×n 행렬 A를 위쪽 또는 아래쪽 이각대수 형태 B로 축소합니다: Q**T * A * P = B. m≥n이면 B는 위쪽 이항 행렬이고, 그렇지 않으면 B는 아래쪽 이항 행렬입니다. (LAPACK 기능 GEBRD).
    • ReflectBidiagonalToQP - 실수 또는 복소 행렬 A를 이각 형태로 축소할 때 ReduceToBidiagonal 메서드로 결정된 직교 행렬 Q와 P**T(또는 복소 유형의 경우 P**H)를 생성합니다: A = Q * B * P**T. Q와 P**T는 각각 기본 리플렉터 H(i) 또는 G(i)의 곱으로 정의됩니다. (LAPACK은 ORGBR, UNGBR 기능).
    • ReduceSymmetricToTridiagonal - 직교 유사도 변환을 통해 실제 대칭 또는 복소 헤르미트 행렬 A를 삼각형 형태 B로 축소합니다: Q**T * A * Q = B. (Lapack 기능 SYTRD, HETRD).
    • ReflectTridiagonalToQ - ReduceSymmetricToTridiagonal이 반환하는 대로 n-1 차수의 기본 리플렉터의 곱으로 정의되는 직교 행렬 Q를 생성합니다.

    • LinearEquationsSolution - 정사각형 계수 행렬 A와 여러 개의 오른쪽 변을 가진 선형 방정식 시스템의 해를 계산합니다.
    • LinearEquationsSolutionTriangular - 정사각형 삼각형 계수 행렬 A와 여러 개의 오른쪽 변을 가진 선형 방정식 시스템의 해를 계산합니다.
    • LinearEquationsSolutionSy - 대칭 또는 에르미트 공액 행렬 A와 여러 오른쪽 변을 가진 선형 방정식 시스템의 해를 계산합니다.
    • LinearEquationsSolutionComplexSy - 복소 대칭 행렬 A와 여러 개의 오른쪽 변을 가진 선형 방정식 시스템의 해를 계산합니다.
    • LinearEquationsSolutionGeTrid - 대칭 또는 에르미트 공액 양-정확 행렬 A와 여러 오른쪽 변을 가진 선형 방정식 시스템의 해를 계산합니다.
    • LinearEquationsSolutionSyPD - 일반(비대칭) 삼각형 계수 행렬 A와 여러 개의 오른쪽 변을 가진 선형 방정식 시스템의 해를 계산합니다.
    • LinearEquationsSolutionSyTridPD - 대칭 삼각형 양의 정의 계수 행렬 A와 여러 개의 오른쪽 변을 가진 선형 방정식 시스템의 해를 계산합니다.
    • FactorizationQR - 일반적인 m-by-n 행렬의 QR 인수분해를 계산합니다: A = Q * R(LAPACK 함수 GEQRF).
    • FactorizationQRNonNeg - 일반적인 m×n 행렬의 QR 인수분해를 계산합니다: A = Q * R, 여기서 R은 음이 아닌 대각선 항목이 있는 위쪽 삼각형 행렬입니다(LAPACK 함수 GEQRFP).
    • FactorizationQRPivot - 열 피벗을 사용하여 일반 m×n 행렬의 QR 인수분해를 계산합니다: A * P = Q * R(LAPACK 함수 GEQP3).
    • FactorizationLQ - 일반적인 m-by-n 행렬의 LQ 인수분해를 계산합니다: A = L * Q(LAPACK 함수 GELQF).
    • FactorizationQL - 일반적인 m-by-n 행렬의 QL 인수분해를 계산합니다: A = Q * L(LAPACK 함수 GEQLF).
    • FactorizationRQ - 일반적인 m-by-n 행렬의 RQ 인수분해를 계산합니다: A = R * Q(LAPACK 함수 GERQF).
    • FactorizationPLU - 행 교환이 있는 부분 피벗을 사용하여 일반 M-by-N 행렬 A의 LU 인수분해를 계산합니다(LAPACK 함수 GETRF).
    • FactorizationPLUGeTrid - 부분 피벗 및 행 교환을 사용한 소거를 사용하여 일반(비대칭) 삼각형 N×N 행렬 A의 LU 인수분해를 계산합니다(LAPACK 함수 GTTRF).
    • FactorizationLDL - 번치-카우프만 대각선 피벗 메서드(LAPACK 함수 SYTRF 및 HETRF)를 사용하여 실제 대칭 또는 복소 헤르미트 행렬 A의 인수분해(Factorization)를 계산합니다.
    • FactorizationLDLSyTridPD - 대칭 양-정확 행렬 또는 복잡한 데이터의 경우 헤르미티아 양-정확 삼각형 행렬 A(LAPACK 함수 PTTRF)의 인수분해를 계산합니다.
    • FactorizationCholesky - 실대칭 또는 복소 헤르미트 양-정확 행렬 A(LAPACK 함수 POTRF)의 인수분해를 계산합니다.
    • FactorizationCholeskySyPS - 실제 대칭(복소 헤르미트) 양의 반정수 n×n 행렬(LAPACK 함수 PSTRF)의 완전한 피벗을 사용하여 콜레스키 인수분해(Cholesky factorization)를 계산합니다.

  22. MQL5: 벡터와 행렬을 임의의 값으로 채우는 랜덤 함수와 메서드를 추가했습니다. 임의의 값은 지정된 범위 내에서 균일하게 생성됩니다.
    static vector vector::Random(
      const ulong   size,       // vector length
      const double  min=0.0,    // min value
      const double  max=1.0     // max value
       );
    
    static matrix matrix::Random(
      const ulong   rows,       // number of rows
      const ulong   cols        // number of columns
      const float   min=0.0,    // min value
      const float   max=1.0     // max value
       );
  23. MQL5: 정수 유형에 대한 추가 별칭 지원이 추가되었습니다. 이렇게 하면 C 및 C++와 같은 다른 언어에서 코드 포팅를 간소화할 수 있습니다.

    이러한 별칭은 새로운 유형을 도입하는 것이 아니라 MQL5의 기존 유형에 대한 대체의 이름을 제공하며 기본 유형이 적용되는 모든 상황에서 사용할 수 있습니다.

    • int8_t
    • uint8_t
    • int16_t
    • uint16_t
    • int32_t
    • uint32_t
    • int64_t
    • uint64_t

  24. MQL5: 단말기 색 구성표를 감지하는 새로운 기능이 추가되었습니다:

    • ENUM_TERMINAL_INFO_STRING 열거형에 새로운 속성 TERMINAL_COLORTHEME_NAME이 추가되었습니다. 터미널의 색 구성표를 쿼리하려면 이 속성을 터미널정보 TerminalInfoString 함수와 함께 사용하세요. 가능한 값입니다: 라이트와 다크.
    • ENUM_TERMINAL_INFO_INTEGER 열거형에 새로운 속성 THEME_COLOR_*가 추가되었습니다. TerminalInfoInteger 함수와 함께 사용하면 특정 UI 요소의 색상을 검색할 수 있습니다.

    색 구성표 변경을 감지하려면 OnChartEvent 핸들러를 사용합니다. 테마가 변경되면 CHARTEVENT_CHART_CHANGE 이벤트가 두 번 트리거됩니다.

  25. MQL5: Array::Reserve 메서드가 포함된 코드를 컴파일할 때 MetaEditor가 크래시되던 버그를 수정했습니다. 'Reserve' 메서드는 배열 크기를 변경하지 않지만 새로운 요소를 추가할 때 메모리 재할당을 방지하기 위해 지정된 수의 요소에 대한 공간을 예약합니다.
  26. MQL5: 배열 끝에 새로운 요소를 추가하는 Array::Push 메서드의 동작을 수정했습니다. 이 문제는 버퍼 공간이 미리 할당된 배열에서 발생했습니다.
  27. MQL5: OpenCL로 작업할 때 발생하는 함수 관련 문제를 해결했습니다.
  28. MetaTester: 트레이딩 전략의 최적화를 가속화했습니다.
  29. MetaTester: 특정 경우에 MQL5 클라우드 네트워크에서 작업을 실행할 때 테스터 에이전트가 과도한 메모리를 사용하던 버그가 수정되었습니다.

MetaTrader 5 웹 터미널

  1. 계정 연결 대화 상자의 비밀번호 저장 옵션을 수정했습니다.
  2. 차트 이동 버튼이 수정되었습니다. 이 버튼을 사용하면 차트가 사라지는 경우도 있었습니다.
  3. 실제 계정 등록 양식의 '중간 이름' 필드에 대한 유효성 검사를 수정했습니다. 이제는 선택 사항입니다.
  4. 데모 계좌 개설 문제가 해결되었습니다. 경우에 따라 사용자가 브로커의 웹사이트로 잘못 리디렉션되는 경우가 있었습니다.
  5. 데모 및 실제 계좌 개설 버튼의 가시성을 수정했습니다. 이제 브로커가 해당 기능을 비활성화하면 이러한 버튼이 숨겨집니다.
  6. 데모 계좌 개설 양식의 '입금' 필드의 동작을 수정했습니다.
  7. 계약 사양에서 '트레이딩' 필드 표시를 수정했습니다.
  8. '종합시세' 창에서 심볼 검색 필드를 수정했습니다. 이제 검색 모드를 종료할 때 'X' 버튼이 올바르게 표시됩니다.
  9. 계정 개설 양식의 이메일 확인 코드 필드에 대한 도구 설명이 표시되는 문제를 수정했습니다.


업데이트는 라이브 업데이트 시스템을 통해서 제공됩니다.