优化过程中的单一阵列计算 - 页 4

 

伙计们,我怎么把数据写在一行,用逗号隔开?)

我每次都会从新的生产线 上得到它。

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

原则上,如果我按照建议把所有的数据一次放入一个数组中,工作应该更快。

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

伙计们,我怎么把数据写在一行,用逗号隔开?)

我每次都会从新的生产线 上得到它。

原则上说,如果所有的数据一次都在数组中,它应该工作得更快,正如建议的那样。

我读了关于字符串函数的文章,我想我已经做到了。

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:

伙计们,我怎么把数据写在一行,用逗号隔开?)

我每次都会从新的生产线 上得到它。

原则上说,如果我按照你的建议,一次把所有的数据放入一个数组中,工作应该会更快。

你为什么要这样做呢?Dmitry给出了关于读写数组到文件的文档链接。

如 "钻石臂"..."只要一挥手,裤子就会变成......"只有在这种情况下,才不会出现技术故障。毕竟,我并没有白问,阵列的书写和阅读是如何组织的。
 
有谁能说明如何将带有数字的普通文件转换为Bin文件?我搞不清楚数字的分隔符应该是什么?
 
-Aleks-:
有谁能说明如何将带有数字的普通文件转换为Bin文件?我不知道数字应该有什么样的分隔符?
将数字读入一个数组,然后将数组以二进制模式写入文件
 
Dmitry Fedoseev:
通过读取数字,我们可以把它们塞进数组,然后以二进制模式 数组写到文件 中。

我明白了,也就是说,你可以把准备好的带数字的文件读成一个数组(我的例子),然后把它写成一个二进制文件,然后再使用它。

好吧,如果你需要从文件中读取10个数组的数据,那么你需要做一个分拣器,它将通过特殊数字来理解数组的结束,并填充下一个数组...因为每次都写数组的大小并不方便。

 
-Aleks-:

我明白了,也就是说,你可以把准备好的带数字的文件读成一个数组(我的例子),然后把它写成一个二进制文件,然后再使用它。

好吧,如果你需要从文件中读取10个数组的数据,那么你需要做一个分拣器,它将通过特殊数字来理解数组的结束,并填充下一个数组...因为每次都用手写数组的大小是很不方便的。

真是一团糟。

将一个数组写入文件 是必要的,以便在EA重新加载时保存这个数组。它应该在退出前写入,在进入时读取。

如果专家顾问中有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
   };

它还没有那么好的效果。目前终端正忙于优化,以后我将尝试用不同的方式来做。我想我必须从字符串转换为日期。

 
我这样做。我运行一个单一的测试。在这个测试过程中,我把数组写进一个文件。然后我在同一区域进行优化,但数组不是在每个条形或刻度上重新计算,而是从文件中读取。通过每周的开盘价进行的优化是即时的。如果没有文件操作,则需要几个小时。