请教,如何在指标中用数组保存20万个数据?

 

思路是用历史最高价/Point()得到数组的长度,然后把成交量的变化存放到价格数组里,分段保存到文件中,再随时提取,实时更新.

但是在黄金中,这个长度是207431,

并且在使用以下两段代码得到的数值hhv,并不是月线级别的最大值,而是"184",

CopyHigh(Symbol(),PERIOD_MN1,0,iBars(Symbol(),PERIOD_MN1),hh);

   hhv=ArrayMaximum(hh,WHOLE_ARRAY,0);

最关键的问题是找不到创建文件的函数,使用文件函数读取和写入的时候根本无效,

等待大神指点......

 
zxl5789569:

思路是用历史最高价/Point()得到数组的长度,然后把成交量的变化存放到价格数组里,分段保存到文件中,再随时提取,实时更新.

但是在黄金中,这个长度是207431,

并且在使用以下两段代码得到的数值hhv,并不是月线级别的最大值,而是"184",

CopyHigh(Symbol(),PERIOD_MN1,0,iBars(Symbol(),PERIOD_MN1),hh);

   hhv=ArrayMaximum(hh,WHOLE_ARRAY,0);

最关键的问题是找不到创建文件的函数,使用文件函数读取和写入的时候根本无效,

等待大神指点......

可以去自由职业板块发任务,专业的事交给专业的人去苦逼~

 

ArrayMaximum 返回的不是最大值,而是最大值所在位置的索引,所以要再从数组里面按索引读取一下。

创建文件用 FileOpen 函数,具体用法和限制可以看一下函数参考。

MQL5文档: 文件函数 / FileOpen
MQL5文档: 文件函数 / FileOpen
  • www.mql5.com
FileOpen - 文件函数 - MQL5参考 - 参考MetaTrader 5的算法/自动交易语言