트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 3243

 
fxsaber #:

표준 MA에서 패턴을 확인하며, 틱에 대해서만 확인합니다.

...

작업 패턴.

그리고 여전히 불분명합니다: 이 작업 템플릿에 ONNX-SIGNAL이 어떻게 들어갈까요?

 
blef #:

그리고 아직 명확하지 않은 점: 이 작업 템플릿에 ONNX-SIGNAL을 어떻게 넣을 것인가?

이 기능의 본문의 변형을 통해.

각 틱은 입력에 온다 - 출력은 거래 신호에 대한 ONNX 결정입니다.

이러한 기능의 본문의 변형은 위에 표시되었습니다. ONNX의 경우 자체 모델 .onnx가 연결됩니다.


EA 템플릿은 변경되지 않습니다.

 
fxsaber #:

이 기능의 신체 변형을 통해.


각 틱은 입력에 온다 - 출력은 거래 신호에 대한 ONNX 결정입니다.

이러한 기능의 본문의 변형은 위에 나와 있습니다. ONNX의 경우 자체 model.onnx가 연결됩니다.


EA 템플릿은 변경되지 않습니다.

즉, 이 함수의 본문은 이 페이지의 MQL5 도움말( https://www.mql5.com/ru/docs/onnx?)에 지정된 함수를 구현해야 합니다.

Документация по MQL5: ONNX модели
Документация по MQL5: ONNX модели
  • www.mql5.com
ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
blef #:

즉, 이 함수의 본문은 이 페이지의 MQL5 도움말( https://www.mql5.com/ru/docs/onnx?)에 지정된 함수를 구현해야 합니다.

처음 세 개를 제외한 나머지 함수는 ONNX 세션 생성 및 삭제를 담당합니다.
 
알겠습니다, 명확히 설명해 주셔서 감사합니다. 국방부에 대해 알아보도록 하겠습니다.
 
blef #:

즉, 이 함수의 본문은 이 페이지의 MQL5 도움말( https://www.mql5.com/ru/docs/onnx?)에 지정된 함수를 구현해야 합니다.

와 같습니다.

// Торговый сигнал.
double SignalONNX( const MqlTick &Tick )
{
  struct ONNX
  {
  public:
    const long Handle;
    
    ONNX( const string FileName ) : Handle(::OnnxCreate(FileName, ONNX_DATA_TYPE_DOUBLE)) {}
    ~ONNX() { ::OnnxRelease(this.Handle); }
  } static const Model("model.onnx"); // Подключили модель с автоматическим отключением.
  
  OnnxRun(Model.Handle, ONNX_DATA_TYPE_DOUBLE, ...); // Прогоняем данные через модель, получаем результат.
  
  // .... Обрабатываем результат вычислений.
  
  return(0); // Возвращаем торговый сигнал.
}
 
fxsaber #:

맞습니다.


대체로 괜찮습니다.
하지만 함수가 반환하는 값이 두 배인 이유는 무엇일까요?
 

어떤 이유에서인지 신경망에 대해 계속 이야기합니다.

하지만 여기에 변환기가 있습니다.

Microsoft의 ONNXMLTools를사용하면 모델을 ONNX 형식으로 변환 할 수 있습니다.

다음 모델을 변환할 수 있습니다.

ONNX 형식으로 변환(ONNXMLTools)

ONNXMLTools를 사용하면 다양한 머신러닝 툴킷의 모델을ONNX 형식으로 변환할 수 있습니다.

설치 및 사용 지침은GitHub의 ONNXMLTools리포지토리에서 확인할 수 있습니다.

지원

현재 지원되는 툴킷은 다음과 같습니다:

  • Keras(keras2onnx 변환기 셸);
  • Tensorflow(tf2onnx 변환기 셸);
  • scikit-learn(skl2onnx 변환기 셸);
  • Apple Core ML;
  • Spark ML(실험 모드);
  • LightGBM
  • libscm;
  • XGBoost;
  • H2O
  • CatBoost

이 목록에는 신경망보다 비신경망이 더 많이 있습니다.

Документация по MQL5: ONNX модели
Документация по MQL5: ONNX модели
  • www.mql5.com
ONNX модели - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Andrey Dik #:

대체로 괜찮습니다.
하지만 함수가 반환하는 값이 두 배인 이유는 무엇일까요?

최종 템플릿 자체가 원래 템플릿보다 수신된 거래 신호를 처리하기가 더 어려울 수 있기 때문입니다.

템플릿에 대해 논의하기로 되어 있었습니다. 넘어가죠.

 

ONNX에서 입력 데이터는 벡터와 행렬입니다.

기성 모델을 통한 예측의 경우 이러한 기능을 사용할 수 있지만(행렬은 데이터 유형이 하나이므로 예측 옵션이 제한됨), 원시 모델이라도 훨씬 더 많은 수의 다양한 입력 파라미터가 있기 때문에 µl 모델을 학습하는 것은 불가능합니다.

예를 들어, RF를 행렬로 구동하는 것은 불가능합니다:

randomForest( x, y=NULL, xtest=NULL, ytest=NULL,

ntree=500,

mtry=if (! is.null( y) && ! is.factor(y)) max( floor( ncol( x)/3), 1) else floor( sqrt( ncol( x))),

weights=NULL,

replace=TRUE,

classwt=NULL,

cutoff,

strata,

sampsize = if ( replace) nrow( x) else ceiling(.632*nrow( x)),

nodesize = if (! is.null( y) && ! is.factor( y)) 5 else 1,

maxnodes = NULL,

importance=FALSE,

localImp=FALSE,

nPerm=1,

근접성,

oob.prox=proximity,

norm.votes=TRUE,

do.trace=FALSE,

keep.forest=! is.null( y) && is.null( xtest), c

orr.bias=FALSE, keep.inbag=FALSE, ...)

따라서 파이썬, 테스트 및 기타 기쁨으로 만 훈련 한 다음 µl로로드하고 테스터가 EA에서 확인하기위한 변환을 수행합니다. µl에서 테스트하기 위해 예측자를 준비하는 방법과 위치, µl로 코드를 작성할지 또는 파이썬으로 전환하여 예측을 위해 예측자를 얻을지 여부는 명확하지 않습니다...., 심지어 모델이 훈련 된 것과 동일하도록.

사유: