MT開発者向けではない!?INIT_PARAMETERS_INCORRECTを何に置き換えたらいいのでしょうか? - ページ 5

 
Сергей Таболин:

さて、次は中身です。正規のチェーンでファイルを作成しました。今、どう使えばいいのか?onTester、framesを経由する必要があるのでは...。ドキュメントを見たが、何か腑に落ちない。対処の仕方がわからない。

配列に読み込んで、そこからデータを取り出そうと考えているのですが・・・。

この問題は解析的に解くのが良いと思います。 インデックスを知った上で、その場で鎖を生成する必要があります。 "組合せ論 "でググってみてください。少なくとも、組み合わせの検索については解決できたので、配置についても同じようなことができると思います。

一般に、この問題の目的がよくわからないのですが、なぜ関数を連鎖的に繰り返すことができないのでしょうか?

 
Alexey Navoykov:

一般的に、あなたのタスクの目的があまり明確ではありません。 なぜ、関数を連鎖的に繰り返すことができないのでしょうか?

まあ、もしそうなら。

  • 11
  • 22

ではなぜ

そして、このような場合。

  • 121
とすると、合計で21のようになります。そして、21の連鎖がその結果を繰り返すことになる。重複、原則的に無駄な走行のための時間延長...。

 
Сергей Таболин:

もし、そうだとしたら

  • 11
  • 22

だからなんだ

そして、このような場合。

  • 121
であれば、合計は21のようになります。そして、21の連鎖がその結果を繰り返すことになる。重複、原則的に無駄な走行のための時間延長...。

関数の処理は、1つ目の関数の計算結果を2つ目の関数の入力に渡すなど、順次行われるものだと思っていました。 それが、すべて独立して動くと? それでは、何を最適化しているのか、さらにわからなくなりますね。

 
Сергей Таболин:

正規のチェーンでファイルが作成されました。今、どう使えばいいのか?onTester、framesを使う必要があるのでは...。

フレームは関係ない。tester_fileまたはCOMMONのいずれかを使用します。以下は、その動作例です。

 
Сергей Таболин:

建築の話じゃないんです。機能のセットとその適用方法についてです。

あなたのプログラム(これが問題のアーキテクチャです)におけるこれらの関数の役割について、より詳細な情報を与えてください。

 

市場参入 条件を定義するための機能。

ファイルからエントリ番号でリードチェーンを作成。遺伝子を開始した。効果があるようで、悪態をつかない。

唯一の疑問は、チェーンはどのような方法で体系化されていないと遺伝学は、最高のバリアントを見つけるのだろうか?全部を見るわけではありません。まず、出来上がったファイルをソートするところから始めるべきでは?どうすればいいのか?

 

テキストファイルをソートしてみました。あとは、文字列をチェーンで読み込んで、構成要素に分解して、配列に埋め込んで いく。

しかし、コンパイルするとすぐに警告が発生し、その理由がわからない...。

//+------------------------------------------------------------------+
void OnTick()
{
//---
//--- считать цепочки из файла
   int chain[6];
   string   filenameF   = "KR\\func_KrL_sort.txt";
   string   filename    = "KR\\func_KrL_sort.bin";
   string   str, str_chain[];
   if(FileIsExist(filenameF,FILE_COMMON))
   {
      int filehandleF = FileOpen(filenameF,FILE_READ|FILE_TXT|FILE_COMMON);
      if(filehandleF != INVALID_HANDLE)
      {
         for(int f = 0; f <= 1953; f++)
         {
            ArrayInitialize(chain,0);
            FileReadString(filehandleF,str); // implicit conversion from 'string' to 'number'
            Print(str);
            StringSplit(str,",",str_chain);  // implicit conversion from 'string' to 'number'
            for(int i = 0; i <= 5; i++)
            {
               ArrayInitialize(chain,0);
               chain[i] = (int)StringToInteger(str_chain[i]); // array out of range
               Print(string(chain[0])+","+string(chain[1])+","+string(chain[2])+","+string(chain[3])+","+string(chain[4])+","+string(chain[5]));
            }
         }
         
         FileClose(filehandleF);
         ExpertRemove();
      }
   }
}
//+------------------------------------------------------------------+

起動時に配列の範囲 外エラー

テキストファイルの内容。

1,0,0,0,0,0
1,2,0,0,0,0
1,2,3,0,0,0
1,2,3,4,0,0
1,2,3,4,5,0
1,2,3,4,5,6
1,2,3,4,6,0
1,2,3,4,6,5
1,2,3,5,0,0
1,2,3,5,4,0
...........
 

リワークされました。

//+------------------------------------------------------------------+
void OnTick()
{
//---
//--- считать цепочки из файла
   int chain[6];
   string   filenameF   = "KR\\func_KrL_sort.txt";
   string   filename    = "KR\\func_KrL_sort.bin";
   string   str, str_chain;
   if(FileIsExist(filenameF,FILE_COMMON))
   {
      int filehandleF = FileOpen(filenameF,FILE_READ|FILE_TXT|FILE_COMMON);
      if(filehandleF != INVALID_HANDLE)
      {
         for(int f = 0; f < 1953; f++)
         {
            ArrayInitialize(chain,0);
            str = FileReadString(filehandleF);
            //Print(str); // этот рисует всё как надо
            for(int i = 0, p = 0; i <= 5; i++, p += 2)
            {
               str_chain   = StringSubstr(str,p,1);
               chain[i]    = (int)StringToInteger(str_chain);
            }
         }
         
         FileClose(filehandleF);
         ExpertRemove();
      }
   }
}
//+------------------------------------------------------------------+
 
Сергей Таболин:

しかし、問題は、チェーンが何ら体系化されていないこと、遺伝子が最適な選択肢を見つけることができるのか、ということです。すべてのバリエーションに目を通すわけではありません。まず、ファイルを整理することから始めるべきでは?どうすればいいのか?

もちろん、そんなことはありません。まず、遺伝的 アルゴリズムを理解し、遺伝子とは何かを理解する必要があります。

最初の投稿にあるようなあなたの考え方(「ユーザーである私は結果を得たいのであって、その仕組みはどうでもいい」)は、この場合絶対に間違っているのです。

 
Alexey Navoykov:

最初の投稿にあるようなあなたのやり方(「ユーザーである私は結果を求め、その仕組みはどうでもいい」)は、この場合、完全に間違っています。

遺伝学に関する明確な文書やチュートリアルがない以上、遺伝学に関する深い知識をユーザーに要求するのは馬鹿げている。