모델 생성

ONNX 형식으로 준비된 모델을 얻기 위해 여러 가지 메서드를 사용할 수 있습니다. 인기있는 라이브러리인 ONNX Model Zoo에는 다양한 유형의 작업에 대해 사전 훈련된 여러 ONNX 모델이 포함되어 있습니다. 이 컬렉션의 장점은 각 모델의 노트북이 교육 데이터 세트에 대한 링크와 모델 아키텍처를 설명하는 원본 문서에 대한 참조를 포함하고 있다는 것입니다.

대부분의 머신러닝 프레임워크는 Python을 사용합니다. Python용 ONNX 런타임을 설치하려면 다음 명령 중 하나를 사용합니다:

pip install onnxruntime       # CPU build
pip install onnxruntime-gpu   # GPU build

Python에서 ONNX 런타임을 호출하려면 다음 명령을 사용합니다.

import onnxruntime
session = onnxruntime.InferenceSession("path to model")

모델 입력 그리고 출력을 하려면 관련 모델의 문서를 확인하십시오. 다음과 같은 시각화 도구를 사용하여 모델을 볼 수도 있습니다. Netron 또는WinML dashboard. ONNX 런타임에서 모델의 메타데이터와 입력 및 출력을 쿼리할 수도 있습니다.

results = session.run(["output1""output2"], {
                      "input1"indata1"input2"indata2})
results = session.run([], {"input1"indata1"input2"indata2})

MetaTrader 5 터미널 또는 Python을 사용하는 MetaEditor에서 직접 ONNX 모델을 생성할 수 있습니다.

MetaTrader 5의 파이썬

MetaTrader 5는 Python 스크립트에 대해 틀에서 벗어난 지원을 제공합니다. 이러한 작업을 활성화하기 위해 터미널 개발자들이 Python용 MetaTrader5 모듈을 제공합니다.https://pypi.org/project/MetaTrader5.

MetaEditor 통합 개발 환경에서는 MQL5에서 애플리케이션을 생성하는 것 외에도 편집기에서 직접 Python 스크립트를 실행할 수도 있습니다. 그렇게 하려면 MetaEditor의 설정에서 실행 파일의 경로를 지정하십시오.:

MetaEditor 설정에서 Python 실행 파일 경로 설정

컴퓨터에 Python이 설치되어 있지 않은 경우 설치를 클릭하여 설치 파일을 다운로드합니다.

MetaEditor에서 Python 스크립트를 생성하거나 터미널의 데이터 폴더에 업로드하고 F7(컴파일) 키를 사용하여 즉시 실행할 수 있습니다. 그러면 현재 차트에서 스크립트가 실행되는 MetaTrader 5 터미널이 열립니다. Python 콘솔(stdout, stderr)의 메시지는 Errors 섹션의 아래에 표시됩니다.

MetaTrader 5에서 모델 작업

MQL5 언어를 사용하면 MetaTrader 5 터미널에서 직접 ONNX 모델을 실행할 수 있습니다. 이는 세 단계로 수행됩니다.

  1. Python과 같은 별도의 플랫폼에서 모델을 교육합니다.
  2. 모델을 ONNX로 변환합니다.
  3. ONNX 함수를 사용하여 ONNX 모델을 Expert Advisor에 포함합니다. 이후  MetaTrader 5 터미널에서 실행합니다.

MQL5에서 파이썬과 통합함으로써 Python 스크립트를 실행하고 ONNX 모델을 MetaEditor에 저장하거나 MetaTrader 5의 차트에서 직접 실행할 수 있습니다. 터미널에서 필요할 때마다 미리 작성된 Python 스크립트를 사용하여 모델을 훈련할 수 있습니다. 라이브러리에는 ONNX 모델에 입력할 수 있는 가격 데이터를 얻기 위해 미리 만들어진 함수가 포함되어 있습니다.

 

모델 예 #

완성된 ONNX 모델의 예는 공개 프로젝트에서 사용할 수 있습니다.. MQL5 스토리지를 먼저 활성화해야 합니다. MetaEditor 설정에서 MQL5 로그인을 지정하여 Navigator에서(대소문자 구분).

activate_storage

활성화 후 ONNX.Price.Prediction 프로젝트를 찾아 상황에 맞는 메뉴 명령을 통해 참여합니다.

project_join

 

다음으로 MQL5 Storage에서 프로젝트를 업데이트합니다.

update_project

프로젝트에는 ONNX 모델, 두 개의 Python 스크립트, 프로젝트 작업을 위한 MQL5 스크립트 및 MQL5 프로젝트 파일(ONNX.Price.Prediction.mqproj)이 포함되어 있습니다.

python_script

 

 

프로젝트에 포함된 PricePredictionTraining.py 스크립트를 사용하여 ONNX 모델을 직접 만들 수 있습니다. 이렇게 하려면 먼저 명령줄에서 필요한 모듈을 설치해야 합니다.

python.exe -m pip install --upgrade pip
python -m pip install --upgrade tensorflow
python -m pip install --upgrade pandas
python -m pip install --upgrade scikit-learn
python -m pip install --upgrade matplotlib
python -m pip install --upgrade tqdm
python -m pip install --upgrade metatrader5
python -m pip install --upgrade onnx==1.12
python -m pip install --upgrade tf2onnx
python -m pip install --upgrade numpy
python -m pip install onnxruntime

모듈을 설치한 후 MetaEditor에서 PricePredictionTraining.py 스크립트를 열고 컴파일 버튼 또는 F7 키를 사용하여 실행합니다.

python_script_compile

 

Python 스크립트를 실행하기 전에 MetaTrader 5 터미널이 EURUSD 심볼이 있는 서버에 연결되어 있는지 확인하십시오. 예를 들어 MetaQuotes-Demo 서버에 연결하고 터미널 설정에서 "Integration with Python"을 확인합니다.

terminal_py_integration_check_box

 

네트워크를 훈련하는 동안 MetaEditor는 훈련이 완료될 때까지 Python 스크립트에서 메시지를 인쇄합니다.

onnx_model_ready

 

결과가 100%이면 ONNX 모델이 준비되고 다음 위치의 프로젝트 폴더에 저장됩니다. <terminal data directory> \MQL5\Shared Projects\ONNX.Price.Prediction\Python.

F7을 눌러 두 번째 스크립트인 PricePrediction.py를 실행하여 결과 모델을 확인할 수 있습니다.

prediction_result