記事"遺伝的アルゴリズム - とても簡単です!"についてのディスカッション - ページ 14

 
こんにちは!
遺伝的アルゴリズムの 使用に関する記事を読みました。とても感動しました!

ZigZagインジケーターの使い方についていくつか質問がありますが、一番重要なのは、トレーニングのためにインジケーターからどのようにシグナルを出すかということです。

インジケーターには可変ステップがあります。
よろしくお願いします。
 
Debugger:
1)遺伝的アルゴリズムの 使用に関する記事を読みました。

2) インジケーターからのシグナルをどのようにトレーニングにフィードして いますか?

3) インジケーターには可変ステップがあります。

メッセージに若干の訂正があったことをお詫びします。ご理解いただければ幸いです。よろしくお願いします。:)

それでは:

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

2) 別に投売りしているわけではありません。この記事では、Alternative ZZの 極値を検索し、ZZインジケータの 利益(スプレッドを考慮した最大利益のために特別なスクリプトで事前に設定されています)とpipsの合計利益を比較しています。

3)また、UGAの機能のデモンストレーションには関係ありません。:)


ZЫ.もし私があなたの質問を十分にカバーしていなければ、もっと質問してください。

 

素晴らしい記事だ。

ひとつ明確にしておきたいことがある:

3.10 GenoMerging. Заимствование генов

このGA演算子には自然に等価なものはない

それは完全な真実ではない。

自然界におけるこのプロセスは、遺伝子の水平移動と 呼ばれている。

一般的には、著者に敬意と尊敬の念を表しますが、このライブラリーをクラスでラップして、使用の機動性を確保する必要があります。

boolからdoubleへの変換についての指摘から - 計算量が増えるのですか?

私が理解したところでは、すべての遺伝子について、同じ変動範囲と同じ精度が設定されています。 範囲は特別な役割を果たすものではなく、どのような望ましい範囲も必要な範囲に「押し込める」ことができます。しかし精度はより難しく、最大にしなければならない。また、ある変数について1000個の異なる値を検索する必要がある場合、同じ検索範囲が他のすべての変数、たとえブール変数であっても自動的に割り当てられる。そのような変数の値を計算するために、アルゴリズムがかなり大きな計算資源を費やすことになりませんか?例えば、範囲が-10から10、精度が0.1のbool変数があるとします。この変数のアルゴリズムでは、100通りの値「true」と100通りの値「false」があり、フィットネス関数の同じ2つの値を与えることがわかります。さらに、母集団自体には、アルゴリズムによってこの変数で異なる多くの異なる個体が含まれるかもしれませんが、doubleの実数はboolなので同じです。

少なくとも各遺伝子の精度を設定するために、もう1つ配列を導入すべきではないでしょうか?

 
Laryx:

1- 素晴らしい記事だ。ちょうどこういうものを探していたところだ。

2.私が理解したところでは、すべての遺伝子について、同じ変動範囲と同じ精度が設定されています。 範囲は重要ではなく、どのような望ましい範囲も必要な範囲に「絞り込む」ことができます。しかし精度はもっと難しく、最大にしなければならない。また、ある変数に対して1000通りの値を検索する必要がある場合、同じ検索範囲が他のすべての変数、たとえブール変数であっても自動的に割り当てられてしまう。そのような変数の値を計算するために、アルゴリズムが計算リソースのかなりの部分を費やすことになりませんか?例えば、範囲が-10から10、精度が0.1のbool変数があるとします。この変数のアルゴリズムでは、100通りの値「true」と100通りの値「false」が存在し、フィットネス関数の同じ2つの値を与えることがわかります。さらに、母集団自体には、アルゴリズムによってこの変数で異なる多くの異なる個体が含まれるかもしれませんが、doubleの実数はboolなので同じです。

3.少なくとも各遺伝子の精度を指定する別の配列を導入すべきではないでしょうか?

1.ありがとうございます。

2.この記事は、読者が理解しやすいように、できるだけシンプルなアルゴリズム(オープンソースプロジェクト)にしている。これは、必要に応じて改良や装飾を加えるための出発点である。

3.もちろん、私自身は遺伝子ごとにカスタマイズ可能なステップ(精度)を使っている(クローズドプロジェクト)。

 

このGA開発は、確かに名誉ある注目に値する)。

また、MT5ではMT4と異なり、最適化は最終日までしかできないため、なおさらです。このニュアンスを考慮すると、このトピックはニューロアドバイザーのユーザーや開発者にとって、ますます関連性が高まるだろう。そしてもちろん、遺伝的アルゴリズムがニューラルネットワークの数学的モデルと、右の靴と左の靴のように切り離せないものであることは間違いない。)

そこで質問したい。アンドレイ、これらのテストや実験に基づいて(そして私は、あなたがそれらを十分に行ったことを疑いません)、あなたの意見では、そしてあなたのEAに関連して(そしておそらくあなただけでなく)、最適化において最高の結果を与えるものは何ですか?あなたのGAですか、それともターミナルの内部GAですか?

ご回答ありがとうございました。

 
wiantin:

...あなたの意見では、そしてあなたのEAに関連して(そして多分あなただけでなく)、最適化でより良い結果を与えるものは何ですか?あなたのGAですか、それともターミナルの内部GAですか?

私のGAはより良い結果をもたらします。よりカスタマイズできる。

最新のバージョンでは、エリート選択の要素を含む多基準検索が実装されている。

しかし、社内オプティマイザーも非常に優れており、もっと多くの設定や多基準検索があれば、何の価値もないだろう。

 
joo:

そして最新のバージョンは、エリート選択の要素を含む多基準検索を実装している。

それらに慣れる可能性はありますか?
 

UGAlib.mqh (264,24) の配列が範囲外 です。

遺伝子の許容数を増やす方法がわからない。

遺伝子数を増やしたときだけでなく、エラーが出るようになった

更新2 わかったことは、ライブラリの問題ではなく、mql5が私の設定したサイズのアレイを受け付けないということだ。

 
wiantin:
彼らに慣れる方法はありますか?
いいえ、フォローアップ記事を書こうと 思ったときだけです。
 
ozer-man:

UGAlib.mqh (264,24) の配列が範囲外です。

遺伝子数を増やす方法がわからない。

遺伝子数を増やしたときだけでなく、エラーが出るようになった

アップデート2で 分かったのだが、問題はライブラリにあるのではなく、mql5が私が設定したサイズのアレイを受け付けないのだ。

このエラーは、2次元目のサイズが固定array[][const]であることに起因する。

この制限から逃れるには、構造体(またはクラス)を使う必要がある:

struct Сhromosome //染色体
  {
    float Gene[]; //遺伝子。
  };
Сhromosome Population[]; // 人口


ps.そして、どうして2つの投稿を見逃してしまったんだろう。:)