mt4函数和编程必备(4)

2020-04-14 06:25

搜索一个值在数组中的位置

此函数不能用在字符型或连续数字的数组上.

:: 输入参数

array[] - 需要搜索的数组 value - 将要搜索的值

count - 搜索的数量,默认搜索所有的数组 start - 搜索的开始点,默认从头开始

direction - 搜索的方向,MODE_ASCEND 顺序搜索 MODE_DESCEND 倒序搜索

示例:

datetime daytimes[]; int shift=10,dayshift; // All the Time[] timeseries are sorted in descendant mode ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1); if(Time[shift]>>=daytimes[0]) dayshift=0; else { dayshift=ArrayBsearch(daytimes,Time[shift],WHOLE_ARRAY,0,MODE_DESCEND); if(Period()

int ArrayCopy( object& dest[], object source[], int start_dest=0, int start_source=0, int count=WHOLE_ARRAY) 复制一个数组到另外一个数组。

只有double[], int[], datetime[], color[], 和 bool[] 这些类型的数组可以被复制。

:: 输入参数 dest[] - 目标数组 source[] - 源数组

start_dest - 从目标数组的第几位开始写入,默认为0 start_source - 从源数组的第几位开始读取,默认为0 count - 读取多少位的数组

示例:

double array1[][6]; double array2[10][6]; // fill array with some data ArrayCopyRates(array1); ArrayCopy(array2, array1,0,Bars-9,10); // now array2 has first 10 bars in the history

int ArrayCopyRates( double& dest_array[], string symbol=NULL, int timeframe=0) 复制一段走势图上的数据到一个二维数组,数组的第二维只有6个项目分别是: 0 - 时间, 1 - 开盘价,

2 - 最低价, 3 - 最高价, 4 - 收盘价, 5 - 成交量.

:: 输入参数

dest_array[] - 目标数组

symbol - 标示,当前所需要的通货的标示 timeframe - 图表的时间线

示例:

double array1[][6]; ArrayCopyRates(array1,\Print(\

int ArrayCopySeries( double& array[], int series_index, string symbol=NULL, int timeframe=0) 复制一个系列的走势图数据到数组上

注: 如果series_index是MODE_TIME, 那么第一个参数必须是日期型的数组

:: 输入参数

dest_array[] - 目标数组

series_index - 想要取的系列的名称或编号,0-5 symbol - 标示,当前所需要的通货的标示 timeframe - 图表的时间线

示例:

datetime daytimes[]; int shift=10,dayshift; // All the Time[] timeseries are sorted in descendant mode ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1); if(Time[shift]>=daytimes[0]) dayshift=0; else { dayshift=ArrayBsearch(daytimes,Time[shift],WHOLE_ARRAY,0,MODE_DESCEND); if(Period() } Print(TimeToStr(Time[shift]),\TimeToStr(daytimes[dayshift]));

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

:: 输入参数

array[] - 需要检查的数组

示例:

int num_array[10][5]; int dim_size; dim_size=ArrayDimension(num_array); // dim_size is 2 corresponds to \day bar opened at \

bool ArrayGetAsSeries(object array[])

检查数组是否是有组织序列的数组(是否从最后到最开始排序过的),如果不是返回否

:: 输入参数

array[] - 需要检查的数组

示例:

if(ArrayGetAsSeries(array1)==true) Print(\else Print(\

int ArrayInitialize( double& array[], double value) 对数组进行初始化,返回经过初始化的数组项的个数

:: 输入参数

array[] - 需要初始化的数组 value - 新的数组项的值

示例:

//---- 把所有数组项的值设置为2.1 double myarray[10]; ArrayInitialize(myarray,2.1);

bool ArrayIsSeries( object array[])

检查数组是否连续的(time,open,close,high,low, or volume).

:: 输入参数

array[] - 需要检查的数组

示例:

if(ArrayIsSeries(array1)==false) ArrayInitialize(array1,0); else { Print(\return(-1); }

int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0) 找出数组中最大值的定位

:: 输入参数

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); Print(\

int ArrayMinimum( double array[], int count=WHOLE_ARRAY, int start=0) 找出数组中最小值的定位

:: 输入参数

array[] - 需要检查的数组 count - 搜索数组中项目的个数 start - 搜索的开始点

示例:

double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9}; double minValueidx=ArrayMinimum(num_array); Print(\

int ArrayRange( object array[], int range_index) 取数组中指定维数中项目的数量。

:: 输入参数

array[] - 需要检查的数组 range_index - 指定的维数

示例:

int dim_size; double num_array[10,10,10]; dim_size=ArrayRange(num_array, 1);

int ArrayResize( object& array[], int new_size) 重定义数组大小

:: 输入参数

array[] - 需要检查的数组

new_size - 第一维中数组的新大小

示例:

double array1[][4]; int element_count=ArrayResize(array, 20); // 数组中总项目数为80

bool ArraySetAsSeries( double& array[], bool set)

设置指数数组为系列数组,数组0位的值是最后的值。返回之前的数组状态

:: 输入参数

array[] - 需要处理的数组

set - 是否是设置为系列数组,true或者false

示例:

double macd_buffer[300]; double signal_buffer[300]; int i,limit=ArraySize(macd_buffer); ArraySetAsSeries(macd_buffer,true); for(i=0; i macd_buffer[i]=iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,26,0,MODE_EMA,PRICE_CLOSE,i); for(i=0; i signal_buffer[i]=iMAOnArray(macd_buffer,limit,9,0,MODE_SMA,i);

int ArraySize( object array[]) 返回数组的项目数

:: 输入参数

array[] - 需要处理的数组

示例:

int count=ArraySize(array1); for(int i=0; i { // do some calculations. }

int ArraySort( double& array[], int count=WHOLE_ARRAY, int start=0, int sort_dir=MODE_ASCEND) 对数组进行排序,系列数组不可进行排序

:: 输入参数

array[] - 需要处理的数组 count - 对多少个数组项进行排序 start - 排序的开始点

sort_dir - 排序方式,MODE_ASCEND顺序排列 MODE_DESCEND倒序排列

示例:

double num_array[5]={4,1,6,3,9}; // now array contains values 4,1,6,3,9 ArraySort(num_array); // now array is sorted 1,3,4,6,9 ArraySort(num_array,MODE_DESCEND); // now array is sorted 9,6,4,3,1 类型转换函数 [Conversion Functions]

string CharToStr( int char_code) 将字符型转换成字符串型结果返回

:: 输入参数

char_code - 字符的ACSII码

示例:

string str=\


mt4函数和编程必备(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:江苏省机关第六届万人学法知识竞赛 网上答题试卷4

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: