价格数据相关函数
用于获取货币对/时段内价格数据的一组函数。
如果请求数据(货币对名称/时段不同于当前图表)来自其他图表,这种情况可能是相应的图表没有在客户端内打开,并且需要从服务器端下载数据。这种情况下,错误信息ERR_HISTORY_WILL_UPDATED(4066-请求的历史数据正在更新中)将被放置到last_error变量中,并且不得不重新请求更新(参看ArrayCopySeries()范例)。
在测试中,同货币对价格数据或不同时段的价格数据被精确地模拟(除成交量外)。其他时段的成交量不模拟,其它货币对的价格数据同样也不模拟。无论何种情况,一个时段内柱子总数会被精确地模拟。
double iBars(string 币, int 框)
指定时框图表上的K线数量。
如果对于当前图表,柱子数量的信息保存在预定义的变量Bars中。
参数:
symbol - 要计算指标数据的货币对名称。 NULL表示当前货币对。
timeframe - 时间框。 可以 时间周期列举 任意值。 0表示当前图表的时间框。
示例:
int iBarShift(string 币, int 框, datetime 指定时间, void 返回方式=false )
搜索并返回前期指定时间K线点到当前的时间跨距。
如果带指定开盘时间的K线不存在,函数值将返回-1或该币在指定时框的最近的K线数,这取决护返回方式参数的设置。
参数:
symbol - 指定的货币对名。 (NULL表示当前货币对。)
timeframe - 时间框。 (0表示当前图表的时间框。)
time - 指定K线时间点,(以K线开盘为准)。
exact - 如果没有发现K线的返回方式。
false:默认返回指定时框最近的K线,
true:返回-1。
示例:
跨周期引用指标值(在当前的分钟图表上看小时框上的的该指标):
//--返回该币在小时框中
引用指标1线值[i]= iCustom(NULL, PERIOD_H1, "MY指标", 参数1, 参数2, 参数3, 0, iBarShift(NULL, PERIOD_H1, iTime(NULL, 0, i)));
引用指标2线值[i]= iCustom(NULL, PERIOD_H1, "MY指标", 参数1, 参数2, 参数3, 1, iBarShift(NULL, PERIOD_H1, iTime(NULL, 0, i)));
double iClose(string 指定币, int 指定框, int shift)
返回带有时段和偏移量的指定货币对K线的收盘价。
如果本地历史表为空(历史数据未加载),函数返回0。
对于当前图表,收盘价的信息保存在 预定义数组Close[] 中。
参数:
symbol - 要计算指标数据的货币对名称。 NULL表示当前货币对。
timeframe - 时间框。 可以 时间周期列举 任意值。 0表示当前图表的时间框。
shift - 从指标缓冲区中获取值的索引 (相对当前K线向左移动一定周期数的偏移量)。
示例:
Print("对于 USDCHF H1当前柱: ",
iTime("USDCHF", PERIOD_H1, i), ", ",
iOpen("USDCHF", PERIOD_H1, i), ", ",
iHigh("USDCHF", PERIOD_H1, i), ", ",
iLow("USDCHF", PERIOD_H1, i), ", ",
iClose("USDCHF", PERIOD_H1, i), ", ",
iVolume("USDCHF", PERIOD_H1, i));
double iHigh(string 指定币, int 指定框, int shift)
求指定货币对的指定时段指定偏移量的K线最高价。
如果本地历史表为空(历史数据未加载),函数返回0。
对于当前图表,最盘价的信息保存在 预定义数组High[]中。
参数:
symbol - 要计算指标数据的货币对名称。 NULL表示当前货币对。
timeframe - 时间框。 可以 时间周期列举 任意值。 0表示当前图表的时间框。
shift - 从指标缓冲区中获取值的索引(相对当前K线向前移动一定周期数的偏移量)。
示例:
Print("对于 USDCHF H1当前柱: ",
iTime("USDCHF", PERIOD_H1, i), ", ",
iOpen("USDCHF", PERIOD_H1, i), ", ",
iHigh("USDCHF", PERIOD_H1, i), ", ",
iLow("USDCHF", PERIOD_H1, i), ", ",
iClose("USDCHF", PERIOD_H1, i), ", ",
iVolume("USDCHF", PERIOD_H1, i));
int iHighest(string 指定币, int 指定框, int 价类, void 跨期, void 始shift)
求在一个指定时间框内最大值的偏移量。
参数:
symbol - 要计算指标数据的货币对名称。 NULL表示当前货币对。
timeframe - 时间框。 可以 时间周期列举 任意值。 0表示当前图表的时间框。
type - 序列数组的识别符。它可以是 序列数据识别符枚举 的任意值。
count - 要计算出的周期数(沿着开头K线到后而K线的方向)。
start - 开始K线,相对于当前K线,开始采集数据的K线。
示例:
double 极高值;
//--计算在当前图表上从左数第4个至第23个(共20根连续K线)范围内的最大值
极高值= High[iHighest(NULL, 0, MODE_HIGH, 20, 4)];
//------------获得指定时段内的最高价和最低价----------------+
double 查找区间极值子(string 查找类型, datetime 始时= D'2010.04.21 12:00', datetime 终时= D'2010.03.21 12:00')
{
//--先找到区间跨期数
int 始Shift= iBarShift(NULL, 0, 始时, True);
int 终Shift= iBarShift(NULL, 0, 终时, True);
int 跨期= 始时棒-终时棒; // 开始时间和结束时间之间的k线数
//--区间极高时
int 区域高棒时= iHighest(NULL, 1, 2, 跨期, 始Shift);
//--区间极低时
int 区域低棒时= iLowest (NULL, 1, 1, 跨期, 始Shift);
if(查找类型=="极高值")
return(High[区域高棒时]);
else
if(查找类型=="极低值")
return(Low [区域低棒时]);
}
double iLow(string 指定币, int 指定框, int shift)
求指定货币对的指定时段指定偏移量的K线最低价。
如果本地历史表为空(历史数据未加载),函数返回0。
对于当前图表,最盘价的信息保存在 预定义数组Low[] 中。
参数:
symbol - 要计算指标数据的货币对名称。 NULL表示当前货币对。
timeframe - 时间框。 可以 时间周期列举 任意值。 0表示当前图表的时间框。
shift - 从指标缓冲区中获取值的索引(相对当前K线向前移动一定数量周期的偏移量)。
示例:
Print("对于 USDCHF H1当前柱: ",
iTime("USDCHF", PERIOD_H1, i), ", ",
iOpen("USDCHF", PERIOD_H1, i), ", ",
iHigh("USDCHF", PERIOD_H1, i), ", ",
iLow("USDCHF", PERIOD_H1, i), ", ",
iClose("USDCHF", PERIOD_H1, i), ", ",
iVolume("USDCHF", PERIOD_H1, i));
int iLowest(string 指定币, int 指定框, int 价类, void 跨期, void 始shift)
求在一个指定时间框内最低值的偏移量。
参数:
symbol - 要计算指标数据的货币对名称。 NULL表示当前货币对。
timeframe - 时间框。 可以 时间周期列举 任意值。 0表示当前图表的时间框。
type - 序列数组的识别符。它可以是 序列数据识别符枚举 的任意值。
count - 要计算出的周期数(沿着开头K线到后而K线的方向)。
start - 开始K线,相对于当前K线,开始采集数据的K线。
示例:
double 极低值;
//--计算在当前图表上从左数第4个至第23个(共20根连续K线)范围内的最小值
极低值= Low[iLowest(NULL, 0, MODE_LOW, 20, 4)];
double iOpen(string 指定币, int 指定框, int shift)
求指定货币对的指定时段指定偏移量的K线开盘价。
如果本地历史表为空(历史数据未加载),函数返回0。
对于当前图表,最盘价的信息保存在 预定义数组Open[] 中。
参数:
symbol - 要计算指标数据的货币对名称。 NULL表示当前货币对。
timeframe - 时间框。 可以 时间周期列举 任意值。 0表示当前图表的时间框。
shift - 从指标缓冲区中获取值的索引(相对当前K线向前移动一定数量周期的偏移量)。
示例:
Print("对于 USDCHF H1当前柱: ",
iTime("USDCHF", PERIOD_H1, i), ", ",
iOpen("USDCHF", PERIOD_H1, i), ", ",
iHigh("USDCHF", PERIOD_H1, i), ", ",
iLow("USDCHF", PERIOD_H1, i), ", ",
iClose("USDCHF", PERIOD_H1, i), ", ",
iVolume("USDCHF", PERIOD_H1, i));
datetime iTime(string 指定币, int 指定框, int shift)
求指定货币对的指定时段指定偏移量的K线开盘时间。
返回带有时段和偏移量的指定货币对K线的开盘时间。
如果本地历史表为空(历史数据未加载),函数返回0。
对于当前图表,最盘价的信息保存在 预定义数组Time[] 中。
参数:
symbol - 要计算指标数据的货币对名称。 NULL表示当前货币对。
timeframe - 时间框。 可以 时间周期列举 任意值。 0表示当前图表的时间框。
shift - 从指标缓冲区中获取值的索引(相对当前K线向前移动一定数量周期的偏移量)。
示例:
Print("对于 USDCHF H1当前柱: ",
iTime("USDCHF", PERIOD_H1, i), ", ",
iOpen("USDCHF", PERIOD_H1, i), ", ",
iHigh("USDCHF", PERIOD_H1, i), ", ",
iLow("USDCHF", PERIOD_H1, i), ", ",
iClose("USDCHF", PERIOD_H1, i), ", ",
iVolume("USDCHF", PERIOD_H1, i));
long iVolume(string 指定币, int 指定框, int shift)
返回带有时段和偏移量的指定货币对K线的成交量。
如果本地历史表为空(历史数据未加载),函数返回0。
对于当前图表,最盘价的信息保存在 预定义数组Volume[] 中。
注:该成交量并非真正意义上的成交量,这是一个估计值,其值为该K线下tick价格变动的数量,其背后的意义为如果tick价格变动很快,表示成交量越大;tick价格变动越慢,表示成交量越小。
参数:
symbol - 要计算指标数据的货币对名称。 NULL表示当前货币对。
timeframe - 时间框。 可以 时间周期列举 任意值。 0表示当前图表的时间框。
shift - 从指标缓冲区中获取值的索引(相对当前K线向前移动一定数量周期的偏移量)。
示例:
Print("对于 USDCHF H1当前柱: ",
iTime("USDCHF", PERIOD_H1, i), ", ",
iOpen("USDCHF", PERIOD_H1, i), ", ",
iHigh("USDCHF", PERIOD_H1, i), ", ",
iLow("USDCHF", PERIOD_H1, i), ", ",
iClose("USDCHF", PERIOD_H1, i), ", ",
iVolume("USDCHF", PERIOD_H1, i));
网友评论