記事「機械学習に基づく平均回帰戦略の作成」についてのディスカッション - ページ 9

 

こんにちは、マキシム。同僚の皆さん、こんにちは。

切実な質問があります。

ボットに追加機能(ブレークイーブンとトロールスラムへのポジション出力)を追加したかったのですが、ソースコードのコンパイルが不可能なことに遭遇しました(私はMT5パッケージの標準コンパイラを使用しています)。
、著者が記事に添付した オリジナルのソースコード平均reversion.mq5さえも通りません。
問題は、関数OnnxSetInputShapeとOnnxSetOutputShape(51、58、66、71行目)にあります
mql5のヘルプによると、これらの関数の入力データは3つの変数で、2つはlong型、3つ目はconst ulong型です。しかし、Expert Advisor のコードによると、検討中の関数で初期変数として使用されている 変数ExtInputShape、 ExtInputShape2、output_shape は const long として初期化されています 31、32、65 行目)

変数のデータ型をconst ulongに変更すると、コンパイルは成功します。しかし、ボットは "利益中 "に動作しなくなります。つまり、実装された取引戦略アルゴリズムが実行されません。

この問題を解決する方法を教えてください。最後に外部コンパイラを使用するオプションを考えています。コードの正しさをチェックすることなく、標準のMT5ツールでコンパイルすることは可能ですか?

削除済み  
Vladimir Levchenko long型、3つ目はconst ulong型です。しかし、Expert Advisorのコードによると、検討中の関数で初期変数として使用されている 変数ExtInputShape、 ExtInputShape2、output_shapeはconst longとして初期化されています 31、32、65行目)

変数のデータ型をconst ulongに変更すると、コンパイルは成功します。しかし、ボットは "利益中 "に停止します。つまり、実装された取引戦略アルゴリズムは実行されません。

この問題を解決する方法を教えてください。最後に外部コンパイラを使用するオプションを考えています。コードの正しさをチェックすることなく、標準のMT5ツールでコンパイルすることは可能ですか?

このオプションを試してみてください。ulong以外に何を変更したか覚えていません。そうそう、アップデート後、いくつかのph-iaseが以前と違う動作をするようになった。

インクルードファイルからフェーズの名前を#defineに書いてください。
ファイル:
 
Maxim Dmitrievsky #:

このオプションを試してみてください。ulong以外に何を変えたか覚えていない。そうそう、アップデート後、いくつかのph-iaseが以前と違う動作をするようになった。

defineには、インクルードファイルのフェーズ名を書いてください。

いい日だ。

やったよ。しかし、残念ながら原因は他にあります。コンパイルしたバージョンと、変数の型をulongに置き換えたバージョンの結果のスクリーンショットを添付します。

LONG変数の場合 ULONGへの変更後。

削除済み  
Vladimir Levchenko #:

こんにちは。

やったよ。しかし、残念ながら原因は他にあります。あなたのコンパイルしたバージョンと変数型をulongに置き換えたバージョンの結果のスクリーンショットを添付します。


ボットでもトレーニング時と同じタイプの属性を使用していますか?あなたはパイソンスクリプトで属性を変更しましたが、インクルニックでは変更していません。
なぜなら、私があなたに投げたこの変形は、私にとっては問題なく機能するからです。
グラフのカーブから判断すると、モデルはトレーニングされた特徴を取得していません。
 
Maxim Dmitrievsky #:
ボットでトレーニング時と同じタイプの属性を使用していますか?python スクリプトでは属性を変更しているのに、inklulnik では変更していないことがあります。
なぜなら、私があなたに投げたこの変形は、私にとっては問題なく機能するからです。
グラフのカーブから判断すると、モデルはトレーニングされた特徴を取得していません。

おそらく。
しかし、モデルトレーニングのアルゴリズムはまだ研究・実現段階にある。Mql5では問題ないのですが、Pythonではまだ友達になるのに苦労しています。

削除済み  
Vladimir Levchenko #:

おそらく。
ただ、モデル学習のアルゴリズムはまだ研究・実現の段階です。Mql5は問題ないのですが、pythonとの親和性がまだちょっと難しいです。

確認したところ、すべて動作しています。上記の記事と更新したボットの学習済みモデルのファイルを添付します。

記事にはデモモデルが添付されているので、その後再学習するのが望ましい。pythonスクリプトが理解できたら。


 
Maxim Dmitrievsky #:

確認したところ、すべてうまくいった。記事の学習済みモデルのファイルと、上記の更新されたボットを添付します。

記事にデモモデルが添付されているので、その後再トレーニングするのが望ましい。pythonスクリプトが理解できたら。



はい、このリリースではボット自体はコンパイルされ、正しく動作します。しかし、モデルの再トレーニングが必要です。そして一般的に、私が理解しているように、それは定期的に行われるべきです。
私はpythonを理解しつつありますが、まだすべてを理解しているわけではありません。ノートパソコンでRutopのメインリリースを起動し、現在のバージョンにアップデートした。必要なパッケージ(pandas, numba, numpy, catboost, scipy, scikit-learn)を全てインストールした。引用符をダウンロードした。MT5のメインカタログのFilesフォルダに、quotesのファイルとすべてのスクリプトを入れた。モデル・トレーニング・スクリプトのコードにパスを書きました。
MetaEditoreでスクリプトコードを修正した。そこからスクリプトを実行しようとしました。プロセスはエラーでクラッシュします(pythonのbotsパッケージが見つからず、他のパッケージのインストールスキームに従ってインストールしようとしてもエラーで終わります)。pythonコンソールからスクリプトを実行しても同じエラーが発生します。
このトピックをどの方向に掘り下げるべきかアドバイス いただけますか?

botsパッケージのインストールエラー


スクリプト操作のエラー

削除済み  
Vladimir Levchenko #:

はい、このリリースではボット自体はコンパイルされ、正しく動作します。しかし、モデルの再学習が必要です。そして一般的に、私が理解しているように、それは定期的に行われるべきです。
私はpythonを理解しつつありますが、今のところすべてがうまくいっているわけではありません。ノートパソコンでRutopのメインリリースを起動し、現在のバージョンにアップデートしました。必要なパッケージ(pandas, numba, numpy, catboost, scipy, scikit-learn)を全てインストールした。引用符をダウンロードした。MT5のメインカタログのFilesフォルダに、quotesのファイルとすべてのスクリプトを入れた。モデルトレーニングスクリプトのコードにパスを書きました。
MetaEditoreでスクリプトコードを修正した。そこからスクリプトを実行しようとしました。プロセスはエラーでクラッシュします(pythonのbotsパッケージが見つからず、他のパッケージのインストールスキームに従ってインストールしようとしてもエラーで終わります)。pythonコンソールからスクリプトを実行しても同じエラーが発生します。
このトピックをどのような方向に掘り下げるべきかアドバイス いただけますか?

Bots は記事のモジュールがあるルートディレクトリ(フォルダ)です。もしスクリプトがモジュール(追加ファイル)をインポートするときにそれらを見ないなら、ファイルへのフルパスを書いてください。

もしくは、これらのファイルをメインスクリプトと同じフォルダに放り込んで、代わりにこれをやってください:

Было
from bots.botlibs.labeling_lib import get_labels
from bots.botlibs.tester_lib import test_model
from bots.botlibs.export_lib import export_model_to_ONNX

Стало
from labeling_lib import get_labels
from tester_lib import test_model
from export_lib import export_model_to_ONNX

PythonをインストールしたときにPYTHONPATHが設定されていないと、このようなことが起こります。Pythonのインストール時にPYTHONPATHが設定されていない場合、このようなことが起こる可能性があります。つまり、Pythonはディスク上のファイルを見ません。

あるいは、インターネット上のモジュールのインポートに関する基本的なコースを読んでください。

 
Maxim Dmitrievsky #:

Bots は、記事のモジュールが置かれるルートディレクトリ(フォルダ)です。モジュール(追加ファイル)をインポートするときに、スクリプトがそれらを見ない場合は、ファイルへのフルパスを書いてください。

あるいは、これらのファイルをメインスクリプトと同じフォルダに放り込んで、代わりにこうしてください:

これは Python をインストールしたときに PYTHONPATH が設定されていなかった場合に起こる可能性があります。Pythonのインストール時にPYTHONPATHが設定されていない場合、このようなことが起こる可能性があります。つまり、pythonはディスク上のファイルを見ません。

あるいはインターネットでモジュールのインポートに関する基本的なコースを読んでください。

ごきげんよう、マキシム。ありがとう。ほぼすべて解決しました。最後の質問です。
トレーニングモデル用のメインスクリプトにコメント行(154-182)があります。私の理解では、これらは代替ディールサンプラー(マークアップ)です。しかし、試すことができません。マークアップのどれかがコメントアウトされておらず(条件付きで、154-158行目)、オリジナルのものがコメントアウトされている場合(149-153行目)、スクリプトが開始されません。
原因は何でしょうか?

ありがとうございます。)

削除済み  
Vladimir Levchenko #:

こんにちは、マキシム。ありがとう。ほぼすべて解決しました。最後の質問です。
モデルをトレーニングするためのメインスクリプトにコメント行(154-182)があります。私の理解では、これらは代替ディールサンプラー(マークアップ)です。しかし、試すことができません。マークアップのどれかがコメント解除され(条件付きで154-158行目)、オリジナルのものがコメントされると(149-153行目)、スクリプトが起動しません。
原因は何でしょうか、どこを見ればよいでしょうか?

ありがとうございます。)

Python インタプリタが何を書いたかのログが必要です。