기고글 토론 "MQL5에서 ONNX 모델을 사용하는 방법"

 

새로운 기고글 MQL5에서 ONNX 모델을 사용하는 방법 가 게재되었습니다:

ONNX(Open Neural Network Exchange)는 머신 러닝 모델을 나타내기 위해 구축된 개방형 형식입니다. 이 기사에서는 금융 시계열을 예측하기 위해 CNN-LSTM 모델을 만드는 방법에 대해 살펴보겠습니다. 또한 MQL5 Expert Advisor에서 생성된 ONNX 모델을 사용하는 방법도 보여드리겠습니다.

모델을 생성하는 방법에는 두 가지가 있습니다. OnnxCreate를 사용하여 onnx 파일에서 모델을 생성하거나OnnxCreateFromBuffer를사용하여 데이터 배열에서 모델을 생성할 수 있습니다.

ONNX 모델이 EA의 리소스로 사용되는 경우에는 모델을 변경할 때마다 EA를 다시 컴파일해야 합니다.


모든 모델이 입력 및/또는 출력 텐서의 크기를 완전히 정의한 것은 아닙니다. 이는 일반적으로 패키지 크기를 담당하는 첫 번째 차원입니다. 모델을 실행하기 전에OnnxSetInputShapeOnnxSetOutputShape함수를 사용하여 크기를 명시적으로 지정해야 합니다. 모델의 입력 데이터는 모델을 훈련할 때와 동일한 방식으로 준비되어야 합니다.

입력 및 출력 데이터의 경우모델에서 사용되는것과 동일한 유형의 배열, 행렬 및/또는 벡터를 사용하는 것이 좋습니다. 이 경우 모델을 실행할 때 데이터를 변환할 필요가 없습니다. 원하는 형태로 데이터를 표현할 수 없는 경우자동으로 데이터가 변환됩니다.

작성자: MetaQuotes

 

파이썬 3.9.16 버전을 사용해야 하나요?

  1. 소스를 .tar.gz로 다운로드합니다.
  2. 7-Zip과 같은 프로그램을 사용하여 소스를 압축 해제합니다.
  3. PCbuild\readme. txt의 지침을 따릅니다.
 

python 3.10 및 3.11에서 onnxmltools 및 onnxconverter_common 패키지를 사용하여 LightGBM 용 ONNX 모델로 변환했습니다. 출력은 파이썬 3.10에서만 onnxruntime 패키지와 함께 작동했으며 3.11에는 맞지 않았습니다. 지난 3주 동안 무언가 변경되었을 수도 있습니다.

ME5가 파이썬 파이 런처를 지원하지 않는 것이 아쉽습니다.

 
무엇을 변경해야 하는지, 어떤 범위의 숫자를 삽입해야 하는지 등 실험할 위치를 알려주세요. 기계적인 작업 부탁합니다.
 
Ivan Butko #:
여기서 어디에서 실험할 수 있는지 알려주시겠어요?

복사_속도_범위의 상품/기간 및 날짜, 예측을 위한 입력 종가 수(여기서는 time_step = 120, model.add(Conv1D)의 입력 모양 = (120,1)) - 이 경우 다음 가격 예측의 기준이 되는 시간별 종가 수입니다.

모델 자체의 아키텍처, 예를 들어

model = Sequential()
model.add(LSTM(units = 50, return_sequences = True, input_shape = (time_step, 1)))
model.add(Dropout(0.2))
model.add(LSTM(units = 50, return_sequences = True))
model.add(Dropout(0.2))
model.add(LSTM(units = 50, return_sequences = True))
model.add(Dropout(0.2))
model.add(LSTM(units = 50))
model.add(Dropout(0.2))
model.add(Dense(units = 1))
model.compile(optimizer='adam',loss= 'mse',metrics=[rmse()])

EA 매개변수

input double InpLots       = 1.0;    // 오픈 포지션에 랏 금액
input bool   InpUseStops   = true;   // 거래에서 스탑 사용
input int    InpTakeProfit = 500;    // 테이크프로핏 레벨
input int    InpStopLoss   = 500;    // 스톱로스 수준

트레이딩 알고리즘 자체 등

 
Quantum #:

인스트루먼트/기간 및 copy_rates_range의 날짜, 예측에 대한 입력 종가 수(여기서는 time_step = 120, model.add(Conv1D)의 input_shape = (120,1))가 EA에서 변경됩니다.

모델 자체의 아키텍처를 변경합니다.

EA 매개 변수

트레이딩 알고리즘 자체 등

감사합니다

 
Quantum #:

인스트루먼트/기간 및 copy_rates_range의 날짜, 예측에 대한 입력 종가 수(여기서는 time_step = 120, model.add(Conv1D)의 input_shape = (120,1))가 EA에서 변경됩니다.

모델 자체의 아키텍처를 변경합니다.

EA 매개 변수

트레이딩 알고리즘 자체 등

GPU 계산은 라이브러리의 도움으로 NVIDIA GeForce GeForce RTX 2080 Ti 그래픽 카드에서 수행되었습니다 ... 및 CUDNN 8.1.0.7.


이 파일을 어디에 넣어야 하는지 알려주시겠습니까? (사이트에서 다운로드했는데 설치 프로그램이없고 폴더에있는 파일 만 있습니다).

 
Ivan Butko #:
GPU 계산은 라이브러리 ...를 사용하여 NVIDIA GeForce GeForce RTX 2080 Ti 그래픽 카드에서 수행되었습니다. 및 CUDNN 8.1.0.7.


이 파일을 어디에 넣어야 하는지 알려주시겠어요? (사이트에서 다운로드했는데 설치 프로그램이 없고 폴더에 파일만 있습니다).

설치 방법에 대한 GPU 딥 러닝을 위한 Windows 11에서 CUDA, CUDNN, Keras 및 TensorFlow 설정하기 비디오가 있습니다.

동영상의 첫 번째 댓글에서 텐서플로우 2.10.0 버전을 명시적으로 지정해야 한다는 점에 유의하세요.

18:35 이 시점에서 tensorflow==2.10.0을 설치하도록 변경한 후 Jeff가 말하는 모든 내용을 따르세요.
Setting Up CUDA, CUDNN, Keras, and TensorFlow on Windows 11 for GPU Deep Learning
Setting Up CUDA, CUDNN, Keras, and TensorFlow on Windows 11 for GPU Deep Learning
  • 2022.01.05
  • www.youtube.com
Complete walkthrough of installing TensorFlow/Keras with GPU support on Windows 11. We make use of a "pip install" rather than conda, to ensure that we get t...
 
Quantum #:
설치 방법에 대한 자세한 내용은 GPU 딥 러닝을 위한 Windows 11에서 CUDA, CUDNN, Keras 및 TensorFlow 설정하기 동영상을 참조하세요.

설치 완료!

 
Ivan Butko #:

알겠습니다!

동영상에 대한 첫 번째 댓글에서 tensorflow 2.10.0을 명시적으로 지정해야 한다는 점에 유의하세요.

18:35 이 시점에서 tensorflow==2.10.0 설치로 변경하고 그 이후에는 Jeff가 말하는 모든 내용을 따르세요.
 
Ivan Butko #:


무엇을 변경해야 하는지, 어떤 범위의 숫자를 삽입해야 하는지 등 실험할 위치를 알려주세요. 기계적인 작업, 제발

그러한 예측은 순진한 예측과 다르지 않기 때문에 실험 할 필요가 없습니다 (이전 종가의 가치가 예측으로 간주 됨). 이 경우 모델의 예측 능력에 대해 아무 것도 말하지 않는 거의 가장 작은 학습 오차 (RMS)를 얻습니다. 오히려 복잡한 아키텍처도 쉽게 터미널로 전송할 수 있다는 것을 보여주는 교육적인 예입니다. 시계열 예측을위한 신경망 아키텍처 연구에 관한 그 기사의 저자가 무엇을 피우고 있었는지 모르겠습니다 :) 여기에서는 적절한 추정이 필요하거나 회귀 대신 분류가 필요합니다.

실험을 위한 메트릭옵션

Time Series Forecasting: Error Metrics to Evaluate Model Performance
Time Series Forecasting: Error Metrics to Evaluate Model Performance
  • Pablo Cánovas
  • medium.com
The idea of this post comes from the different error metrics I have dealt with working with time series data and forecasting models. Among other things, we make energy production forecasts of renewable power plants of different capacities and technologies. Our aim is to develop forecasting models that reduce the penalties caused by the...