MT5 RAMメモリの容量不足、大容量ファイルの読み書きに問題がある。 - ページ 4

 
Maxim Dmitrievsky:

このようにファイルを読み込んでみてください。

https://www.mql5.com/ru/docs/files/filereadarray

今は端末を開く時間がないので、明日にでも)

つまり、「バイナリファイルから」を読み取るわけですが、どこから入手すればいいのでしょうか?

明日」を待つことにします :)
 
Aleksey Vyazmikin:

バイナリファイルから」ということですが、どこで入手できるのですか?

明日」を待つことにします :)

どこから入手するのですか?

 
Maxim Dmitrievsky:

どこから入手するのですか?

この特殊なケースでは、Excelで他のCSVファイルを糊付けしているのです。このファイルは元々MT5で生成されたもので、この特殊なケースです。

 
Aleksey Vyazmikin:

この特殊なケースでは、Excelで他のCSVファイルを糊付けしているのです。元々MT5で生成されたもので、この特殊なケースです。

そこで、mt5からバイナリを書き込む。配列なのか?一度にファイルに配列を書き込んで、後から読み込むだけ

 

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

mql5言語の特徴、微妙なニュアンスとコツ

fxsaber さん 2018.04.06 17:08

おそらく、そんな人は少ないと思うので、ここで
// Заполнение массива строками из файла - классика
int FileToStrings( const string FileName, string &Str[] )
{
  ArrayResize(Str, 0);

  const int handle = FileOpen(FileName, FILE_READ | FILE_ANSI );
  
  if (handle != INVALID_HANDLE)
  {
    while (!FileIsEnding(handle))
      Str[ArrayResize(Str, ArraySize(Str) + 1) - 1] = FileReadString(handle);
    
    FileClose(handle);
  }
  
  return(ArraySize(Str));
}

// Заполнение массива строками из файла - альтернатива
int FileToStrings2( const string FileName, string &Str[] )
{
  uchar Bytes[];
  
  return(FileLoad(FileName, Bytes) ? StringSplit(CharArrayToString(Bytes), '\n', Str) : 0);
}

void OnStart()
{
  const string FileName = "Test.txt";
  
  string Str[];  
  FileToStrings(FileName, Str);

  string Str2[];  
  FileToStrings2(FileName, Str2);
  
  ArrayPrint(Str);
  ArrayPrint(Str2);
}
私自身は、何かを削るときには、2番目の選択肢を使います。おそらく動作も速くなると思いますが、テストしていません。

ベンチマークとして、考えられる指標は以下の通りです。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

スクリプト:ThirdPartyTicks

fxsaber さん 2018.04.18 23:10

300万ティック/秒で(ZIP+CSV)をパースします。速いんでしょうね。

3GB以上のZIP(>>10GBのCSV)は問題なく処理できているので、間違いなくうまくいくはずです。

 

CSVのパース自体は10行程度で構成されているはずです。この場合、クラス全体は全く必要ありません。

この作業は、プログラミングの 初心者でも非常に簡単です。ファイルから読み込んだ後のデータをどうするかは、プログラマーにしか分からない次の作業である。

アレクセイ、プログラマーを雇うか、プログラミングの勉強をちゃんと始めなさい。そうでなければ、使えない授業に無駄なお金を使うことになります。プログラミングの経験がないのに、稼ごうとするのは無意味です。

追伸

Renatに触れないでください。この件に関して、彼は何もすることがありません。彼は、最適化を修正しなければならないのです。

 
Maxim Dmitrievsky:

そこで、mt5からバイナリを書き込む。配列なのか?一度に配列をファイルに書き込んで、後で読み込めばいい。

多くの列があり、各列は独立した配列である。

 
fxsaber:

ベンチマークとして、以下のような数値が考えられます。

3GB以上のZIP(>>10GBのCSV)も問題なく処理できているので、かなり使えることは間違いないです。

ありがとうございます。配列に行を書き込む方法はわかりましたが、列も一緒に処理したいです。配列から行番号を呼び出した後、列を見つけるために追加の構文解析を行う必要があると思われますが、どのように行うのでしょうか?

 
Aleksey Vyazmikin:

多くの列があり、各列は独立した配列である。

つまり、2次元の配列、行列なんですね。書く

 
Roffild:

CSVのパース自体は10行程度で構成されているはずです。この場合、クラス全体は全く必要ありません。

この作業は、プログラミングの 初心者でも非常に簡単です。ファイルから読み込んだ後のデータをどうするかは、プログラマーにしか分からない次の作業である。

アレクセイ、プログラマーを雇うか、プログラミングの勉強をちゃんと始めなさい。そうでなければ、使えない授業に無駄なお金を使うことになります。プログラミングの経験がないのに、稼ごうとするのは無意味です。

追伸

Renatに触れないでください。このテーマでは、彼は何もすることがありません。彼はOptimizationを修正する必要があります。

MT4からすでに3年ほど使っています。便利ですが、くそ遅いです。

もちろん、文字列を読むのは簡単ですが、それをすべて細胞の構造として機能させるのはもっと大変なことです。

クラスが使えないってどういうこと?していますし、それに、メタクオートの社員が書いた授業はそして、実際に人を雇い、お金を払い、完成品を期待していたのに、「遅くてもいいから...」と言われる。信じていたのに、思い出に浸りすぎてしまった。