メタトレーダー5でのシンボルとデータフィード - ページ 14

 
zaskok:

ほとんどのユーザーはGAという言葉すら知らないのではないでしょうか。だから、奇跡のアルゴリズムは誰よりも必要とされていないのです。

それが私の言いたいことです。

zaskok

このフォーラムは既視感が抜けない。何かの発言の証明を求められたとき。しかし、同時に、納得させるために何を提供しなければならないかがまったく明確でないため、どれも受け入れられません。

ただ、MetaQuotesは商業組織であることを忘れないでください。また、採算が合うと判断した場合のみ、資源を投入して開発を行う。まあ、そこから始めればいいんですけどね。

レナートの パラノイア」を探すのではなく、「経済的近視眼」に近いと思います。実際、MetaTraderがサブスクリプションを獲得すれば、MetaQuotesの収益は一桁増えますが、彼はそれに気がついていません......。まあ、オファーが経済的に正当なものでなければならないと思います。どの判断で利益が増えて、どの判断で利益が変わらない(減らない)のか、「MetaQuotes厨」はわかりません...。推測するしかないのですが...。

 
Prival-2:

zaskokを 応援します

私自身は、遺伝的アルゴリズムが最適なツールであると証明された問題に出会ったことはありません。また、遺伝的アルゴリズムで得られた計算結果で印象的なものに出会ったことは一度もありません。


GAの最大の利点は、「特定の問題を解決するのに最適なツール」ではなく、「普遍的なツール」であることです

二次方程式の解を求める場合にもGAを適用すれば、許容できる精度で完璧に解を求めることができます。しかし、この場合、よく知られた公式の方がはるかに適しているのだが......。

 

端的に言えば

1.ユーザーは確かにGaだけでなく、他のアルゴリズムも知らないかもしれない。大差はないんです。

2.仮にGaより優れたアルゴリズムがあったとしても(あるタスクでは確実にそうなる)、それが等しく普遍的なものになるとは限りません。つまり、比較分析は、普遍性という文脈を失うことなく行わなければならない。

3.他のアルゴリズムを自前で実装することを妨げるものはない。

Prival-2では、最適なツールではなく、十分なツールが必要です(厚顔無恥な戦略の最適化には、かなり適しています)。

他のアルゴリズムについてもぜひ解説してほしい。

 
Renat:

無駄に対話しようとしてるよね。

この人はMetaTrader 5を全く使わず、4だけに座っている。彼のログを見ればわかりますが、彼は何年もMT5を動かしていないのに、それを批判しているのです。

私はすでに数年前に「何ヶ月も前にMT5を一回立ち上げただけなのに、よく評価や批判ができるものだ」ということで彼を捕らえました。彼も、今は自分の次のクローンであるとして否定した。

慣れ親しんだ行動。彼と私のMT5製品について議論していたとき、彼は結局デモすらダウンロードしなかったのを覚えています。でも、「詳しくないけど判断する」シリーズでは、いつも何か言っている。
 
joo:

2.私のGAはさらに良くなっています。:)

...

では、ただおしゃべりするだけでなく、アルゴリズムを提供してテストや比較分析をして、「どのアルゴリズムが優れているか」というテーマをきっぱりと終わらせたい人はいるのでしょうか?


あなたのGAでは、 記事https://www.mql5.com/ru/articles/55 にあるように、int NaturalSelection() 関数が全く動作しません。

ここでテストです。

// 256+255+253+249+241+225+193+129+50+ -1 = 1850  сумма всех  выпадений

int PopulChromosCount = 10;
double Population[][10];
int count[10];

void OnStart(){
        ArrayResize(Population,2);
        Population[0][0] = 256.0;
        Population[0][1] = 128.0;
        Population[0][2] = 64.0;
        Population[0][3] = 32.0;
        Population[0][4] = 16.0;
        Population[0][5] = 8.0;
        Population[0][6] = 4.0;
        Population[0][7] = 2.0;
        Population[0][8] = 0.0;
        Population[0][9] = -1.0;
                
        ArrayInitialize(count,0);
        for(int k=0; k<1850; ++k){
                int idx = NaturalSelection();
                ++count[idx];
        }
        printCount(count);
}
  
//Естественный отбор.
int NaturalSelection(){
   int    i=0,u=0;
   double p=0.0,start=0.0;
   double          fit[][2];
   ArrayResize(fit,PopulChromosCount);
   ArrayInitialize(fit,0.0);
   double delta=(Population[0][0]-Population[0][PopulChromosCount-1])*0.01-Population[0][PopulChromosCount-1];

   for(i=0;i<PopulChromosCount;i++)
     {
      fit[i][0]=start;
      fit[i][1]=start+MathAbs(Population[0][i]+delta);
      start=fit[i][1];
     }
   p=RNDfromCI(fit[0][0],fit[PopulChromosCount-1][1]);

   for(u=0;u<PopulChromosCount;u++)
      if((fit[u][0]<=p && p<fit[u][1]) || p==fit[u][1])
         break;

   return(u);
}

//Генератор случайных чисел из заданного интервала.
double RNDfromCI(double RangeMinimum,double RangeMaximum)
  { return(RangeMinimum+((RangeMaximum-RangeMinimum)*MathRand()/32767.5));}

void printCount(int &ncount[]){
        int summ = 0;
        for(int k=0;k<ArraySize(ncount);++k){
                summ+=ncount[k];
        }
        Print("Сумма выпадений= "+IntegerToString(summ));
        Print("VFF 256: count= " + IntegerToString(ncount[0]) + " заявлено 256");
        Print("VFF 128: count= " + IntegerToString(ncount[1]) + " заявлено 255");
        Print("VFF  64: count= " + IntegerToString(ncount[2]) + " заявлено 253");
        Print("VFF  32: count= " + IntegerToString(ncount[3]) + " заявлено 249");
        Print("VFF  16: count= " + IntegerToString(ncount[4]) + " заявлено 241");
        Print("VFF   8: count= " + IntegerToString(ncount[5]) + " заявлено 225");
        Print("VFF   4: count= " + IntegerToString(ncount[6]) + " заявлено 193");
        Print("VFF   2: count= " + IntegerToString(ncount[7]) + " заявлено 129");
        Print("VFF   0: count= " + IntegerToString(ncount[8]) + " заявлено  50");
        Print("VFF  -1: count= " + IntegerToString(ncount[9]) + " заявлено  -1");
}
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF  -1: count= 6 заявлено  -1
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF   0: count= 13 заявлено  50
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF   2: count= 21 заявлено 129
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF   4: count= 19 заявлено 193
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF   8: count= 40 заявлено 225
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF  16: count= 74 заявлено 241
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF  32: count= 121 заявлено 249
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF  64: count= 218 заявлено 253
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF 128: count= 423 заявлено 255
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	VFF 256: count= 915 заявлено 256
2015.04.27 12:09:21.369	NaturalSelection (EURUSD,M1)	Сумма выпадений= 1850

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
Laryx:

デバッガーでのヒストリカルデータのデバッグはどうなっているのでしょうか?もうすぐだといいんですけどね。

すでに取り組んでいます。初回結果は近日公開
 
Prival-2:

この科学者の反証を試みる

遺伝的アルゴリズムを使うことの合理性については、多くの人が懐疑的です。例えば、IEEE賞を受賞した著名なアルゴリズム研究者であるStony Brook大学コンピュータサイエンス学部教授のSteven S. Schienaは、次のように書いている[16]。

遺伝というのは普遍的なもので、それで何でも最適化できるんです。勾配降下法に似ているが、問題の種類はより多岐にわたる。

つまり、どんな問題でも、よりうまくいくタスクに特化した最適化の方法を思いつく可能性があるのです。

 
stringo:
この問題については、すでに取り組んでいます。最初の結果は近日中に発表される予定です。
ブラボー!待っています。
 
Wikipediaの「アニーリング法」の説明へのリンクはこちらです。https://ru.wikipedia.org/wiki/%C0%EB%E3%EE%F0%E8%F2%EC_%E8%EC%E8%F2%E0%F6%E8%E8_%EE%F2%E6%E8%E3%E0 このアルゴリズムがどのように機能するかを説明するビデオ例があります。そこから、繰り返し最大値に近づき、ほぼ最大値そのものを見つけることができることがわかる。しかし、他のマキシマムも同様に見つけることができます。計算量はGAよりはるかに少なく、GAよりコンパクトで実データに近く、いずれにしても面倒なGAよりスピードの点で優れていることでしょう。
 
また、セットしたファイルの保存やダウンロードがFiveでできるようになったのも良いですね。とても便利なものです。