- ONNX 지원
- 포맷 변환
- 자동 데이터 유형 변환
- 모델 생성
- 모델 실행
- 전략 테스터에서 실행
- OnnxCreate
- OnnxCreateFromBuffer
- OnnxRelease
- OnnxRun
- OnnxGetInputCount
- OnnxGetOutputCount
- OnnxGetInputName
- OnnxGetOutputName
- OnnxGetInputTypeInfo
- OnnxGetOutputTypeInfo
- OnnxSetInputShape
- OnnxSetOutputShape
- 데이터 구조
모델 생성
ONNX 형식으로 준비된 모델을 얻기 위해 여러 가지 메서드를 사용할 수 있습니다. 인기있는 라이브러리인 ONNX Model Zoo에는 다양한 유형의 작업에 대해 사전 훈련된 여러 ONNX 모델이 포함되어 있습니다. 이 컬렉션의 장점은 각 모델의 노트북이 교육 데이터 세트에 대한 링크와 모델 아키텍처를 설명하는 원본 문서에 대한 참조를 포함하고 있다는 것입니다.
대부분의 머신러닝 프레임워크는 Python을 사용합니다. Python용 ONNX 런타임을 설치하려면 다음 명령 중 하나를 사용합니다:
pip install onnxruntime # CPU build
|
Python에서 ONNX 런타임을 호출하려면 다음 명령을 사용합니다.
import onnxruntime
|
모델 입력 그리고 출력을 하려면 관련 모델의 문서를 확인하십시오. 다음과 같은 시각화 도구를 사용하여 모델을 볼 수도 있습니다. Netron 또는WinML dashboard. ONNX 런타임에서 모델의 메타데이터와 입력 및 출력을 쿼리할 수도 있습니다.
results = session.run(["output1", "output2"], {
|
MetaTrader 5 터미널 또는 Python을 사용하는 MetaEditor에서 직접 ONNX 모델을 생성할 수 있습니다.
MetaTrader 5의 파이썬
MetaTrader 5는 Python 스크립트에 대해 틀에서 벗어난 지원을 제공합니다. 이러한 작업을 활성화하기 위해 터미널 개발자들이 Python용 MetaTrader5 모듈을 제공합니다.https://pypi.org/project/MetaTrader5.
MetaEditor 통합 개발 환경에서는 MQL5에서 애플리케이션을 생성하는 것 외에도 편집기에서 직접 Python 스크립트를 실행할 수도 있습니다. 그렇게 하려면 MetaEditor의 설정에서 실행 파일의 경로를 지정하십시오.:
컴퓨터에 Python이 설치되어 있지 않은 경우 설치를 클릭하여 설치 파일을 다운로드합니다.
MetaEditor에서 Python 스크립트를 생성하거나 터미널의 데이터 폴더에 업로드하고 F7(컴파일) 키를 사용하여 즉시 실행할 수 있습니다. 그러면 현재 차트에서 스크립트가 실행되는 MetaTrader 5 터미널이 열립니다. Python 콘솔(stdout, stderr)의 메시지는 Errors 섹션의 아래에 표시됩니다.
MetaTrader 5에서 모델 작업
MQL5 언어를 사용하면 MetaTrader 5 터미널에서 직접 ONNX 모델을 실행할 수 있습니다. 이는 세 단계로 수행됩니다.
- Python과 같은 별도의 플랫폼에서 모델을 교육합니다.
- 모델을 ONNX로 변환합니다.
- ONNX 함수를 사용하여 ONNX 모델을 Expert Advisor에 포함합니다. 이후 MetaTrader 5 터미널에서 실행합니다.
MQL5에서 파이썬과 통합함으로써 Python 스크립트를 실행하고 ONNX 모델을 MetaEditor에 저장하거나 MetaTrader 5의 차트에서 직접 실행할 수 있습니다. 터미널에서 필요할 때마다 미리 작성된 Python 스크립트를 사용하여 모델을 훈련할 수 있습니다. 라이브러리에는 ONNX 모델에 입력할 수 있는 가격 데이터를 얻기 위해 미리 만들어진 함수가 포함되어 있습니다.
- copy_rates_from - 지정된 날짜부터 바 가져오기
- copy_rates_from_pos - 지정된 인덱스에서 시작하는 바 가져오기
- copy_rates_range - 지정된 날짜 범위에 대한 바 가져오기
- copy_ticks_from - 지정된 날짜부터 틱을 가져옵니다.
- copy_ticks_range - 지정된 날짜 범위에 대한 틱 가져오기
모델 예 #
완성된 ONNX 모델의 예는 공개 프로젝트에서 사용할 수 있습니다.. MQL5 스토리지를 먼저 활성화해야 합니다. MetaEditor 설정에서 MQL5 로그인을 지정하여 Navigator에서(대소문자 구분).
활성화 후 ONNX.Price.Prediction 프로젝트를 찾아 상황에 맞는 메뉴 명령을 통해 참여합니다.
다음으로 MQL5 Storage에서 프로젝트를 업데이트합니다.
프로젝트에는 ONNX 모델, 두 개의 Python 스크립트, 프로젝트 작업을 위한 MQL5 스크립트 및 MQL5 프로젝트 파일(ONNX.Price.Prediction.mqproj)이 포함되어 있습니다.
프로젝트에 포함된 PricePredictionTraining.py 스크립트를 사용하여 ONNX 모델을 직접 만들 수 있습니다. 이렇게 하려면 먼저 명령줄에서 필요한 모듈을 설치해야 합니다.
python.exe -m pip install --upgrade pip
|
모듈을 설치한 후 MetaEditor에서 PricePredictionTraining.py 스크립트를 열고 컴파일 버튼 또는 F7 키를 사용하여 실행합니다.
Python 스크립트를 실행하기 전에 MetaTrader 5 터미널이 EURUSD 심볼이 있는 서버에 연결되어 있는지 확인하십시오. 예를 들어 MetaQuotes-Demo 서버에 연결하고 터미널 설정에서 "Integration with Python"을 확인합니다.
네트워크를 훈련하는 동안 MetaEditor는 훈련이 완료될 때까지 Python 스크립트에서 메시지를 인쇄합니다.
결과가 100%이면 ONNX 모델이 준비되고 다음 위치의 프로젝트 폴더에 저장됩니다. <terminal data directory> \MQL5\Shared Projects\ONNX.Price.Prediction\Python.
F7을 눌러 두 번째 스크립트인 PricePrediction.py를 실행하여 결과 모델을 확인할 수 있습니다.