最適化中の単一アレイ計算 - ページ 4

 

みんな、データをカンマで区切って1行に書くにはどうしたらいいんだ?)

新しい回線から 毎回届くんです。

int Qnt=FileWrite(Handle,Time[0]);
if(Qnt<0)Alert("не получилась запись=");
   return(0);

原理的には、アドバイスの通り、すべてのデータを一度に配列に入れた方が速く動作するはずなのですが。

double arr[100500]={1,2,3....} 
 
forexman77:

みんな、データをカンマで区切って1行に書くにはどうしたらいいんだ?)

新しい回線から 毎回届くんです。

原理的には、アドバイスにあるように、すべてのデータを一度に配列に入れた方が高速に動作するはずです。

文字列関数の記事を読んで、やったと思う。

string str1,str2;
   for (int y=stroki-1;y>=0;y--)
   {
   str1=T[y];
   str2=str2+","+str1;
   }
   Print("str2=",str2);
2016.09.15 21:42:58.649 запись данных GBPUSD,H4: str2=,1452038400,1454022360,1454104980,1456788420,1457130840,1459205760,1459463580,1459814040,1461621600,1461710760
 
forexman77:

みんな、データをカンマで区切って1行に書くにはどうしたらいいんだ?)

新しい回線から 毎回届くんです。

原理的には、アドバイスいただいたように、すべてのデータを一度に配列に入れた方が高速に動作するはずなのですが。

なぜ、そんなことを?Dmitryは、ファイルへの配列の読み込みと書き込みに関するドキュメントへのリンクを提供しました。

ドミトリー・フェドセーエフ

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

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

また、リンク先には事例があります。

ダイヤモンド・アーム」のように...。"手を振るとズボンが..."この場合のみ、技術的な不具合は発生しません。結局、配列の書き方、読み方がどうなっているかは、何も聞かなかったことにしています。
 
数字が入った通常のファイルをBinに変換する方法をご存知の方はいらっしゃいますか?桁の区切り文字がわからないのですが?
 
-Aleks-:
数字が入った通常のファイルをBinに変換する方法をご存知の方はいらっしゃいますか?桁の区切り文字がわからないのですが?
桁を配列に読み込んで、その配列をバイナリモードでファイルに書き 込む。
 
Dmitry Fedoseev:
桁を読み取ることで、配列に詰め込み、その配列をバイナリモードでファイルに書き込む ことができます。

なるほど、つまり桁の入ったレディファイルを配列に読み込んで(私の場合)、バイナリファイルに書き込んで、それを使えばいいんですね。

まあ、ファイルから10個の配列のデータを読み込む必要があるのなら、特殊な数字で配列の終わりを理解して、次の配列を埋めるソーターを作る必要があるのですが...。いちいち配列のサイズを書き込むのは面倒だからです。

 
-Aleks-:

なるほど、つまり桁の入ったレディファイルを配列に読み込んで(私の場合)、バイナリファイルに書き込んで、それを使えばいいんですね。

まあ、ファイルから10個の配列のデータを読み込む必要があるのなら、特殊な数字で配列の終わりを理解して、次の配列を埋めるソーターを作る必要があるのですが...。というのも、配列のサイズを毎回手書きするのは不便だからです。

なんということでしょう。

配列のファイルへの書き込みは、EA再読み込み時のために保存しておく必要があります。出口の前に書き、入口の時に読むようにします。

Expert Advisorに10個の配列があれば、10個のファイルがあることになります。 しかし、それ(配列)を読み取る前に、それを作成し、書き込む必要があります...。

 
Alexey Viktorov:

頭の中がぐちゃぐちゃ。

配列のファイルへの書き込みは、EA再起動時にその配列を保存するために必要です。エグジット前に書き、エントリー時に読む。

EAに10個の配列があれば、10個のファイルができる。 しかし、それ(配列)を読み取る前に、それを作成し、書き込まなければならない...。

解決策を話しているのに、問題点を褒めるなんて、高慢だなあ。私の投稿は、トップスターターの問題を解決するためのものではありません。

不注意と攻撃性-どうやら無気力、秋...

 
Alexey Viktorov:

なぜやる必要があるのか?Dmitry は、ファイルへの配列の読み書きに関するドキュメントへのリンクを提供しました。

まるで映画「ダイヤモンド・アーム」のような...。"手の動きひとつで、ズボンが変身する..."この場合のみ、技術的な不具合はありません。結局、配列の書き出しと読み出しがどのように構成されているのか、何も聞かなかったことにしています。

binファイルで速くなる可能性は十分にあります。

昨日、配列を一度に宣言 しようとしました。何しろ、最適化の前にあらかじめ配列がわかっているのですから。

例えば、こんな感じ(文字列の一部を削除しました)。

datetime T[411]=
   {
   1262731020,1262735700,1262821920,1262903400,1262989740,1263247200,1263339060,1263420000,1263507480,1263595500,
   1265324700,1265407200,1265752980,1265926500,1265930820,1267657200,1267740300,1267826460,1268175840,1268346360,
   1270504920,1270684140,1270768500,1272924180,1273011720,1273097100,1273272240,1273528800,1273617180,1275344100,
   1275516000,1275602400,1275689160,1276034400,1276124580,1276208700,1276211640,1278027960,1278369780,1278373920,
   1278456660,1278540000,1278626400,1278712800,1280447880,1280527200,1280789220,1280959200,1281045720,1283292000,
   1283378400,1283812200,1285626300,1285887060,1286229600,1286316000,1286404740,1288133220,1288216860,1288305120,
   1288392420,1288648860,1288735200,1288741980,1288822080,1288994400,1290722460,1290809040,1291069320,1291329540,
   1293228420,1293577020,1293666300,1293746400,1295992800,1296079320,1296253680,1296514200,1296686940,1296770400,
   1298503260,1298592000,1298672280,1298931060,1300831920,1300917600,1301609160,1301696460,1303512420,1303768920
   };

まだ、それほどうまくいっていない。現在、端末は最適化で手一杯なので、後日、別の方法でやってみようと思っています。文字列から日付への変換が必要なのでしょうね。

 
私はこうしています。1つのテストを実行する。このテストでは、ファイルに配列を書き込んで います。その後、同じ領域で最適化を実行しますが、配列はバーまたはティックごとに再計算されず、ファイルから読み込まれます。週次での始値による最適化が瞬時に行えます。ファイル操作がなければ何時間もかかる。