皆さん、こんにちは!
記事を楽しんでいただけたなら幸いです。
UGAをOOPに変換する方法についてのヒントをお聞かせいただければ幸いです。
これが
MathSrand((int)TimeLocal());
最適化されたときに機能するかどうかを確認したいのですが。
テスターでライブラリを実行しましたか?
1)私は、これが次のようなものになるかどうかを確かめたい。
MathSrand((int)TimeLocal());
最適化されたときに機能するか?
2) ライブラリをテスターで実行しましたか?
1) 動作しない理由はないと思います。
2) この単純な質問に対して、二言で網羅的な回答をすることはできません。
トレーダーの最適化問題は、条件付きで2つのタイプに分けることができます。
a) ローカル問題 -各ティックで 実行されるトレーダー/TSのすべてのアクションの集合 (これもローカルタスクに分けることができる)。このタイプの例としては、記事の最初のタスク(方程式を解く、最適なオプション価格を選択する、その他同様のタスク)がある。これらは「将来の」価格履歴を必要としない。
b) グローバル・タスク - すべてのローカル・タスクの関数の最適化 (報告期間の総利益、ドローダウン、MO など)。最適化される期間の全価格履歴が必要である。社内テスターは、まさにこのタイプのタスクを実行します。
UGA は、標準テスターに依存しないように設計されており、「自家製」テスターを含め、アルゴリズム・コードを変更することなく、グローバル・タスクとローカル・タスクの両方に使用することができます。標準テスターの枠組みの中で、UGAはローカルタスクにおいてのみ変更なしで使用できる。グローバルタスクについては、テスター内で変更する必要がある。
独自の最適化アルゴリズムを持つテスターで、最適化アルゴリズムを使用する必要はまだありません。
あなたのタスクを一般的な言葉で説明してください。
ありがとう、joo!
遺伝的アルゴリズムの 実用化について疑問が生じた
この論文では
- 与えられた区間における2変数の関数の最大/最小を求める。
- 利益関数の最大値を求める(ZigZagの例)。
このアルゴリズムが役に立つと思われる実践的な取引タスクの例を挙げてください。
- 2010.05.25
- Andrey Dik
- www.mql5.com
一般的な用語であなたの問題を記述し、我々はここでそれを解決する方法を見ていきます。
問題は単純です。srand()関数で、テスターを実行するたびにジェネレーターをランダムな開始点に設定したいのです。
MathSrand((int)TimeLocal())は、テスターを複数回実行するたびに、ジェネレーターを前の(同じ)初期状態に設定することがわかりました。
テスターを実行するたびに、srand()関数でジェネレーターをランダムな開始点に設定したいのです。
MathSrand((int)TimeLocal())は、テスターを複数回実行するたびに、ジェネレーターを前の(同じ)初期状態に設定することがわかりました。
TimeLocalは秒単位で時間を与えます。テスト時には、生成されたテスト時間と同じになります。
GetTickCountを使ってみて ください。これは正直にミリ秒を与え、何もエミュレートしません。
テスト時には、同じ生成テスト時間となる。
О!ありがとう。
ありがとう、joo!
遺伝的アルゴリズムの 実用化について疑問が生じた
この論文では
- 与えられた区間における2変数の関数の最大/最小を求める。
- 利益関数の最大値を求める(ZigZagの例)。
このアルゴリズムが役に立つと思われる実践的な取引タスクの例を挙げてください。
一般的に経済的なタスク、特にトレーダーのタスクは、ほとんどが最適化の性質を持っています。
トレーダーは常にTSの最適なパラメータを探しています。以下は、UGAが解決に役立つタイプのタスクの不完全なリストです:
-インジケータの最適パラメータを見つける
-MMの最適パラメータの検索
-指標におけるフィルター(デジタルフィルターの係数探索を含む)の最適設定探索。
-任意のトポロジー、任意のサイズのニューラルネットワークの学習
-任意のトポロジー、任意のサイズのネットワークの委員会のトレーニング。(委員会は互いに独立したネットワークのグループ)。
UGAは、上記のタスクを個別に解決するためにも、一度にまとめて解決するためにも使用することができます。 そこで、UGAのパワーを理解してもらうために、リストの最後のタイプのタスクを解決する可能性があることで、脳のモデルを作成することができると言います(ご存知のように、脳は部門から構成されています)。
タスクのリストは、フォーラムのスレッドを見るだけで、長く続くことができます。
クールな内容で、よく書けている。私自身も遺伝的最適化で遊んだことがあるが、残念ながらほとんどメリットを見いだせなかった。GAは通常、全体最適化の手法と考えられている。しかし、時間(コロニーの大きさ)が限られている場合、GAも勾配降下法と同様、局所最小値に収束するのが非常に遅くなります。もちろん、入力パラメータのすべての可能な組み合わせを鈍感に探索する手法に比べれば、GAがスピードにおいて優位であることは否定できない。GAの広範な応用例のひとつに、多数の係数を持つ多層ニューラルネットワークの 学習がある。このようなネットワークは膨大な数の局所極小値を持つ。なぜか、GAがこの弊害を解決するものと考えられている。しかし実際には、その治療法は適用されるツール、つまりこの場合は多層ネットワークなのだ。高い分類精度(買い/売り/ホールドのような)や、シンプルで明確な最適化を伴う回帰外挿が可能な別のツールを選択する方がはるかに簡単である;-)。
1) クールな内容で、よく書けている。
2) 私自身も遺伝的最適化で遊んでいるが、残念ながらあまり有益なものは見つかっていない。GAは通常、全体最適化の手法と考えられている。しかし、時間(コロニーの大きさ)が限られている場合、GAも勾配降下法と同じように局所最小に収束し、しかもかなりゆっくりと収束します。 もちろん、入力パラメータのすべての可能な組み合わせを鈍感に探索する手法に比べれば、GAがスピードにおいて優位であることは否定できない。GAの広範な応用例のひとつに、多数の係数を持つ多層ニューラルネットワークの学習がある。このようなネットワークは膨大な数の局所極小値を持つ。なぜか、GAがこの弊害を解決するものと考えられている。しかし実際には、その治療法は適用されたツール、つまりこの場合は多層ネットワークなのだ。高精度の分類(買い/売り/ホールドのような)や、シンプルで明確な最適化を伴う回帰外挿が可能な別のツールを選択する方がはるかに簡単である;-)。
1) 嬉しいお言葉をありがとうございます。
2) あなたの知識を疑っているわけではありませんが、それでも遺伝的アルゴリズムを扱うにはある程度のスキルが必要です。
UGAは、アルゴリズムを変更することなく、どのような最適化問題にも使用できる普遍的なツールとして開発されました。UGAは、さらなる修正や特定の演算子の追加に最大限利用可能です。このような特性を持つ最適化アルゴリズムをご存知ですか?
なぜGAが様々な最適化問題に対する万能薬であると考えられているのか、私自身はそうは思いませんし、どこにもそのようなことは書いていません。もちろん、特定のタスクごとに、実行速度と最終結果の両面から最適な最適化ツールを選択することはできます。UGAは、普遍的なものという異なる目標を掲げている。
MQL4フォーラムのスレッド"Test Multivariable Multiextreme Function " にいくつかの興味深いテスト関数を投稿しました。
もし必要であれば、GA以外の他の最適化アルゴリズムを使って、提案した関数の極値を見つけてみて、その結果をここに投稿してください。大歓迎だ。それは誰にとっても興味深いことだし、そもそも私にとっても興味深いことだ。
追記:反対(太字)を納得させるために、この記事で提案されているアルゴリズムを知ることをお勧めする。
幸運を祈る!
- www.mql5.com
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 遺伝的アルゴリズム - とても簡単です! はパブリッシュされました:
この記事では、執筆者は遺伝的アルゴリズムを使用した進化計算について紹介しています。例を用いながらアルゴリズムの機能について紹介し、実用的な推奨される用例を提示しています。
作者: Joo Zepper