NDay
简述
提取或计算当前日期往前N个历史交易日数据,提取或计算的数据与当前的股票代码、周期、时间等有关。Field0,Field1,…FieldM是要提取数据的字段名,而相应的表达式由Expression0,Expression1,Expression2…ExpressionM给出。这些字段内容往往是开、收、高、低价、成交量等行情相关的数据。参数个数不固定,按照用户需要提取的数据确定。固定第一个参数为交易日天数(即周期个数),其后跟随的参数为两个一组,分别为提取的数据列名,对应的函数。比如第二个参数是第三个参数(表达式)的列名,第四个参数是第五个参数的列名,依此类推。
该函数提取或计算的过程相当于:
Table[0][Field0] := ref(Expression0 , N-1);
Table[0][Field1] := ref(Expression1 , N-1);
……
Table[0][FieldM] :=ref(ExpressionM,N-1);
Table[1][Field0] := ref(Expression0 , N-2);
Table[1][Field1] := ref(Expression1 , N-2);
……
Table[1][FieldM] := ref(ExpressionM,N-2);
……
……
Table[N-1][Field0] := ref(Expression0,0);
……
Table[N-1][FieldM] := ref(ExpressionM,0);
相似函数见Nday2,NDay3
NDay(N: Integer;Field0: String;Expression0: TExpression;[Field1: String;Expression1: TExpression;][…][FieldM: String;ExpressionM: TExpression]):TableArray;
名称 | 类型 | 说明 |
---|
N | integer | 整数,交易日天数。与周期相关,例如做日线的时候代表N个交易日数据,分钟线代表N个交易分钟数据 |
Field0 | String | string 字段名 |
Expression0 | TExpression | 表达式,跟Field0相对应 |
Field1 | String | string字段名 |
Expression1 | TExpression | 表达式,跟Field1相对应 |
FieldM | String | string字段名 |
ExpressionM | TExpression | 表达式,跟FieldM相对应 |
//返回万科A历史2天的收盘价
setsysparam(pn_stock(),'SZ000002');
setsysparam(pn_date(),inttodate(20140115));
Table:=NDay( 2, 'close' , Close() );
{默认当前周期为日线,设置当前时间为2014年1月15日,当前股票的昨天的收盘价格为7.23,今天的当前价格为7.17,则返回的结果相当于
Table:= Array (('close': 7.23),('close': 7.17));
也就是说X相当于
Table[0]['close']:=7.23;
Table[1]['close']:=7.17;
}
//取得万科截止20110909前30个交易日的若干行情信息;
setsysparam(pn_stock(),'SZ000002');
setsysparam(pn_date(), inttodate(20110909));
return nday(30,'时间',datetimetostr(sp_time()),
'收盘价',close(),
'当日高价',high(),
'30日均线',ma(close(),30));
结果(部分):
NDay2 NDay3