본문 바로가기
트레이딩/메타트레이더 코딩

메타트레이더 5 . ONNX 모델 직접 지원 .

by i.got.it 2024. 8. 29.

 

 

메타트레이더 5 . ONNX 모델 직접 지원 . 

 

ONNX 처리 가능한 함수 전체 

 

MQL5 provides the following functions for working with ONNX:

FunctionAction
OnnxCreate Create an ONNX session, loading a model from an *.onnx file
OnnxCreateFromBuffer Create an ONNX session, loading a model from a data array
OnnxRelease Close an ONNX session
OnnxRun Run an ONNX model
OnnxGetInputCount Get the number of inputs in an ONNX model
OnnxGetOutputCount Get the number of outputs in an ONNX model
OnnxGetInputName Get the name of a model's input by index
OnnxGetOutputName Get the name of a model's output by index
OnnxGetInputTypeInfo Get the description of the input type from the model
OnnxGetOutputTypeInfo Get the description of the output type from the model
OnnxSetInputShape Set the shape of a model's input data by index
OnnxSetOutputShape Set the shape of a model's output data by index

 

 

MQL5에서 ONNX 모델 사용 개요

 

MQL5는 ONNX(Open Neural Network Exchange) 모델을 지원함. 이를 통해 MetaTrader 5에서 딥러닝 모델을 사용해서 예측이나 분석 작업을 수행할 수 있음.

주요 기능

  1. ONNX 모델 로드:
    • MQL5에서 OnnxCreate, OnnxPredict, OnnxFree 함수 사용해서 ONNX 모델을 로드하고 예측을 수행함.
  2. 모델 추론:
    • 로드한 ONNX 모델로 입력 데이터에 대해 예측을 수행할 수 있음.

예제 코드


//+------------------------------------------------------------------+
//|                                            OnnxExample.mq5       |
//|                        Copyright 2023, MetaQuotes Software Corp.  |
//|                                             https://www.mql5.com  |
//+------------------------------------------------------------------+
#property copyright "2023, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

input string onnx_model_path = "model.onnx"; // ONNX 모델 파일 경로

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   // ONNX 모델 로드
   int handle = OnnxCreate(onnx_model_path);
   if(handle == -1)
     {
      Print("모델 로드 실패");
      return INIT_FAILED;
     }

   // 예측에 사용할 입력 데이터 설정 (예: 크기 [1, 10])
   double inputs[10] = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0};
   double outputs[5]; // 출력 크기 설정 (모델에 따라 다름)

   // ONNX 모델을 사용하여 예측 수행
   if(!OnnxPredict(handle, inputs, outputs))
     {
      Print("예측 실패");
      OnnxFree(handle);
      return INIT_FAILED;
     }

   // 예측 결과 출력
   Print("예측 결과: ", outputs[0]);

   // ONNX 모델 리소스 해제
   OnnxFree(handle);
   
   return INIT_SUCCEEDED;
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   // 필요시 리소스 정리 코드 추가
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   // 매틱마다 실행할 코드 추가 가능
  }
//+------------------------------------------------------------------+

 

코드 설명

  1. input string onnx_model_path = "model.onnx";:
    • ONNX 모델 파일 경로 지정. MetaTrader 5의 MQL5/Files 디렉토리에 위치해야 함.
  2. int OnInit():
    • ONNX 모델 로드: OnnxCreate(onnx_model_path) 호출해서 ONNX 모델을 로드. 실패 시 에러 메시지 출력.
    • 입력 데이터 설정: 모델 입력에 맞는 데이터 설정.
    • 예측 수행: OnnxPredict(handle, inputs, outputs) 호출해서 예측 수행. 예측 실패 시 에러 메시지 출력.
    • 결과 출력: 예측 결과 출력.
    • 리소스 해제: OnnxFree(handle) 호출해서 모델 핸들 해제 및 메모리 정리.
  3. void OnDeinit(const int reason):
    • 필요 시 리소스 정리 코드 추가.
  4. void OnTick():
    • 매틱마다 실행할 코드 추가 가능.

 

 

 

연관 

 

 

 

메타트레이더 5. 체계정리. 활용법/지식

MetaTrader 5  메타트레이더 5 , 메타에디터, MQL5 활용정보 체계정리. 본 글에서 주요 정리대상 정보  1. 메타트레이더 5 사용법.2. MQL5 언어 기반 "직접 코딩"하여 메타프레이더5에서 자동매매 달성

igotit.tistory.com

 

 

 

 

ONNX . Open Neural Network Exchange . 딥러닝 모델 변환 표준 포맷

ONNX . Open Neural Network Exchange- 딥러닝 모델 변환 표준 포맷    ONNX 개요목적: ONNX는 다양한 딥러닝 프레임워크 간에 모델을 쉽게 변환하고 사용할 수 있도록 하는 표준화된 모델 포맷.지원

igotit.tistory.com

 

 

 

 


첫 등록 : 2024.08.29

최종 수정 : 

단축 주소 : https://igotit.tistory.com/5800


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5