トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 2938

 
Mikhail Mishanin #:

2023.02.28 05:27:35.269 Storage プロジェクト「ONNX.Price.Prediction」への参加に成功。

2023.02.28 05:27:56.191 Storage MQL5 Storage が起動しました。

2023.02.28 05:27:56.191 ストレージ MQL5 のチェックアウトが開始されました。

2023.02.28 05:27:56.635 Storage 要求された SVN ファイルシステムが見つかりません (720003)

2023.02.28 05:28:32.432 ストレージ 所有者 MQL5 ストレージは 'dinpae@gmail.com' です。

どういう意味ですか?接続できません。

On - ConnectMQL5 Storage. gives 2023.02.28 05:36:25.147 Storage Owner MQL5 Storage is 'dinpae@gmail.com', change the MQL5 account.


どのアカウントでMQL5 Storageにログインしましたか?

電子メールまたは大文字と小文字を区別する正確なログインを指定しましたか?

電子メールは受け付けられません。

 
Aleksey Nikolayev #:

プロジェクト名を右クリックします。このようになるはずです:


はい、そのようなものがありますが、エラー
2023.02.28 13:05:45.151 Storage checkout started for MQL5\Shared Projects\ONNX.Price.Prediction
2023.02.28 13:05:45.667 Storage Not authorized to open root of edit operation  (220000)
どこかに何らかの権限があります。
 
Evgeny Dyuka #:
はい、そのようなものはありますが、エラーが出ます。 何らかの認証がどこかにあるようです。

うーん、わからない。プロジェクトを残して削除し、再参加して、リポジトリからアップデートを取得してみてください。

プロジェクトを残すとログに:

2023.02.28 16:31:47.481 Storage successfully left the project 'ONNX.Price.Prediction'

削除すると何も書き込まれません。プロジェクトに参加するとき:

2023.02.28 16:31:59.970 Storage successfully joined to the project 'ONNX.Price.Prediction'

更新を受け取るとき:

2023.02.28 16:41:43.985 Storage checkout started for MQL5\Shared Projects\ONNX.Price.Prediction
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\Python
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\Python\PricePredictionTraining.py
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\Python\PricePrediction.py
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\Python\model.onnx
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\ONNX.Price.Prediction.mq5
2023.02.28 16:41:44.750 Storage added MQL5\Shared Projects\ONNX.Price.Prediction\ONNX.Price.Prediction.mqproj
2023.02.28 16:41:44.784 Storage checkout completed successfully in 797 ms

認証はリポジトリに接続するときだけで、認証なしでプロジェクトに参加することはできません。

これ以上お役に立てません。古いバージョンでなければ、最新版(ベータ版とリリース版)でやってみました。

 
Aleksey Nikolayev #:

うーん、わからない。プロジェクトをいったん離れて削除し、再度プロジェクトに参加して、リポジトリからアップデートを取得してみてください。

ログにプロジェクトを残すと

プロジェクトを削除すると、何も書き込まれません。プロジェクトに参加する場合:

更新を受けたとき:

認証はリポジトリに接続するときだけです。認証がないと、基本的にプロジェクトに参加できません。

それ以外のことは何もできません。古いバージョンでなければ、最新版(ベータ版とリリース版)で行いました。

ありがとう。
 
Evgeny Dyuka #:
ありがとう。

念のため、アーカイブにプロジェクトを掲載しておくよ。

ファイル:
 
Renat Fatkhullin #:

MQL5 Storageにはどのアカウントでログインしましたか?

電子メールまたは大文字と小文字を区別するログインを指定しましたか?

電子メールは受け付けられません。

ログインの際、私のログインだけが初期状態でドットがdr.mr.momと曲がっています。

 

ONNXモデルの動作確認ができるベータ3589をリリース。

ステップ

  1. ヘルプ]->[デスクトップアップデートの確認]->[最新ベータ版]から3589にアップデートする。

  2. MQL5 Storageをアクティベートするには、大文字と小文字を区別して正しいMQL5ログイン(電子メールではありません)を指定します:






  3. コンフィグが破損していてMQL5 Storageが機能しない場合は、エクスプローラーをファイル -> データフォルダーを開くで開き、MQL5ディレクトリに移動して次のファイルを削除してください:


    。それからステップ2に進んでください。

  4. コンテキストメニューからJoinコマンドを使用して、ONNX.Price.Predictionプロジェクトに参加します。



  5. ナビゲーターを開き、共有プロジェクトセクションを開き、ONNX.Price.Predictionプロジェクトでコンテキストメニューからストレージから更新を呼び出します:



    プロジェクトはMQL5ストレージ(Subversion)からダウンロードされます。

  6. プロジェクトを開き、ONNX.Price.Prediction.mqprojをクリックします。



  7. プロジェクトをコピーし、EURUSD, H1で実行します。

  8. 結果を得る:
    2023.02.28 21:54:43.316 Scripts script ONNX.Price.Prediction (EURUSD,H1) loaded successfully
    2023.02.28 21:54:43.348 ONNX    initialized [API version 1.14.0]
    
    в журнале Experts: важны две последние строки, а остальное - специально включенные отладочные логи по флагу ONNX_DEBUG_LOGS
    
    2023.02.28 22:11:53.441 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Creating and using per session threadpools since use_per_session_threads_ is true
    2023.02.28 22:11:53.441 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Dynamic block base set to 0
    2023.02.28 22:11:53.442 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Initializing session.
    2023.02.28 22:11:53.442 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Adding default CPU execution provider.
    2023.02.28 22:11:53.442 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total shared scalar initializer count: 0
    2023.02.28 22:11:53.443 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total fused reshape node count: 0
    2023.02.28 22:11:53.443 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total shared scalar initializer count: 0
    2023.02.28 22:11:53.443 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Total fused reshape node count: 0
    2023.02.28 22:11:53.444 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Use DeviceBasedPartition as default
    2023.02.28 22:11:53.444 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Saving initialized tensors.
    2023.02.28 22:11:53.444 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Done saving initialized tensors
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Session successfully initialized.
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Number of streams: 1
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: Begin execution
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 0
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 1 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 1
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 2 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 3
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 6 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 4
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 8 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 5
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 9 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 6
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 7
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 2
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 3 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 11 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 8
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 9
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 16 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 10
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 11
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 22 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 12
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 25 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 13
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 27 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 27
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 17
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 18
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 28 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 28
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: ort value 30 released
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       ONNX: stream 0 launch kernel with idx 26
    
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       [-1.5921557]
    2023.02.28 22:11:53.445 ONNX.Price.Prediction (EURUSD,H1)       predicted 1.0591759612759748
    
  9. 動作しない場合は、ONNX Runtimeのバージョンが古いか、見つからないことを意味します。

    この場合は、Microsoftによって署名されたONNX Runtime 1.14の アーカイブをダウンロードし、ターミナルのルート・ディレクトリのterminal64.exeの隣に展開し、ターミナルを再起動します:

プロジェクトでは、デモを見ることができるように、例のために最も単純に訓練されたmodel.onnxがすぐに添付されています。



自分でモデルを学習するには、プロジェクトに含まれるpythonスクリプトを使用する必要があります:

  1. Python 3 (例:Python 3.10)をインストールし、パッケージを配布/更新する:
    python.exe -m pip install --upgrade pip
    pip install --upgrade tensorflow
    pip install --upgrade pandas
    pip install --upgrade scikit-learn
    pip install --upgrade matplotlib
    pip install --upgrade tqdm
    pip install --upgrade metatrader5
    pip install --upgrade onnx==1.12
    pip install --upgrade tf2onnx
    onnxパッケージは、tensorflowの要件と衝突しないように、バージョン1.12を明示的に指定してください。

  2. MetaEditorを実行し、ツール -> オプション -> コンパイラでPythonが認識されていることを確認してください:



    必要であれば、エディタが自分でパスを検出できない場合は、自分でパスを指定してください。

  3. 取引ターミナルはEURUSDのサーバー(例えばMetaQuotes-Demo)に接続されている必要があります。

    ターミナルの設定でPythonとの統合が有効になっていることを確認してください。オフになっている場合は、オンにしてターミナルを再起動してください:




  4. ナビゲーターのONNX.Price.Predictionプロジェクトに移動し、PricePredictionTraning.pyファイルを開きます。




  5. スクリプトはMetaTrader5パッケージの助けを借りてターミナルに接続し(それがオフになっている場合、それは自動的に開始されます)、EURUSD、H1のトレーニングを開始します:


    終了すると、ジャーナルエディタには
    2023.02.28 22:24:16.876 Python  107/107 [==============================] - 0 s 1 ms/step - loss: 1.9167 - mae: 0.8553
    2023.02.28 22:24:16.876 Python  test_loss=1.917
    2023.02.28 22:24:16.876 Python  test_mae=0.855
    2023.02.28 22:24:17.179 Python  saved model to C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\8 D1E0A7047FFD62A8C00B09AEC1F3004\MQL5\Shared Projects\ONNX.Price.Prediction\Python\model.onnx
    2023.02.28 22:24:17.291 Storage modify MQL5\Shared Projects\ONNX.Price.Prediction\Python\model.onnx to base
    
    新しいmodel.onnxがプロジェクトに保存/更新されます。これは既に使用可能です。

  6. PricePrediction.pyスクリプトを実行し、モデルが動作することを確認します:
    .
    2023.02.28 22:27:46.078 Python  data path to load onnx model C:\Users\sys\AppData\Roaming\MetaQuotes\Terminal\8 D1E0A7047FFD62A8C00B09AEC1F3004\MQL5\Shared Projects\ONNX.Price.Prediction\Python\
    2023.02.28 22:27:46.078 Python  [[[1.061412 1.062328 1.060358 1.061169]]]
    2023.02.28 22:27:46.078 Python  [[[0.00105361 0.00119785 0.00074662 0.00125179]]]
    2023.02.28 22:27:46.078 Python  [[[ 0.18792516  0.17698306  0.01607251 -0.45455042]
    2023.02.28 22:27:46.078 Python    [-0.77068297 -0.50757406  0.2839477   0.36827372]
    2023.02.28 22:27:46.078 Python    [ 0.21639867 -0.3823502   0.48485409 -0.19891574]
    2023.02.28 22:27:46.078 Python    [-0.46696554 -0.31556414  0.33752274  0.48011389]
    2023.02.28 22:27:46.078 Python    [ 0.3302927   0.7196198   1.36884221  1.56656129]
    2023.02.28 22:27:46.078 Python    [ 1.63058293  1.46261473  1.39562973  1.74231014]
    2023.02.28 22:27:46.078 Python    [ 1.82040632  1.84663458 -0.26519644 -0.52644768]
    2023.02.28 22:27:46.078 Python    [-0.84661232 -0.50757406 -0.45270907 -0.86995678]
    2023.02.28 22:27:46.078 Python    [-1.27371495 -1.11699687 -1.10900328 -0.48650476]
    2023.02.28 22:27:46.078 Python    [-0.82762998 -1.37579285 -2.0599602  -1.62088366]]]
    2023.02.28 22:27:46.094 Python  [[-1.6349795]]
    2023.02.28 22:27:46.094 Python  predict:  [1.05912]
    
  7. テストサンプルは動作しました!


これは、モデルのトレーニングと実行の両方を実証するために特別に作成された例です。

pythonパッケージonnxとtf2onnxを使用して、独自のTensorFlowモデルをONNX形式に変換することができます:

import tf2onnx
...
onnx_model = tf2onnx.convert.from_keras(model, output_path=output_path)

ps: 古いバージョンでは関数のプロトタイプが変更されているため、プロジェクトの最新バージョンを使用してください。
 

うまくいった。

2023.03.01 06:54:34.987 ONNX.Price.Prediction (EURUSD,H1)       [-0.20001383]
2023.03.01 06:54:34.988 ONNX.Price.Prediction (EURUSD,H1)       predicted 1.0581684510582798
 
Renat Fatkhullin #:
  1. Python 3 (e.g. Python 3.10) を入れて、パッケージを配布/更新する:
    tensorflowの要件と衝突しないように、バージョン1.12を明示した onnxパッケージ

このパッケージはインストールできませんでした。最初にCMakeをインストールする必要がありました。今度は Visual Studio のインストールが必要ですか?

CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
 
Aleksey Nikolayev #:

このパッケージをインストールできなかった。ーまずーCMケをーったな。

あなたはまだ、相互非互換の地獄と戦い、Pythonのタスクのために別々の環境を作る道の始まりにいるのです。

ーあるパッケージはーではーあるパッケージはーにはーあるパッケージはーあるパッケージはーあるパッケージのーあるパッケージ。

理由: