1、使用 Visal C+对通达信进行插件编程(附实例源码与接口规范)使用 Visal C+对通达信进行插件编程(附实例源码与接口规范)1.实例源码的工程文件。用 Visual C+ 6.0 打开,并编译成 MyPlugin.dll。有 VC 基础的人可以容易的修改其输出函数,在此不多说。attach634413/attach2.在 TDX 安装目录下新建一个 plugin 目录,把 MyPlugin.dll 拷贝进来。attach634414/attachattach634415/attach3.在 TDX 操作界面中输入 .908 快捷码(或在选股器菜单中选插件选股)出现插件选股工具,如果你看
2、到下图所示,恭喜,插件加入成功。attach634416/attachattach634417/attach4.执行选股。通达信插件选股编程规范编写新的选股插件只需定制自己的”MyPlugin.cpp”(名称亦自定) ,其他源文件为接口规范,不可更改。插件的编写包括一个插件信息注册函数,两个选股条件判断函数和若干自编实现细节函数。1.插件信息注册函数包括注册插件基本信息和参数信息,相关结构定义参见”OutStruct.h”,现支持 4 个参数。具体函数实例可参见”MyPlugin.cpp”示范程序。2.选股条件判断函数BOOL InputInfoThenCalc1(char * Code,sh
3、ort nSetCode,int Value4,short DataType,short nDataNum,BYTE nTQ,unsigned long unused)此函数申请全部本地历史数据判断最新条件成立与否; BOOL InputInfoThenCalc2(char * Code,short nSetCode,int Value4,short DataType,NTime time1,NTime time2,BYTE nTQ,unsigned long unused) 此函数阶段的历史判断计算阶段最后条件成立与否。数据申请是通过函数指针调用回调函数,该回调函数声明如下:DATAIOFU
4、NC(char * Code,short nSetCode,short DataType,void * pData,short nDataNum,NTime,NTime,BYTE nTQ,unsigned long) Code 为股票代码,如申请上证指数数据则赋值为”999999”;nSetCode 为市场分类,0 为深市,1 为沪市;DataType 为申请数据类型,缺省为日 K 线历史数据,如申请行情数据则赋值为REPORT_DAT,其他相关类型参见”OutStruct.h”;pData 为申请数据缓冲区,若为 NULL 且 nDataNum 为-1 则函数返回历史数据个数;nDataNu
5、m 为申请数据个数,若为-1 且 pData 为 NULL 则函数返回历史数据个数;2 个 Ntime 为申请数据的时间范围,缺省为全部本地历史数据;nTQ 精确除权信息。编写选股条件判断函数应考虑判断申请到的数据个数和选股参数的关系,否则可能使选股条件无意义。具体函数实例可参见”MyPlugin.cpp”示范程序。3.自编实现细节函数为选股条件判断函数的实现可自编写辅助函数,如计算均线、判断交叉等,可理解为编写一般公式所使用的各类函数。以后根据需要将会公布更多常用的辅助函数。函数编写应注意判断数据的有效性,系统对0xF8,0xF8,0xF8,0xF8定义为无效数,对无效数应加以判断不参与计算
6、。具体函数实例可参见”MyPlugin.cpp”示范程序。4.插件 dll 的使用将生成的 dll 文件拷贝到主程序的 plugin 目录下(如果没有此目录,请人工建立,如果该 dll 有关联文件,请一并拷贝过去)主程序进入后,在选股器时打开“插件选股”,即可使用此插件进行选股,运行期间拷贝dll 过去后,在插件选股界面上点击刷新也可以找到此插件。EXCEL 读取通达信股票日线数据发布于:软件开发网 来源:互联网 作者:佚名 时间:2009-01-23 点击: 483定量分析的第一步,是获取数据。获取股票历史行情数据最方便的途径,就是直接读取股票行情软件留在你电脑中的日线数据文件。但如果不是程
7、序员,电脑里一般不会有 VB、VC 之类的编程语言。怎么办呢? 其实,大家的电脑中一般都有 OFFICE。OFFICE 中的 EXCEL 自带了一个 VBA 语言的编程环境。功能也很强大。我用 EXCEL 里的 VBA 编写了一段代码,读取通达信股票行情软件的日线文件。已经测试通过。代码如下。与爱好定量分析的朋友分享。 Type MyTypea1 As Long 标示码a2 As Long 日期a3 As Single 开盘价a4 As Single 最高价a5 As Single 最低价a6 As Single 收盘价a7 As Single 成交金额a8 As Long 成交量End Ty
8、pe http:/ Sub 按钮 1_Click()Dim File2 As IntegerDim b As MyTypeFile1 = FreeFileOpen “sh600000.day“ For Binary Access Read As #File1i = 1Do While Not EOF(File1)Get #File1, , bCells(i, 1) = b.a1Cells(i, 2) = b.a2Cells(i, 3) = b.a3Cells(i, 4) = b.a4Cells(i, 5) = b.a5Cells(i, 6) = b.a6Cells(i, 7) = b.a7Ce
9、lls(i, 8) = b.a8i = i 1LoopClose #File1 End Sub 别忘了把其中红字标示的文件名换成你想要读取的数据文件名。 简介:这是通达信股票分析软件日线数据读取程序的详细页面,介绍了和读取,有关的知识,加入收藏请按键盘 ctrl+D,谢谢大家的观看!要查看更多有关信息,请点击此处以招商银行数据为例测试/ stock.cpp : defines the entry point for the console application./#include “stdafx.h“#include #include #include typedef structint d
10、ate;int open;int high;int low;int close;int amount;int vol;int reservation; stockdata; 和 “通达信股票分析软件日线数据读取程序“ 有关的 c#、、c+编程小帖士:strongDateValue(datetime)取得符合国别设定样式的日期值,并包含时间。 stockdata stockdata;int read_data(file *); void main()file *fp;if(fp = fopen(“e:通达信vipdocshldaysh600036.day“,“rb“) = null) / 打开招
11、商银行日线 printf(“error: cant open sh600036.day ! “);exit(0); read_data(fp);fclose(fp);if(getch()=0) getch();exit(0);int read_data(file *fp)float fn;while (! feof(fp) fread(printf(“%10lu “,stockdata.date);fn=float(stockdata.open)/100;printf(“%8.2f “,fn);fn=float(stockdata.high)/100;printf(“%8.2f “,fn);fn=float(stockdata.low)/100;printf(“%8.2f “,fn);fn=float(stockdata.close)/100;printf(“%8.2f “,fn);printf(“%8lu “,stockdata.amount);fn=float(stockdata.vol)/100;printf(“%8.2f “,fn);printf(“ “);return 0;