새로운 MetaTrader 5 플랫폼 빌드 3980: 개선 사항 및 수정 사항

Alexey Petrov  

MetaTrader 5 플랫폼의 업데이트 버전이 2023년 9월 21일 목요일에 출시될 예정입니다. 이번 업데이트에는 플랫폼 수정 및 개선 사항과 관련된 여러가지가 포함되어 있습니다.

새로운 메타트레이더 5 플랫폼 빌드 3980: 개선 및 수정 사항


MetaTrader 5 클라이언트 터미널 빌드 3980

  1. 터미널: 새로운 거래 보고서의 개선 사항. 총 스왑 가치와 수익 차트를 심볼별로 표시하는 문제를 수정했습니다.
  2. 터미널: 최적화된 입금 및 출금 페이지. 결제 시스템과의 새로운 플랫폼과의 통합에 대한 자세한 내용은 빌드 3950 릴리스 노트를 참조하세요.
  3. 터미널: 전략 테스터를 포함한 전체 플랫폼에서 재무 운영과 관련한 재계산을 최적화했습니다. 이제 수익, 마진 및 기타 여러 다른 매개변수를 더 빠르게 계산할 수 있습니다.
  4. 터미널: 업데이트된 사용자 인터페이스.
  5. MQL5: complex, 벡터<complex>, 행렬<complex> 유형에 대한 Conjugate 메서드가 추가되었습니다. 복잡한 켤레 복소수 연산을 구현합니다.
    //+------------------------------------------------------------------+
    //| 스크립트 프로그램 시작 함수 |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       complex a=1+1i;
       complex b=a.Conjugate();
       Print(a, " ", b);
       /*
       (1,1) (1,-1)
       */
    
       vectorc va= {0.1+0.1i, 0.2+0.2i, 0.3+0.3i};
       vectorc vb=va.Conjugate();
       Print(va, "  ", vb);
       /*
       [(0.1,0.1),(0.2,0.2),(0.3,0.3)]  [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
       */
    
       matrixc ma(2, 3);
       ma.Row(va, 0);
       ma.Row(vb, 1);
       matrixc mb=ma.Conjugate();
       Print(ma);
       Print(mb);
       /*
       [[(0.1,0.1),(0.2,0.2),(0.3,0.3)]
        [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]]
    
       [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
        [(0.1,0.1),(0.2,0.2),(0.3,0.3)]]
       */
       
       ma=mb.Transpose().Conjugate();
       Print(ma);
       /*
       [[(0.1,0.1),(0.1,-0.1)]
        [(0.2,0.2),(0.2,-0.2)]
        [(0.3,0.3),(0.3,-0.3)]]
       */
      }
  6. MQL5: ' Sequence of maps' 유형의 ONNX 모델 출력 전달이 추가되었습니다.

    출력 레이어에 맵 시퀀스를 제공하는 ONNX 모델(ONNX_TYPE_MAP의 ONNX_TYPE_SEQUENCE)의 경우 구조의 동적 또는 고정 배열을 출력 매개변수로 전달해야 합니다. 이 구조의 처음 두 필드는 ONNX_TYPE_MAP 키 및 값 유형과 일치해야 하며 고정 또는 동적 배열이어야 합니다.

    다음 Python 스크립트에서 생성한 iris.onnx 모델을 살펴보겠습니다:
    from sys import argv
    data_path=argv[0]
    last_index=data_path.rfind("\\")+1
    data_path=data_path[0:last_index]
    
    from sklearn.datasets import load_iris
    iris_dataset = load_iris()
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
    from sklearn.neighbors import KNeighborsClassifier
    knn = KNeighborsClassifier(n_neighbors=1)
    knn.fit(X_train, y_train)
    
    # ONNX 형식으로 변환
    from skl2onnx import convert_sklearn
    from skl2onnx.common.data_types import FloatTensorType
    initial_type = [('float_input', FloatTensorType([None, 4]))]
    onx = convert_sklearn(knn, initial_types=initial_type)
    path = data_path+"iris.onnx"
    with open(path, "wb") as f:
        f.write(onx.SerializeToString())
    메타에디터에서 생성된 onnx 파일을 엽니다:


    메타에디터에서 ONNX 모델 보기


    맵 시퀀스는 "output_probability"로 전달됩니다. 이 키는 INT64 유형(MQL5에서는 long에 해당)의 키와 float 유형 값을 가집니다. 이 출력에서 데이터를 수신하려면 다음과 같은 구조를 선언합니다:
    struct MyMap
      {
       long              key[];
       float             value[];
      };
    여기서 우리는 적절한 유형의 동적 배열을 사용했습니다. 이 경우 이 모델의 맵에는 항상 3개의 키+값 쌍이 포함되므로 고정 배열을 사용할 수 있습니다.

    맵 시퀀스가 반환되므로 output_probability 출력에서 데이터를 수신하기 위해 이러한 구조의 배열을 매개변수로 전달해야 합니다. 이 배열은 특정 모델의 속성에 따라 동적이거나 고정될 수 있습니다. 예시:
    //---출력 레이어 output_probability에서 데이터를 수신할 배열을 선언합니다.
    MyMap output_probability[];
    
    ...
    
    //--- 모델 실행 중
    OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);
  7. MetaEditor: ONNX 모델 뷰어에서 출력 유형 표시가 수정되었습니다.

MetaTrader 5 웹 터미널 빌드 3980

  1. 웹 터미널의 메인 메뉴에 브로커 연락하기 섹션을 추가했습니다.
  2. SSL 인증에 대한 오류 처리가 추가되었습니다. 이 인증 유형은 웹 터미널에서 지원되지 않습니다. 대신 일회용 비밀번호를 사용할 수 있습니다.
  3. 메인 메뉴의 데스크톱 플랫폼 다운로드 링크가 수정되었습니다.
  4. 계정 관리 대화 상자를 수정했습니다. 브로커가 데모 또는 실계좌 개설 옵션을 제공하지 않는 경우 관련 메뉴 항목은 보여지지 않습니다.


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

사유: