13.8 时间序列自定义数据例子--记录集合竞价

股票时间序列自定义数据例子-记录每天的集合竞价成立量

助手Order.dll 提供的自定义数据函数 GetSet 函数。对于单个数值的数据,大家比较容易理解。而时间序列数据相对复杂,这里以一个例子,帮助大家更好理解这类数据的意思和用处。

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));{写入数值};