数据同步存调DLL(通达信版+大智慧版)
通达信版说明书
(TdxSaveData.dll)
一、功能
在通达信中绑定本DLL,可以实现以下功能:
1.可以实现通达信与通达信之间、大智慧与大智慧之间、通达信与大智慧之间的自定义数据存储后的互转换、互调用。数据可以是公式、函数、计算结果等等能取到的任何数值型数据。且转存是实时进行的,转后是可立马调用的(无需导入等步骤,直接可以在公式中调用)。
此功能特别适合批量、定时保存重要的盘中实时数据,如9:20后每一分钟的竞价数据、所有的历史及当天的开盘数据、盘中分时价格变动数据、通达信中有大智慧中没有或大智慧中有通达信中没有的数据。。。等等。因为保存格式可以是序列数据,所以它不仅会保存当天的,也会一起保存其它日期的历史数据。当然也可保存当天数据。(将序列数据使用CONST函数转换后即可得到常量数据,即单笔不带日期的数据)
本说明书仅简介通达信中使用的DLL,本DLL能存储通达信中或大智慧中使用的格式的自定义数据。(另外,还有另一款大智慧DLL,它在大智慧软件中使用,可存储通达信或大智慧格式的自定义数据,这里就不作介绍了)这样,就实现了通达信内部、大智慧内部、通达信与大智慧跨软件的数据存储、转换、调用了!!!
2.除保存成自定义序列数据外,也可保存成自定义外部(文本、数值)数据,即保存到extern_user.txt文件中(通达信直接可调用它)。
3.可将板块或股池中的代码保存到TXT或BLK文件,实现与其它软件或其它通达信之间的代码互通。
4.其它更多功能刚下面函数介绍。
【部分使用场景举例】:
1.竞价图选股:竞价结束后,想找出竞价走势(竞价图)9:20到9:24四分钟走直线,最后1分钟向上飞涨3个点以上的个股。
逻辑思路:使用股池,利用它可定时运行的特点,通过DLL的第1个函数功能,将所有个股竞价时段共5分钟的价格保存成5个数据值。当竞价结束后,即可对这5个值进行比较运算,筛选出符合条件的个股。因为通过DLL已经保存了值1、值2、值3、值4、值5共五个值,选股时公式条件设置就是:值1=值2=值3=值4;值5>值4*1.03 就能选出竞价图前4分钟直线,后1分钟涨3个点的股票来了。有了思路,转成公式表达就简单多了。
注:通达信竞价时段取数据与盘中有点不同:取价格应使用DYNAINFO(20)函数,即取买一价;取金额应使用DYNAINFO(15)函数,即取开盘金额;取量当然就是DYNAINFO(15) / DYNAINFO(20)
另外说一点,如果感觉一分钟取一次价太粗糙,你也可以改成10秒保存一次数据值。
2.存开盘金额:之前论坛里看到不少人为了查询个历史开盘金额,痛苦得每天要保存开盘金额为扩展数据,一天忘了或一天操作错了,还会丢失所有的历史数据。如果你用这DLL,就不会再有这烦恼了。同样通过股池的定时运行功能,设计个股池,源池是所有A股,使用DLL来保存开盘金额,在每天9:26自动运行此股池。即可完成自动保存每天的开盘金额功能。(其实很多人不知道,新版通达信开盘金额是序列数据,直接在公式中用REF(DYNAINFO(15),N)就能调用它的历史数据了)
3.不同通达信共享数据:因保存序列数据的路径是可以自由设置的,所以既可保存到本通达信中供调用,也可保存到本机其它通达信里使用。
4.使用第3个函数的存TXT功能,和幻影联动软件的分时选股配合,可实现分时选股加自动买入。
5.短周期选股,如15分钟选股、5分钟选股:如果盘中要实现速度快、出票及时又不用下载分钟数据的简易的短周期选股,可使用本DLL。如5分钟选股,可以将盘中总计4小时,每5分钟存一次数据(股价),共存储成48个数据号,这样公式中就可对这48个数据进行比对筛选,实现粗略的短周期选股。
6.大智慧数据(如ACE)同步给通达信用:本DLL有大智慧版本,可以将大智慧盘中能取到的数据,自动转为通达信的自定义数据(也是通过股池来负责保存数据),且整个数据的存储过程是自动的,数据直接存到通达信里,通达信可直接调用,无需任何人工操作步骤。
7.通达信的数据同步给大智慧使用
二、安装及使用
共二个文件:TdxSaveData.dll和TdxSaveData.ini配置文件
将这两个文件复制到通达信T0002\dlls目录下,然后在通达信公式管理器中点击“DLL函数”,在弹出的“绑定DLL函数”窗里,选择可绑定的函数号进行绑定。记住绑定的号数,后面在使用公式时,必须修改TDXDLL1这个后面的1为你绑定的数字。如绑定第2号函数,则公式中要把所有含TDXDLL1的地方改成TDXDLL2。
下面均以绑定1号函数来示例。绑定其它号上的请自行更改公式。
1号函数,功能:将通达信数据存为通达信序列数据
*** 注意:只支持存储数值型数据,不支持存储文字类数据 ***
第一步:按需新建自定义数据号
先在通达信自定义数据管理器中,新建数据号,要用到几个数据就建几个数据号。数据号与公式调用中的数据号对应,且值不超99。属性选“序列(日期、数值)”项,建好后关闭该自定义数据管理器窗口。
第二步:新建保存数据公式
NO:=【数据号】;{注释:此处自定义数据的数据号,不能大于99}
DATA:=【值】;{ 注释:要保存的数据, 注意:最大值包含小数点不能超7位}
TDXDLL1(1,STR2CON(STRCAT(CON2STR(INTPART(NO/10),0),CODE)),DATE*10+(NO-INTPART(NO/10)*10), ROUND2(DATA,2));
使用时,请把公式中【】里的内容替换成你实际的公式表达(含【】一起替换掉)
如:
NO:=5;
DATA:=C;
TDXDLL1(1,STR2CON(STRCAT(CON2STR(INTPART(NO/10),0),CODE)),DATE*10+(NO-INTPART(NO/10)*10), ROUND2(DATA,2));
以上公式表示保存历史及当日的收盘价到5号自定义数据中。
第三步:下载一年以上的完整日K数据
第四步:建股池,定时自动保存数据
因序列数据一般都用于一批股票,所以使用股池来完成保存数据的工作比较合适。将公式放在股池的转移条件里,源池设置成这一批股票。另外,因同一个数据号同一日期只能有一个数据,所以要保存当天多个时间段数据的话,需要保存成不同的数据号。
还是以上面的“使用场景举例”中的第一个例子,保存竞价时段每分钟的价格数据供后续调用,可设计股池如下:

从上图设计可看出,它利用了股池的定时执行一次功能,股池自动会在9:21、9:22、9:23、9:24、9:25分别将收盘价保存到各自的数据号中。后续通过调用自定义数据函数,即可取到该5个值。
第五步:通达信中调用数据公式
SIGNALS_USER(【数据号】,2)
如调用5号数据的公式为 SIGNALS_USER(5,2)
这样就可以调用你已经保存的任何自定义数据了。
高级:
应用①、前面有介绍,本序列数据默认是保存到DLL所在的通达信里的,如果你想保存到其它通达信里,供其它通达信调用,则可在配置文件TdxSaveData.ini中,在[set]节点下,添加一行SelfDataSavePath=【通达信目录】\T0002\signals即可。
如添加一行 SelfDataSavePath=d:\new_tdx\T0002\signals&nb

2万+




被折叠的 条评论
为什么被折叠?



