遺伝的アルゴリズムとその応用の可能性 - ページ 4 1234567891011...15 新しいコメント Slava 2020.03.16 19:08 #31 Edgar Akhmadeev: 昔、EAでフレームを使った時に書いたことがあります。正確なポイントは覚えていませんが、全コマ(最良の結果)が得られていないようです。古い記事を探して、解明してみます。 しかし、Expert Advisorでは、オーバーシュートの数が一定数を超え、それが科学的に表示された途端に、私の遺伝子が壊れてしまうという、はっきりとした再現性があったことを記憶しています。重要なのは、変数のステップ数が大きいだけでなく、変数の数も大きいということでした。 すべてに意味がある。 大きな」遺伝子に関するフレームには問題があります。 必ず直します。 Edgar Akhmadeev 2020.03.16 19:23 #32 Slava: 全く正常に動作しない」とはどういうことですか? どうすれば誤動作を再現できるのか? https://www.mql5.com/ru/forum/321656/page17#comment_13569022 もうフレームで確認することはない、諦めた。 しかし、通常のゲン担ぎでは、前回のビルドで確認しました。以下は、「桁あふれ」を起こさない場合の結果です。 中断後。 2020.03.16 20:50:57.436 Tester genetic optimization finished on pass 646 (of 160164854439975000) 2020.03.16 20:50:57.436 Statistics optimization done in 8 minutes 36 seconds 2020.03.16 20:50:57.436 Statistics shortest pass 0:00:00.002, longest pass 0:00:23.060, average pass 0:00:06.276 オーバーフロー」あり。 EAによる何度かの割り込みパス(入力変数が正しいかどうかのチェック)を経た後、ジェネが永遠に止まってしまった。 中断後。 2020.03.16 20:59:08.235 Tester genetic optimization finished on pass 18 2020.03.16 20:59:08.235 Statistics optimization done in 6 minutes 10 seconds 2020.03.16 20:59:08.235 Statistics shortest pass 0:00:00.003, longest pass 0:00:05.978, average pass 0:00:01.339 実際の結果は一つもない。 例としてAdvisors/MAPSARSizeOptimized.ex5を試したところ、うまくいきました。桁あふれ」や「フレーム」の問題は、私のEAでしか再現できないことは明らかなのですが、どうやって問題を見つけるのか...。OnTradeTransactionなど、すべてが非常に複雑です。フレームも外しました。コードをお見せすることはできませんし、1メガバイトほどの巨大なものです。また、再現性のある例まで切り詰めると、絶望的なほど長い時間がかかります。時間があれば、OnTradeTransactionを削除してみたり、他の仕掛けをしてみようと思います。 実は、パスの数を超えなければ、すべてうまくいくのです。 そして、フレームはビルド2286包括まで(超過することなく)問題なく動作しました。 Тестер стратегий MetaTrader 5: ошибки, баги, предложения по улучшению работы 2019.10.16www.mql5.com В настоящий момент тестер стратегий MetaTrader 5 подвергается глубокой переработки командой MQ... Andrey Dik 2020.03.16 20:39 #33 Igor Makanu: ... GA は、しばらくすると、最適化パラメータの小さなグループに収束し始めることがあります。 ... ある極値への収束は、あらゆる最適化アルゴリズムにとって完全に正常な現象であり、このセクションがグローバルでもローカルでもない/ないと仮定する示唆はない。 また、あるセグメントを踏破し始めたときに、極限が見つかるかどうか、事前にわからないが、必ず別の場所を探索する必要がある、といった突然変異の割合(あるいは探索範囲の拡大を増幅するロジックに相当)を増幅できる仕組みをAOは持つべきであると考えます。 例えば、最大残高の基準が設定され、いくつかのまたは多くのポイントが絶対的にそれに対応するかもしれませんが、そのうちのいくつかだけが本当の価値を持っています。例えば、残高98756423は11%のドローダウンで1523回の取引で到達し、同じ残高は95%のドローダウンで12回の取引で到達しました、この二つの違いは何でしょうか。 Stanislav Korotky 2020.03.16 20:44 #34 Edgar Akhmadeev: 試験官による中断されたパス(入力変数が正しいかどうかのチェック)を何度か経た後、ジェネティクスは永遠に停止したままだ。中断した後。 実際の結果は一つもない。 フォーラムに書いたかどうか忘れましたが、本当に問題で、なぜMTに実装されているのかが不明です。もしエキスパートが "間違ったパラメータ "というエラーコードを 返した場合、テスターは代わりに別のインスタンスを生成し、母集団を完成させなければならない、という考え方があります。 Edgar Akhmadeev 2020.03.16 21:14 #35 Stanislav Korotky: フォーラムに書いたかどうか忘れましたが、本当に問題で、なぜMTに実装されているのかが不明です。もしエキスパートが "間違ったパラメータ "というエラーコードを 返した場合、テスターは代わりに別のインスタンスを生成し、母集団を完成させなければならない、という考え方があります。 すべての不正なパラメータの組み合わせに対してINIT_PARAMETERS_INCORRECTを返すと、その数が多すぎて生成はエラーで終了してしまいます。そこで、特定のパラメータがおかしいときだけ、INIT_PARAMETERS_INCORRECTを返すようにしています。また、組み合わせが悪い場合(一方のパラメータが他方を上回ってはいけない)、パスを停止し、INIT_SUCCEEDEDとCustom = -Nを返します。これはおそらく遺伝子を狂わせるのでしょうが、選択肢はないでしょう。というか、間違った組み合わせ(特に、v1=X, v2=Y+v1 のように、あるパラメータを別のパラメータにデルタ化する)を取り除くという選択肢もあるのですが、変異原性が強すぎるのです。2つのパラメータは硬くリンクされ、一方を変えるとすべてがずれてしまう。私は、このオプションから離れ、エラーの代わりに偽の結果を出すことを優先しました。 Andrey Dik 2020.03.16 21:19 #36 Edgar Akhmadeev: 間違ったパラメータの組み合わせに対してすべてINIT_PARAMETERS_INCORRECTを返すと、その数が多すぎて生成はエラーで終了してしまいます。なので、特定のパラメータがおかしいときだけ、INIT_PARAMETERS_INCORRECTを返すようにしています。また、組み合わせが悪い場合(一方のパラメータが他方を上回ってはいけない)、パスを停止し、INIT_SUCCEEDEDとCustom = -Nを返します。これはおそらく遺伝子を狂わせるのでしょうが、選択肢はないでしょう。というか、間違った組み合わせ(特に、v1=X, v2=Y+v1 のように、あるパラメータを別のパラメータにデルタ化する)を取り除くという選択肢もあるのですが、変異原性が強すぎるのです。 2つのパラメータは硬くリンクされ、一方を変えるとすべてがずれてしまう。私は、エラーではなく偽の結果を優先して、このオプションをあきらめました。 良いオプションは、無効な variant の場合、エラーの代わりに -DBL_MAX を返すことです。 また、クラウドエージェントを含む全てのCPUコアやネットワークエージェントを使用することができ、早すぎるパス完了や人員不足でエージェントがアイドル状態になることを避けることができました。 通常のオプティマイザに数種類のAOを実装し、さらにパラメータを付けて実装する計画があるという情報が、tSSSSSだけありますが、これは不正確な情報です。 Igor Makanu 2020.03.16 21:37 #37 Andrey Dik: は、無効な variant に対して、エラーの代わりに -DBL_MAX を返すようにするとよいでしょう。 また、ランダムな値を返した場合、AOは悪化するのでしょうか? Andrey Dik 2020.03.16 21:56 #38 Igor Makanu: また、レンダリングされた値を返すと、AOが悪くなるのでしょうか? もっとひどい AOの頭を混乱させるのが目的なら、乱数を返すのが一番いい方法です。 Edgar Akhmadeev 2020.03.16 21:58 #39 Andrey Dik: は、無効な variant ではエラーの代わりに -DBL_MAX を返すようにするとよいでしょう。 これはやりすぎだ、グラフがスケーリングされているので、有用な結果が見えない。最悪のケースである「カスタム」よりも少し高い値を返す。しかし、肝心なのは、改善の方向性を正しく設定することです。 イゴール・マカヌ また、レンダリングされた値を返した場合、AOにとって不利になるのでしょうか? 何が言いたいの?正しい方向性を示すことがメインなので、弱いだけでなく、ここで最悪の結果を示したというGAを見せなければならないのです。 Edgar Akhmadeev 2020.03.16 22:01 #40 Slava: 全く動かない」とはどういうことですか? 誤操作を再現するにはどうしたらよいですか? OnTradeTransactionを削除しましたが、役に立ちませんでした。考え続ける。 1234567891011...15 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
昔、EAでフレームを使った時に書いたことがあります。正確なポイントは覚えていませんが、全コマ(最良の結果)が得られていないようです。古い記事を探して、解明してみます。
しかし、Expert Advisorでは、オーバーシュートの数が一定数を超え、それが科学的に表示された途端に、私の遺伝子が壊れてしまうという、はっきりとした再現性があったことを記憶しています。重要なのは、変数のステップ数が大きいだけでなく、変数の数も大きいということでした。
すべてに意味がある。
大きな」遺伝子に関するフレームには問題があります。
必ず直します。
全く正常に動作しない」とはどういうことですか?
どうすれば誤動作を再現できるのか?
https://www.mql5.com/ru/forum/321656/page17#comment_13569022
もうフレームで確認することはない、諦めた。
しかし、通常のゲン担ぎでは、前回のビルドで確認しました。以下は、「桁あふれ」を起こさない場合の結果です。
中断後。
オーバーフロー」あり。
EAによる何度かの割り込みパス(入力変数が正しいかどうかのチェック)を経た後、ジェネが永遠に止まってしまった。 中断後。
実際の結果は一つもない。
例としてAdvisors/MAPSARSizeOptimized.ex5を試したところ、うまくいきました。桁あふれ」や「フレーム」の問題は、私のEAでしか再現できないことは明らかなのですが、どうやって問題を見つけるのか...。OnTradeTransactionなど、すべてが非常に複雑です。フレームも外しました。コードをお見せすることはできませんし、1メガバイトほどの巨大なものです。また、再現性のある例まで切り詰めると、絶望的なほど長い時間がかかります。時間があれば、OnTradeTransactionを削除してみたり、他の仕掛けをしてみようと思います。
実は、パスの数を超えなければ、すべてうまくいくのです。
そして、フレームはビルド2286包括まで(超過することなく)問題なく動作しました。
...
GA は、しばらくすると、最適化パラメータの小さなグループに収束し始めることがあります。
...
ある極値への収束は、あらゆる最適化アルゴリズムにとって完全に正常な現象であり、このセクションがグローバルでもローカルでもない/ないと仮定する示唆はない。
また、あるセグメントを踏破し始めたときに、極限が見つかるかどうか、事前にわからないが、必ず別の場所を探索する必要がある、といった突然変異の割合(あるいは探索範囲の拡大を増幅するロジックに相当)を増幅できる仕組みをAOは持つべきであると考えます。
例えば、最大残高の基準が設定され、いくつかのまたは多くのポイントが絶対的にそれに対応するかもしれませんが、そのうちのいくつかだけが本当の価値を持っています。例えば、残高98756423は11%のドローダウンで1523回の取引で到達し、同じ残高は95%のドローダウンで12回の取引で到達しました、この二つの違いは何でしょうか。
試験官による中断されたパス(入力変数が正しいかどうかのチェック)を何度か経た後、ジェネティクスは永遠に停止したままだ。中断した後。
実際の結果は一つもない。
フォーラムに書いたかどうか忘れましたが、本当に問題で、なぜMTに実装されているのかが不明です。もしエキスパートが "間違ったパラメータ "というエラーコードを 返した場合、テスターは代わりに別のインスタンスを生成し、母集団を完成させなければならない、という考え方があります。
フォーラムに書いたかどうか忘れましたが、本当に問題で、なぜMTに実装されているのかが不明です。もしエキスパートが "間違ったパラメータ "というエラーコードを 返した場合、テスターは代わりに別のインスタンスを生成し、母集団を完成させなければならない、という考え方があります。
すべての不正なパラメータの組み合わせに対してINIT_PARAMETERS_INCORRECTを返すと、その数が多すぎて生成はエラーで終了してしまいます。そこで、特定のパラメータがおかしいときだけ、INIT_PARAMETERS_INCORRECTを返すようにしています。また、組み合わせが悪い場合(一方のパラメータが他方を上回ってはいけない)、パスを停止し、INIT_SUCCEEDEDとCustom = -Nを返します。これはおそらく遺伝子を狂わせるのでしょうが、選択肢はないでしょう。というか、間違った組み合わせ(特に、v1=X, v2=Y+v1 のように、あるパラメータを別のパラメータにデルタ化する)を取り除くという選択肢もあるのですが、変異原性が強すぎるのです。2つのパラメータは硬くリンクされ、一方を変えるとすべてがずれてしまう。私は、このオプションから離れ、エラーの代わりに偽の結果を出すことを優先しました。
間違ったパラメータの組み合わせに対してすべてINIT_PARAMETERS_INCORRECTを返すと、その数が多すぎて生成はエラーで終了してしまいます。なので、特定のパラメータがおかしいときだけ、INIT_PARAMETERS_INCORRECTを返すようにしています。また、組み合わせが悪い場合(一方のパラメータが他方を上回ってはいけない)、パスを停止し、INIT_SUCCEEDEDとCustom = -Nを返します。これはおそらく遺伝子を狂わせるのでしょうが、選択肢はないでしょう。というか、間違った組み合わせ(特に、v1=X, v2=Y+v1 のように、あるパラメータを別のパラメータにデルタ化する)を取り除くという選択肢もあるのですが、変異原性が強すぎるのです。 2つのパラメータは硬くリンクされ、一方を変えるとすべてがずれてしまう。私は、エラーではなく偽の結果を優先して、このオプションをあきらめました。
良いオプションは、無効な variant の場合、エラーの代わりに -DBL_MAX を返すことです。
また、クラウドエージェントを含む全てのCPUコアやネットワークエージェントを使用することができ、早すぎるパス完了や人員不足でエージェントがアイドル状態になることを避けることができました。
通常のオプティマイザに数種類のAOを実装し、さらにパラメータを付けて実装する計画があるという情報が、tSSSSSだけありますが、これは不正確な情報です。
は、無効な variant に対して、エラーの代わりに -DBL_MAX を返すようにするとよいでしょう。
また、ランダムな値を返した場合、AOは悪化するのでしょうか?
また、レンダリングされた値を返すと、AOが悪くなるのでしょうか?
もっとひどい
AOの頭を混乱させるのが目的なら、乱数を返すのが一番いい方法です。
は、無効な variant ではエラーの代わりに -DBL_MAX を返すようにするとよいでしょう。
これはやりすぎだ、グラフがスケーリングされているので、有用な結果が見えない。最悪のケースである「カスタム」よりも少し高い値を返す。しかし、肝心なのは、改善の方向性を正しく設定することです。
また、レンダリングされた値を返した場合、AOにとって不利になるのでしょうか?
何が言いたいの?正しい方向性を示すことがメインなので、弱いだけでなく、ここで最悪の結果を示したというGAを見せなければならないのです。
全く動かない」とはどういうことですか?
誤操作を再現するにはどうしたらよいですか?
OnTradeTransactionを削除しましたが、役に立ちませんでした。考え続ける。