Данная библиотека позволяет работать с ордерами в MQL5 (MT5-hedge) точно так же, как в MQL4. Т.е. ордерная языковая система (ОЯС) становится идентичной MQL4. При этом сохраняется возможность параллельно использовать MQL5-ордерную систему. В частности, стандартная MQL5-библиотека будет продолжать полноценно работать. Выбор между ордерными...
ありがとうございます。
クローズ、オープン、ハイ、ロー、プライス・ティピカル、ティック・ボリューム、およびこれらの派生物を試してみました。
オプティマイザーが「パスが完了した後に何らかのエラーが発生した」と文句を言う問題がありましたが、最終的にこれを突き止めることができました。
例えば、Close[1]-Close[2]のような導関数を計算する場合、Closeの値が同じだと導関数がゼロになることがあります。このような入力ベクトル値に対しては、すべてのベクトル値に定数(たとえば1000)を追加するのが最も簡単な修正方法であることがわかりました。 これにより、オプティマイザーのエラーは解消され、RDFも機能するようになりました。
また、同じテストを何度も実行すると、意図しない結果になってしまうことにも気づきました。 記録したRDFファイルを削除して、もう一度最適化を実行したほうがいい場合もあります。
私はまだ実験中で、他のタイプの機能についてもアイデアがあります。
ありがとう、マキシム。
コードをいじって、特徴入力ベクトルにさまざまなタイプのデータを導入しました。 クローズ、オープン、ハイ、ロー、プライス・ティピカル、ティック・ボリューム、およびこれらの派生物を試してみました。
オプティマイザーが「パスが完了した後に何らかのエラーが発生した」と文句を言う問題がありましたが、最終的にこれを突き止めることができました:オプティマイザーのエラーは、入力ベクトルのデータにゼロ値がある場合に発生します。
例えば、Close[1]-Close[2]のような導関数を計算する場合、Closeの値が同じだと導関数がゼロになることがあります。このような入力ベクトル値に対しては、すべてのベクトル値に定数(例えば1000)を追加するのが最も簡単な修正方法であることがわかりました。 これにより、オプティマイザーのエラーは解消され、RDFも機能するようになりました。
また、同じテストを何度も実行すると、意図しない結果になってしまうことにも気づきました。 記録したRDFファイルを削除して、もう一度最適化を実行したほうがいい場合もあります。
私はまだ実験中で、他のタイプの機能についてもアイデアがあります。
こんにちは、マーク。特徴選択アルゴリズムによりますが(この記事の場合は、「再帰的消去関数」の1特徴/別の特徴(価格リターンを使用)です)、cl[1]-cl[2]を使用している場合、dividerに「0」があると、この「何らかのエラー」が発生する可能性があります。
そう、オプティマイザはランダム・サンプリング(RDFランダム・アルゴリズム)を使用しているため、実行されるオプティマイザによって異なることがあるのです。これを修正するには、エキスパートのOnInint()関数でMathSrand(number_of_passes)を使うか、他の固定数を使うことができます。
はい、すべてのロジック(RFを含む)をopen clカーネルで書き直した場合 :) また、ランダムフォレストは最悪のGPU実行可能性と並列性を持っています。
Maximさん、あなたのコードを見ていて気づいたのですが、最適化中に最適なモデル、特徴量、パラメータ 値のファイルが保存されるにもかかわらず("OFFLINE")、更新エージェントポリシーと更新エージェント報酬も "OFFLINE "になっています。オフラインモードではMQLInfoInteger(MQL_OPTIMIZATION) == trueであり、あなたのEAでデモまたはライブ口座で実行されているときはMQLInfoInteger(MQL_OPTIMIZATION) == falseなので、EAがライブで実行されている間、報酬とポリシーはどのように更新されているのでしょうか?何か見逃しているのでしょうか?
Maximさん、あなたのコードを見ていて気づいたのですが、最適化中に最適なモデル、フィーチャー、パラメータ値を含むファイルが保存されているにもかかわらず("オフライン")、更新エージェントポリシーと更新エージェント報酬も "オフライン "になっています。オフラインモードではMQLInfoInteger(MQL_OPTIMIZATION) == trueであり、あなたのEAでデモまたはライブ口座で実行されているときはMQLInfoInteger(MQL_OPTIMIZATION) == falseなので、EAがライブで実行されている間、報酬とポリシーはどのように更新されているのでしょうか?何か見逃しているのでしょうか?
ポリシーと報酬は実際の取引では更新されません。オプティマイザでランダムフォレストを 学習するためにのみ必要です。
強化学習におけるモンテカルロ法の応用」が掲載されました:
著者マキシム・ドミトリエフスキー
" #include <MT4Orders.mqh> " というファイルがありません。
これはMT4エキスパートなのでしょうか、それともMT5エキスパートなのでしょうか?
このファイルがありません、" #include <MT4Orders.mqh> " そして、フォンクションはMT4のフォンクションのように見えます。
これはMT4エキスパートなのでしょうか、それともMT5エキスパートなのでしょうか?
このライブラリを使用すると、MT4の注文スタイルをMT5で使用できます。
https://www.mql5.com/ru/code/16006
OK ありがとう
誤りまたは非推奨:
CRLAgent::getRDFstructure(void) { .......
正しい:
void CRLAgent::getRDFstructure(void) { .......
コンパイラの別バージョン?
正しくないか非推奨:
CRLAgent::getRDFstructure(void) { ... ....
right:
void CRLAgent::getRDFstructure(void) { .......
コンパイラーの別バージョン?
はい、最新のビルドではチェックが厳しくなりました。
こんにちは、マキシム。あなたの仕事ぶりには感謝しています。あなたのコードをテストしようとしたのですが、mq4ファイルに以下のようなエラーが表示されました。
'getRDFstructure' -関数は すでに定義されており、型が異なります RL_Monte_Carlo.mqh 76 11
'RecursiveElimination' - 関数はすでに定義されており、型が異なる RL_Monte_Carlo.mqh 133 11
'updatePolicy' - 関数は既に定義されており、型が異なる RL_Monte_Carlo.mqh 221 11
'updateReward' - 関数は既に定義されており、型が異なる RL_Monte_Carlo.mqh 236 11
'setAgentSettings' - 既に定義されている関数で、型が異なる RL_Monte_Carlo.mqh 361 12
'updatePolicies' - 既に定義されている関数で、型が異なる RL_Monte_Carlo.mqh 373 12
'updateRewards' - 関数はすでに定義されており、型が異なります RL_Monte_Carlo.mqh 380 12
この問題を解決する方法をご存知ですか?