기고글 토론 "MQL5에서 ONNX 모델을 사용하는 방법" - 페이지 4

 
정말 감사합니다. 정말 감사합니다. 가까운 시일 내에 더 많은 기사를 기대해주세요.
 

오닉스 라이브러리에 문제가 있습니까?

오닉스를 설치하는 동안 오류가 발생했습니다.

오류: 요구 사항을 충족하는 버전을 찾을 수 없습니다 오닉스 (버전에서: 0.0.5, 0.0.17, 0.0.19, 0.0.20, 0.0.21, 0.1, 0.1.1, 0.1.3, 0.1.4, 0.1.5, 0.2, 0.2.1, 0.3, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.4, 0.4.1, 0.4.2, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.5, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.10, 0.7.11, 0.7.12, 0.7.13, 0.8.5, 0.8.7, 0.8.10, 0.8.11)

오류: 오닉스에 대해 일치하는 배포판을 찾을 수 없습니다.

를 실행할 때

import onyx

ModuleNotFoundError: 'onyx'라는 이름의 모듈이 없습니다.



 
이상하게도 네트워크는 시간 단위로 트레이닝되지만 전문가 어드바이저는 매일 데이터를 제공합니다. 실수인가요? 아니면 제가 이해하지 못한 부분이 있나요?
 
donbar upbar #:

오닉스 라이브러리에 문제가 있나요?

오닉스를 설치하는 동안 오류가 발생했습니다.

오류: 요구 사항을 충족하는 버전을 찾을 수 없습니다 오닉스 (버전에서: 0.0.5, 0.0.17, 0.0.19, 0.0.20, 0.0.21, 0.1, 0.1.1, 0.1.3, 0.1.4, 0.1.5, 0.2, 0.2.1, 0.3, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.4, 0.4.1, 0.4.2, 0.4.4, 0.4.5, 0.4.6, 0.4.7, 0.5, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.10, 0.7.11, 0.7.12, 0.7.13, 0.8.5, 0.8.7, 0.8.10, 0.8.11)

오류: 오닉스에 대해 일치하는 분포를 찾을 수 없습니다.

를 실행할 때

import onyx

ModuleNotFoundError: 'onyx'라는 이름의 모듈이 없습니다.



안녕하세요 Donbar님, 잘못된 패키지를 설치하려고 하는 것 같습니다. onyx가 아니라 onnx여야 합니다.
 

안녕하세요, 기사 감사합니다. ML 모델을 구축하여 EA에 통합하는 방법에 대한 훌륭한 안내서입니다!

결과를 재현하려고 시도했지만 몇 가지 문제가 있습니다. 그 이유를 이해할 수 있도록 도와주셨으면 좋겠습니다.

기사를 주의 깊게 따랐지만 전략 테스터에서 완전히 다른 결과가 나왔습니다. 알고리즘에 약간의 무작위적인 특성이 있다는 것을 알고 있지만 여전히 그 차이에 놀랐습니다. 또한 모델 구축을 위해 최소한 트레이닝 데이터와 테스트 데이터가 동일하도록 동일한 기간을 활용하고 MT5 백테스트도 같은 기간에 걸쳐 진행하도록 주의를 기울였습니다. 결과는 매우 달랐습니다.

가능한 원인을 파악하려고 노력했는데, 가장 흥미로운 차이는 모델 구축 과정에서 시작된 것 같습니다. 제 손실 함수는 테스트/검증 데이터에 대한 성능을 살펴볼 때 훨씬 더 나은 일반화를 달성했음을 시사합니다. 이 메시지 끝에 손실 함수를 포함시켰습니다.

가능한 원인을 제시해 주시겠어요? 모델이 너무 취약해서 이런 현상이 예상치 못한 것이 아닌가요?

가장 최근에 재현하려고 했던 작업은 단순히 최종 Python 코드를 복사하여 붙여넣고, 손실 그래프를 생성하기 위해 Matplotlib 호출을 삽입하는 것이었지만 기본적으로 동일한 결과를 얻었습니다. 결과를 더 잘 재현할 수 있는 방법을 제안해 주시겠어요?

고마워요

파일:
LOSS.png  99 kb
RMSE.png  120 kb
copypaste.py  5 kb
 
Vladimir Perervenko 프로젝트는 세 단계로 구성됩니다:
  • 전처리(많은 것들)
  • 모델 선택, 훈련, 최적화 등
  • 구현

µl에서 ONNX 모델을 사용하면 구현 문제를 해결할 수 있습니다. 그러나 모든 모델이 그렇지는 않으며 쉽지 않습니다.

모델의 훈련과 최적화는 Python에서 별도의 프로세스를 통해 해결됩니다.

그러나 위의 모든 단계 중에서 첫 번째 단계는 가장 시간이 많이 걸리고 창의력이 요구되며 가장 중요합니다. 그리고 µl에서 이를 실현하는 것은 불가능합니다. 우리는 원시 스케일링을 전처리로 간주하지 않습니다. "쓰레기 투입-쓰레기 배출"이라는 속담이 있습니다. MCL에서만 MO를 완전히 사용하기에는 MCL에서 추가로 개발하고 구현해야 할 것이 너무 많습니다. 특히 지속적으로 확장되고 있기 때문에 그 방대한 양을 모두 수용하는 것은 불가능합니다.

따라서 전처리를 실행하려면 다른 언어(R/Python/Julia 등을 마스터한 사람)로 만들거나 ONNX로 변환해야 합니다.

지금까지 ONNX를 구현함으로써 얻을 수 있는 이점은 ONNX 모델을 변환, 생성, 단순화 및 최적화하는 방법을 배우는 데에만 있습니다. 향후에는 유용할 수 있습니다.

이보다 더 좋을 수는 없습니다. 모든 것이 정확하고 요점이 명확합니다.

 
Rorschach #:

전처리를 MT로 전송하는 것은 문제가 되지 않습니다. MT 테스터에서 시스템을 테스트하고 싶고, 파이썬/R에서는 오류로 가득 찬 자체 테스터를 작성해야 합니다.

이미 R과 파이썬으로 테스트된 테스터가 많이 있습니다.

그러나 전처리를 전송하는 것은 문제 일 뿐이며 전처리는 사소한 스케일링이나 확률 계산이 아닙니다.
 
Bill M 전략 테스터에서 완전히 다른 결과가 나왔습니다. 알고리즘에 약간의 무작위적인 특성이 있다는 것을 알고 있지만 여전히 그 차이에 놀랐습니다. 또한 모델 구축을 위해 최소한 트레이닝 데이터와 테스트 데이터가 동일하도록 동일한 기간을 활용하고 MT5 백테스트도 같은 기간에 걸쳐 진행하도록 주의를 기울였습니다. 매우 다른 결과를 얻었습니다.

가능한 원인을 파악하려고 노력했는데, 가장 흥미로운 차이는 모델 구축 과정에서 시작된 것 같습니다. 제 손실 함수는 테스트/검증 데이터에 대한 성능을 살펴볼 때 훨씬 더 나은 일반화를 달성했음을 시사합니다. 이 메시지 마지막에 손실 함수를 포함시켰습니다.

가능한 원인을 제시해 주시겠어요? 모델이 너무 취약해서 예상치 못한 일이 아닌가요?

가장 최근에 재현하려고 시도한 것은 최종 Python 코드를 복사하여 붙여넣고 Matplotlib 호출을 삽입하여 손실 그래프를 생성하는 것이었지만 기본적으로 동일한 결과를 얻었습니다. 결과를 더 잘 재현할 수 있는 방법을 제안해 주시겠어요?

고마워요

여기에서도 같은 문제에 직면하고 있습니다.

도와주실 수 있나요?

 
Joseph #:

여기에서도 같은 문제가 발생하고 있습니다.

도와주실 수 있나요?

제가 직면하고 있는 문제(다른 분들도 마찬가지일 수 있습니다)에 대한 조사를 계속하고 그 결과를 업데이트하겠습니다.

먼저 이 자세한 글을 공유해 주신 MetaQuotes (작성자)에게 대단히 감사합니다. 저는 ML 트레이딩 탐구 과정에서 많은 것을 배웠습니다.

기사에 있는 원본 onnx 파일을 내 MetaQuates-Demo 계정에서 실행하면 동일한 결과를 재현할 수 있습니다. 그러나 첨부된 ONNX.eurusd.H1.120.Training.py를 사용하여 onnx 모델을 재훈련했습니다:

data start date = 2022-09-03 00:00:00
data end date = 2023-01-01 00:00:00

모델(onnx 첨부: )이 점수를 얻습니다:

RMSE         : 0.005212606864326095
MSE          : 2.7171270322019527e-05
R2 score     : -3.478924709873314

와 1Jan2023-26Mar2023 백테스트 결과가 첨부되어 있습니다: "백테스트 결과.png"

MetaQuotes
  • 2023.11.23
  • www.mql5.com
Trader's profile
파일:
 

첨부된 ONNX.eurusd.H1.120.Training.py를 다음과 같이 재교육합니다:

data start date = 2022-11-28 12:28:00
data end date = 2023-03-28 12:28:00

모델(ONNX 첨부:)이 점수를 얻습니다:

RMSE         : 0.0014680559413400179
MSE          : 2.155188246903726 e-06
R2 score     : 0.9699715149559284

및 1Jan2023-26Mar2023 bactest 결과를 첨부합니다: "bacttest 결과2.png"

그렇다면 위의 연습을 통해 기사의 최종 결과를 생성하는 데 사용된 모델은 다음 날짜로 훈련되지 않았을 가능성이 높다고 생각하나요?

data start date = 2022-09-03 00:00:00
data end date = 2023-01-01 00:00:00
이에 대해 의견을 주시면 감사하겠습니다.
파일: