《MT4 MT5外汇EA编程教程大全之数组函数》.pdf
文本预览下载声明
豆丁论坛
MT4 MT5 外汇 EA 编程教程大全之数组函数(五)
使用数组的一组函数。
数组的最大维数为四维。
每个维数被索引编为从0 至维度-1。
事实上,第一维数组的50 个,在调用时第一个数组显示为[0], 最后一个数组显示为[49]。
使用这些函数(除那些改变定量和定性的数组外)
能够预定义时间系列
Time[], Open[], High[], Low[], Close[], Volume[]
ArrayBsearch
ArrayCopy
ArrayCopyRates
ArrayCopySeries
ArrayDimension
ArrayGetAsSeries
ArrayInitialize
ArrayIsSeries
ArrayMaximum
ArrayMinimum
ArrayRange
ArrayResize
ArraySetAsSeries
ArraySize
ArraySort
int ArrayBsearch( double array[], double value, void count, void start, void direction)
如果没有发现事件,值会返回到第一个维度的数组或者最近的一个数组。
此函数不能用在字符型或连续数字的数组上(除打开柱的连续数组)。
注解: 双元查找只能够存储数。存储数字数组使用ArraySort() 函数。
参量:
array[] - 需要搜索的数组.
value - 将要搜索的值
count - 搜索的数量,默认搜索所有的数组.
start - 搜索的开始点,默认从头开始.
direction - 搜索的方向:
MODE_ASCEND 顺序搜索,
易信外汇,出金入金迅速,信誉商交易,赠金高达 2000 美元,官方注册地址
/_4s7Z0LTD52PFWTQbSAo2c2Nd7ZgqdRLk/1/
豆丁论坛
MODE_DESCEND 倒序搜索.
示例:
datetime daytimes[];
int shift=10,dayshift;
// 全部Time[] 数组被排列在后面的形式
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()PERIOD_D1) dayshift++;
}
Print(TimeToStr(Time[shift]), corresponds to ,dayshift, day bar opened at ,
TimeToStr(daytimes[dayshift]));
ArrayCopy
int ArrayCopy( void dest[], object source[], void start_dest, void start_source, void count)
复制一个数组到另外一个数组。只有double[], int[], datetime[], color[], 和bool[] 这些类
型的数组可以被复制。
返回复制元素总量。
参量:
dest[] - 目标数组。
source[] - 源数组 。
start_dest - 从目标数组的第几位开始写入,默认为0 。
start_source - 从源数组的第几位开始读取,默认为0 。
count - 读取多少位的数组 。默认值为WHOLE_ARRAY 常数。
示例:
double array1[][6];
double array2[10][6];
易信外汇,出金入金迅速,信誉商交易,赠金高达 2000 美元,官方注册地址
/_4s7Z0LTD52PFWTQbSAo2c2Nd7ZgqdRLk/1/
豆丁论坛
// 数组2 被相同数据添满
ArrayCopyRates(array1);
ArrayCopy(array2,array1,0,0,60);
// 现在数组2 的前10 个柱来自历史(前 10 个柱包括索引[Bars-1])
ArrayCopy(array2,array1,0,Bars*6 -60,60);
// 现在数组2 的后1
显示全部