股票时间序列自定义数据例子-记录每天的集合竞价成立量
助手Order.dll 提供的自定义数据函数 Get 和 Set 函数。对于单个数值的数据,大家比较容易理解。而时间序列数据相对复杂,这里以一个例子,帮助大家更好理解这类数据的意思和用处。
10000以上类型表示时间序列数据,时间序列数据在公式代码里面大家其实已经很熟悉了,最常用的C就是一个时间序列数据,其他比如开高低收量额等等历史数据都是时间序列。序列值和运行公式所用的时间周期有关,如果是日线,每天记录有一个值。如果是1分钟线,每一分钟记录一个值。 注意,序列类型的支持大智慧兼容的dll如大智慧,飞狐系列,新版也已经支持通达信。
这里是大智慧时间序列数据应用的一个例子: 记录每天的集合竞价成交量,并在图形上显示竞价成交量占全天成交量的比例。
这个例子需要一个全推的大智慧,并有股票池功能。我们用一个股票池,每天运行,记录每天的集合竞价。此股票池可在助手大智慧股票池例子目录里面找到.
在第二个设条件输入以下代码,每天运行股票池就会记录竞价成交量了,注意周末假期不要运行,或者在助手里设置勾选只记录交易日的数据。查看函数说明
{周末要停止股票池运行,否则数据会记录有误} 是竞价时间: currenttime > 92500 and currenttime < 93000 ; if 是竞价时间 then begin set10001:"Order@Set"(dynainfo(8), 10001*是竞价时间, 1); end;
记录的数据可以在助手 自定义数据 管理器里面查看,以下是运行了大概一周后的数据。
有了数据后,接下来就可以编写公式获取这些数据了,需要用到 Get 函数
获取竞价成交量公式。
集合竞价成交量:"Order@Get"(10001, 1),volstick;
计算竞价成交量和全天成交量的比例。
竞价成交量占比:"Order@Get"(10001, 1)/vol*100,volstick;
计获取的竞价成交量可以做任何运算,就如系统的 VOL 数据一样。
集合竞价成交量:"Order@Get"(10001, 1),volstick; MA5:MA(集合竞价成交量,5); REF3:REF(集合竞价成交量,3);
在大智慧日线图上打开以上两个指标,如下
通达信股票池记录竞价成交量的例子如下
在第二个设条件输入以下代码,每天运行股票池就会记录竞价成交量了,注意周末假期不要运行,或者在助手里设置勾选只记录交易日的数据。查看函数说明
{获取助手系统内置的交易数据,类型<100为助手内置的类型数据如上次买入时间等, 这些数据不需要设置就能获取} {类型 100 以上为用户可定义数据,可以写入任意单值数据,并读取} 是竞价时间: MACHINETIME > 92500 AND MACHINETIME < 93000 ; SET_DATE:= TDXDLL1(30, STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, DATE);{写入日期} {写入时间,日线周期可不调用} {SET_TIME:=TDXDLL1(31,STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, TIME);} SET_VALUE:=TDXDLL1(32,STR2CON(STRCAT(CON2STR(PERIOD,0),CODE)), 10000*是竞价时间, DYNAINFO(8));{写入数值};