客服热线:18391752892

为了可以自己亲手写EA----学习贴9

   日期:2019-01-12     浏览:690    
int ArrayBsearch( double array[], double value, int count=WHOLE_ARRAY, int start=0, int direction=MODE_ASCEND)
搜索一个值在数组中的位置
此函数不能用在字符型或连续数字的数组上. /P
  lt :: 输入参数
array[] - 需要搜索的数组
value - 将要搜索的值
count - 搜索的数量,默认搜索所有的数组
start - 搜索的开始点,默认从头开始
direction - 搜索的方向,MODE_ASCEND 顺序搜索 MODE_DESCEND 倒序搜索 /P
  lt 示例: /P
  DIV
  lt 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] gt =daytimes[0]) dayshift=0;
else
{
dayshift=ArrayBsearch(daytimes,Time[shift],WHOLE_ARRAY,0,MODE_DESCEND);
if(Period() ltERIOD_D1)
dayshift++;
}
int ArrayCopy( object dest[], object source[], int start_dest=0, int start_source=0, int count=WHOLE_ARRAY)
复制一个数组到另外一个数组。
只有double[], int[], datetime[], color[], 和 bool[] 这些类型的数组可以被复制。 /P
  lt :: 输入参数
dest[] - 目标数组
source[] - 源数组
start_dest - 从目标数组的第几位开始写入,默认为0
start_source - 从源数组的第几位开始读取,默认为0
count - 读取多少位的数组 /P
  lt 示例: /P
 
  lt 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 /P
  lt
int ArrayCopyRates( double dest_array[], string symbol=NULL, int timeframe=0)
复制一段走势图上的数据到一个二维数组,数组的第二维只有6个项目分别是:
0 - 时间,
1 - 开盘价,
2 - 最低价,
3 - 最高价,
4 - 收盘价,
5 - 成交量. /P
  lt :: 输入参数
dest_array[] - 目标数组
symbol - 标示,当前所需要的通货的标示
timeframe - 图表的时间线 /P
  lt 示例: /P
  DIV
  lt double array1[][6];
ArrayCopyRates(array1, EURUSD , PERIOD_H1);
int ArrayCopySeries( double array[], int series_index, string symbol=NULL, int timeframe=0)
复制一个系列的走势图数据到数组上
注: 如果series_index是MODE_TIME, 那么第一个参数必须是日期型的数组 /P
  lt :: 输入参数
dest_array[] - 目标数组
series_index - 想要取的系列的名称或编号,0-5
symbol - 标示,当前所需要的通货的标示
timeframe - 图表的时间线 /P
  lt 示例: /P
  DIV
  lt 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 ArrayDimension( int array[])
返回数组的维数 /P
  lt :: 输入参数
array[] - 需要检查的数组 /P
  lt 示例: /P
 
  lt int num_array[10][5];
int dim_size;
dim_size=ArrayDimension(num_array);
// dim_size is 2 /P
  lt
bool ArrayGetAsSeries(object array[])
检查数组是否是有组织序列的数组(是否从最后到最开始排序过的),如果不是返回否 /P
  lt :: 输入参数
array[] - 需要检查的数组 /P
  lt 示例: /P
  DIV
  lt if(ArrayGetAsSeries(array1)==true):: 输入参数
array[] - 需要初始化的数组
value - 新的数组项的值 /P
  lt 示例: /P
 
  lt //---- 把所有数组项的值设置为2.1
double myarray[10];
ArrayInitialize(myarray,2.1); /P
  lt
bool ArrayIsSeries( object array[])
检查数组是否连续的(time,open,close,high,low, or volume). /P
  lt :: 输入参数
array[] - 需要检查的数组 /P
  lt 示例: /P
  DIV
  lt if(ArrayIsSeries(array1)==false)
ArrayInitialize(array1,0);
else
{
int ArrayMaximum( double array[], int count=WHOLE_ARRAY, int start=0)
找出数组中最大值的定位 /P
  lt :: 输入参数
array[] - 需要检查的数组
count - 搜索数组中项目的个数
start - 搜索的开始点 /P
  lt 示例: /P
  DIV
  lt double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int maxValueIdx=ArrayMaximum(num_array);
int ArrayMinimum( double array[], int count=WHOLE_ARRAY, int start=0)
找出数组中最小值的定位 /P
  lt :: 输入参数
array[] - 需要检查的数组
count - 搜索数组中项目的个数
start - 搜索的开始点 /P
  lt 示例: /P
  DIV
  lt double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
double minValueidx=ArrayMinimum(num_array);
int ArrayRange( object array[], int range_index)
取数组中指定维数中项目的数量。 /P
  lt :: 输入参数
array[] - 需要检查的数组
range_index - 指定的维数 /P
  lt 示例: /P
 
  lt int dim_size;
double num_array[10,10,10];
dim_size=ArrayRange(num_array, 1); /P
  lt
int ArrayResize( object array[], int new_size)
重定义数组大小 /P
  lt :: 输入参数
array[] - 需要检查的数组
new_size - 第一维中数组的新大小 /P
  lt 示例: /P
 
  lt double array1[][4];
int element_count=ArrayResize(array, 20);
// 数组中总项目数为80 /P
  lt
bool ArraySetAsSeries( double array[], bool set)
设置指数数组为系列数组,数组0位的值是最后的值。返回之前的数组状态 /P
  lt :: 输入参数
array[] - 需要处理的数组
set - 是否是设置为系列数组,true或者false /P
  lt 示例: /P
 
  lt 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); /P
  lt
int ArraySize( object array[])
返回数组的项目数 /P
  lt :: 输入参数
array[] - 需要处理的数组 /P
  lt 示例: /P
 
  lt int count=ArraySize(array1);
for(int i=0; i
{
// do some calculations.
} /P
  lt
int ArraySort( double array[], int count=WHOLE_ARRAY, int start=0, int sort_dir=MODE_ASCEND)
对数组进行排序,系列数组不可进行排序 /P
  lt :: 输入参数
array[] - 需要处理的数组
count - 对多少个数组项进行排序
start - 排序的开始点
sort_dir - 排序方式,MODE_ASCEND顺序排列 MODE_DESCEND倒序排列 /P
  lt 示例: /P
 
  lt 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 /P
 类型转换函数 [Conversion Functions]
  lt string CharToStr( int char_code)
将字符型转换成字符串型结果返回 /P
  lt :: 输入参数
char_code - 字符的ACSII码 /P
  lt 示例: /P
 
  lt string str= WORL + CharToStr(44); // 44 is code for 'D'
// resulting string will be WORLD /P
  lt
string DoubleToStr( double value, int digits)
将双精度浮点型转换成字符串型结果返回 /P
  lt :: 输入参数
value - 浮点型数字
digits - 小数点后多少位,0-8 /P
  lt 示例: /P
 
  lt string value=DoubleToStr(1.28473418, 5);
// value is 1.28473 /P
  lt
double NormalizeDouble( double value, int digits)
将双精度浮点型格式化后结果返回 /P
  lt :: 输入参数
value - 浮点型数字
digits - 小数点后多少位,0-8 /P
  lt 示例: /P
  DIV
  lt double var1=0.123456789;
double StrToDouble( string value)
将字符串型转换成双精度浮点型结果返回 /P
  lt :: 输入参数
value - 数字的字符串 /P
  lt 示例: /P
 
  lt double var=StrToDouble( 103.2812 /P
  lt
int StrToInteger( string value)
将字符串型转换成整型结果返回 /P
  lt :: 输入参数
value - 数字的字符串 /P
  lt 示例: /P
 
  lt int var1=StrToInteger( 1024 /P
  lt
datetime StrToTime( string value)
将字符串型转换成时间型结果返回,输入格式为 yyyy.mm.dd hh:mi /P
  lt :: 输入参数
value - 时间的字符串 /P
  lt 示例: /P
 
  lt datetime var1;
var1=StrToTime( 2003.8.12 17:35
var1=StrToTime( 17:35 // returns with current date
var1=StrToTime( 2003.8.12 // returns with midnight time 00:00 /P
  lt
string TimeToStr( datetime value, int mode=TIME_DATE|TIME_MINUTES)
将时间型转换成字符串型返回 /P
  lt :: 输入参数
value - 时间的数字,从1970.1.1 0:0:0 到现在的秒数
mode - 返回字符串的格式 TIME_DATE(yyyy.mm.dd),TIME_MINUTES(hh:mi),TIME_SEConDS(hh:mi:ss) /P
  lt 示例: /P
 
  lt strign var1=TimeToStr(CurTime(),TIME_DATE|TIME_SECONDS); /P
  lt /P [/td][/tr]
外汇交易有很大的风险性,本站所有资源均来自网络,请选择使用,如若出现亏损,本站不承担任何责任!

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关行情
推荐行情
点击排行