262 lines
9.6 KiB
Markdown
262 lines
9.6 KiB
Markdown
# 数据仓库 / 时间序列统计
|
||
|
||
## `sp_median(arg1, arg2)`
|
||
|
||
时间序列统计相关函数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | -------- | ---- |
|
||
| `arg1` | any | |
|
||
| `arg2` | datetime | |
|
||
|
||
返回:any
|
||
|
||
## `sp_mode(arg1, arg2)`
|
||
|
||
时间序列统计相关函数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | -------- | ---- |
|
||
| `arg1` | any | |
|
||
| `arg2` | datetime | |
|
||
|
||
返回:any
|
||
|
||
## `sp_norm(stock_id, arg2)`
|
||
|
||
时间序列统计相关函数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | ------ | ---- |
|
||
| `stock_id` | string | |
|
||
| `arg2` | any | |
|
||
|
||
返回:any
|
||
|
||
## `sp_product(stock_id, arg2)`
|
||
|
||
时间序列统计相关函数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---------- | ------ | ---- |
|
||
| `stock_id` | string | |
|
||
| `arg2` | any | |
|
||
|
||
返回:any
|
||
|
||
## `sp_rank(arg1, arg2, arg3)`
|
||
|
||
时间序列统计相关函数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ------ | ---- | ---- |
|
||
| `arg1` | any | |
|
||
| `arg2` | any | |
|
||
| `arg3` | any | |
|
||
|
||
返回:any
|
||
|
||
## `hhv(exp, n, cache_string)`
|
||
|
||
返回N日最高的Exp的值,与系统参数(股票、时间、周期等相关),查看相关行情数据说明。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||
| `exp` | TExpression | TExpression型表达式 |
|
||
| `n` | integer | 整数,天数。N为0时,从上市日算起;注意,计算上市以来的最高/最低时,0必须用常量。比如hhv(high(),0)。不能以变量的方式传递:N:=0; hhv(high(),N),会报错。 |
|
||
| `cache_string` | string | 可选参数,字符串类型,缓存标志串。参见:时间序列统计缓存标志与性能加速 |
|
||
|
||
返回:real
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
//获取万科A(SZ000002)截止2011-09-09日14个交易日内的最高,最低的收盘价以及
|
||
//发生日期。
|
||
setSysParam(pn_stock(),'SZ000002');
|
||
setSysParam(pn_date(),intToDate(20110909));
|
||
n := 14;
|
||
r := array('h_value':hhv(close(),n),
|
||
'h_date':dateToStr(getSysParam('hhvtime')),
|
||
'l_value':llv(close(),n),
|
||
'l_date':dateToStr(getSysParam('llvtime'))
|
||
);
|
||
return r;
|
||
结果:
|
||
```
|
||
|
||
## `llv(exp, n, cache_string)`
|
||
|
||
返回N日最低的Exp的值,与系统参数(股票、时间、周期等相关),查看相关行情数据说明。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||
| `exp` | TExpression | TExpression型表达式 |
|
||
| `n` | integer | 整数,天数。N为0时,从上市日算起;N为负数时无效。注意,计算上市以来的最高/最低时,0必须用常量。比如llv(close(),0)。不能以变量的方式:N:=0; llv(close(),N),会报错。 |
|
||
| `cache_string` | string | 可选参数,字符串类型,缓存标志串。参见:时间序列统计缓存标志与性能加速 |
|
||
|
||
返回:real
|
||
|
||
## `ma(exp, n, cache_string)`
|
||
|
||
返回N日Exp的平均值,与系统参数(股票、时间、周期等相关)。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ----------- | --------------------------------------------------------------------- |
|
||
| `exp` | TExpression | TExpression型表达式 |
|
||
| `n` | integer | 整数,天数。N为0时,返回当天值;N为-1时无效。 |
|
||
| `cache_string` | string | 可选参数,字符串类型,缓存标志串。参见:时间序列统计缓存标志与性能加速 |
|
||
|
||
返回:real
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
范例一:
|
||
//获得万科A(SZ000002)在2011-09-09日的10日均价
|
||
setSysParam(pn_stock(),'SZ000002');
|
||
setSysParam(pn_date(),intToDate(20110909));
|
||
n := 10;
|
||
return ma(close(),n);
|
||
//返回8.103
|
||
范例二:
|
||
//获取万科A一段时间的10日均价
|
||
setSysParam(pn_stock(),"SZ000002");
|
||
setSysParam(pn_date(),strToDate("2014-01-15"));
|
||
t := nDay(100,'time',sp_time(),'close',close(),'ma10',ma(close(),10),'ma20',ma(close(),20));
|
||
return t;
|
||
结果:
|
||
```
|
||
|
||
## `ema(exp, n, cache_string)`
|
||
|
||
返回N日Exp的移动平均,与系统参数(股票、时间、周期等相关)。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ----------- | --------------------------------------------------------------------- |
|
||
| `exp` | TExpression | TExpression型表达式; |
|
||
| `n` | integer | 整数,天数;N为-1,0时无效。 |
|
||
| `cache_string` | string | 可选参数,字符串类型,缓存标志串。参见:时间序列统计缓存标志与性能加速 |
|
||
|
||
返回:real
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
//获得万科A(SZ000002)在2011-09-09日的10日平滑移动均价
|
||
setSysParam(pn_stock(),'SZ000002');
|
||
setSysParam(pn_date(),intToDate(20110909));
|
||
n := 10;
|
||
return ema(close(),n);
|
||
// 结果:8.1158
|
||
```
|
||
|
||
## `sma(exp, n, m, cache_string)`
|
||
|
||
求Exp的N日平滑移动平均,M为权重。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ----------- | --------------------------------------------------------------------- |
|
||
| `exp` | TExpression | TExpression型表达式 |
|
||
| `n` | integer | 整数,天数 |
|
||
| `m` | integer | 整数,权重 |
|
||
| `cache_string` | string | 可选参数,字符串类型,缓存标志串。参见:时间序列统计缓存标志与性能加速 |
|
||
|
||
返回:real
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
//获得万科A(SZ000002)在2011-09-09日的10日平滑移动均价,3为权重
|
||
setSysParam(pn_stock(),'SZ000002');
|
||
setSysParam(pn_date(),intToDate(20110909));
|
||
n := 10;
|
||
m := 3;
|
||
return sma(close(),n,m);//返回8.0914
|
||
```
|
||
|
||
## `count(exp, n, cache_string)`
|
||
|
||
统计N天中表达式Exp值为真的天数。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ----------- | --------------------------------------------------------------------- |
|
||
| `exp` | TExpression | 表达式类型 |
|
||
| `n` | integer | 整数,交易日天数,如果为-1表示从上市第一天起统计 |
|
||
| `cache_string` | string | 可选参数,字符串类型,缓存标志串。参见:时间序列统计缓存标志与性能加速 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
//上证指数在最近100天内的上涨天数;
|
||
setSysParam(pn_stock(),'SH000001');
|
||
setSysParam(pn_date(),intToDate(20140122));
|
||
return count(isUp(),100);
|
||
//返回47。
|
||
```
|
||
|
||
## `sumN(exp, n, cache_string)`
|
||
|
||
求Exp的N日累加和。
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| -------------- | ----------- | --------------------------------------------------------------------- |
|
||
| `exp` | TExpression | TExpression型表达式 |
|
||
| `n` | integer | 整数,交易日天数,如果为-1表示从上市第一天起统计 |
|
||
| `cache_string` | string | 可选参数,字符串类型,缓存标志串。参见:时间序列统计缓存标志与性能加速 |
|
||
|
||
返回:real
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
//获得万科A(SZ000002)在2011-09-09日的5日总成交量
|
||
setSysParam(pn_stock(),'SZ000002');
|
||
setSysParam(pn_date(),intToDate(20110909));
|
||
return sumN(vol(),5); // 返回152502152
|
||
```
|
||
|
||
## `cross(a, b)`
|
||
|
||
A线从下面穿越B线时返回1,从A上面向下穿越B时返回-1,否则返回0。与系统参数(股票、时间、周期等相关)
|
||
|
||
| 参数 | 类型 | 说明 |
|
||
| ---- | ----------- | ------------------- |
|
||
| `a` | TExpression | TExpression型表达式 |
|
||
| `b` | TExpression | TExpression型表达式 |
|
||
|
||
返回:integer
|
||
|
||
### 示例
|
||
|
||
```tsl
|
||
//万科在指定区间内的均线穿越情况;
|
||
setSysParam(pn_stock(),'SZ000002');
|
||
end_date := intToDate(20110829);
|
||
beg_date := incWeek(end_date,-1); //end_date 前推一个
|
||
r := array();
|
||
i := 0;
|
||
for d := end_date downto beg_date do
|
||
begin
|
||
if not isTradeDay(d) then continue;
|
||
setSysParam(pn_date(),d);
|
||
r[i]['date'] := dateToStr(d);
|
||
case cross(close(),ma(close(),5)) of
|
||
1:begin
|
||
r[i]['cross_state'] := '突破5日均线';
|
||
end
|
||
-1:begin
|
||
r[i]['cross_state'] := '跌破5日均线';
|
||
end
|
||
0:begin
|
||
r[i]['cross_state'] := '';
|
||
end
|
||
end;
|
||
i++;
|
||
end;
|
||
return r;
|
||
返回结果:
|
||
```
|