EATC

 找回密码
 立即注册
查看: 732|回复: 4

MQL4数组处理相关函数(二)

[复制链接]

192

主题

1118

帖子

1210

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1210
发表于 2022-8-24 12:09:38 | 显示全部楼层 |阅读模式

用于数组处理的一组函数。

数组的最大维数为四维。每一维索引编号为0至(数组大小 减 1)。例如,在50个元素的一维数组中,调用第一个元素用array[0],最后一个元素用array[49]。

  • ArrayBsearch() – 数组搜索
  • ArrayCopy() – 数组复制
  • ArrayCopyRates() – 复制柱体(K线)数据到二维数组
  • ArrayCopySeries() – 复制柱体(K线)数据到一维数组
  • ArrayDimension() – 返回数组维数
  • ArrayGetAsSeries() – 判断序列数组
  • ArrayInitialize() – 数组初始化
  • ArrayIsSeries() – 判断数组是否序列化
  • ArrayMaximum() – 返回数组中最大值的位置
  • ArrayMinimum() – 返回数组中最小值的位置
  • ArrayRange() – 获取数组元素个数
  • ArrayResize() – 重设数组大小
  • ArraySetAsSeries() – 设置为序列化数组
  • ArraySize() – 获取数组大小
  • ArraySort() – 数组排序

ArrayDimension() – 返回数组维数int ArrayDimension(object array[])

返回数组的维数

参数:

array[] - 数组。

示例:

int num_array[10][5];int dim_size;dim_size=ArrayDimension(num_array);// dim_size=2ArrayGetAsSeries() – 判断序列数组bool ArrayDimension(object array[])

如果数组是按序列数组形式排列(数组元素从最后到最开始排序过),返回true,否则返回false

参数:

array[] - 需要检测的数组。

示例:

  if(ArrayGetAsSeries(array1)==true)    Print("array1 是作为序列数组排序");  else    Print("array1 正常排序(从左到右)");ArrayInitialize() – 数组初始化int ArrayInitialize(void array[], double value)

数值型数组元素值设为同一个数值,返回己初始化的元素个数。

注:在自定义指标init()函数中不建议初始化指标缓冲区,在缓冲区分配和重分配内存时这种函数自动初始化为 "空值" 。

参数:

array[] - 需要初始化的数组。value - 设置的新值。

示例:

  //----所有数组元素初始化2.1  double myarray[10];  ArrayInitialize(myarray,2.1);ArrayIsSeries() – 判断数组是否序列化int ArrayIsSeries(object array[])

如果数组经检查是序列的(像 Close[], Open[], High[], Low[], Time[] 或 Volume[] ),返回TRUE,否则,返回FALSE。

参数:

array[] - 需要检测的数组。

示例:

   if(ArrayIsSeries(array1)==false)     ArrayInitialize(array1,0);   else     {      Print("序列数组不能被初始化!");      return(-1);     }ArrayMaximum() – 返回数组中最大值的位置int ArrayMaximum(double array[], void count, void start)

找出数组元素中最大值。函数返回数组元素最大值的下标。

参数:

array[] - 要搜索的数值数组。 count - 要搜索的数组元素个数。 start - 开始搜索的初始下标值。

示例:

double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};int    maxValueidx=ArrayMaximum(num_array)rint("最大值 = ", num_array[maxValueIdx]);ArrayMinimum() – 返回数组中最小值的位置int ArrayMinimum(double array[], void count, void start)

找出数组元素中最小值。函数返回数组元素最小值的下标。

参数:

array[] - 要搜索的数值数组。 count - 要搜索的数组元素个数。 start - 开始搜索的初始下标值。

示例:

double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};int    minValueidx=ArrayMinimum(num_array)rint("最小值 = ", num_array[minValueIdx]);
回复

使用道具 举报

278

主题

1920

帖子

1078

积分

客服

Rank: 7Rank: 7Rank: 7

积分
1078
发表于 2022-9-5 11:31:00 | 显示全部楼层
谢谢你的分享,有你社区会更精彩
回复

使用道具 举报

2290

主题

3822

帖子

2万

积分

交易元老

Rank: 8Rank: 8

积分
26746
发表于 2023-8-2 13:47:02 | 显示全部楼层
回复

使用道具 举报

2529

主题

4329

帖子

2万

积分

交易元老

Rank: 8Rank: 8

积分
22126
发表于 2023-10-23 10:37:10 | 显示全部楼层
回复

使用道具 举报

460

主题

1465

帖子

4981

积分

交易元老

Rank: 8Rank: 8

积分
4981
发表于 2024-4-2 13:57:25 | 显示全部楼层
分享都会点赞一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

收藏本站|法律声明|Archiver|小黑屋|support@ea198.com|EATC ( 桂ICP备2022005787号 )

风险提示与免责声明:擅自从事外汇保证金交易的双方不受法律保护!社区内展示内容,均为网友自发分享,不构成投资建议,社区无法全面监控由第三方上传至社区的资源,因此不保证资源的合法性、安全性、完整性、真实性或品质等。您下载时,同意自行判断并承担所有风险。社区内的资源,仅限用于学习和研究目的,不得将用于商业或者非法用途,否则,一切后果请用户自负。社区信息来自网络,版权争议与社区无关,您下载后须在24个小时之内进行删除。如果您喜欢该内容,请支持正版。如有侵权请邮件与我们联系处理。