作者:庄晓立(liigo)
日期:2011/04/15 (2011/10/21更新)
原创链接:http://blog.csdn.net/liigo/archive/2011/04/15/6326871.aspx
转载请注明出处:http://blog.csdn.net/liigo
关键字:股票软件 自定义公式 扩展函数 DLL 插件 C语言接口 易语言 大智慧(新一代) 分析家 飞狐交易师
大智慧(新一代)/分析家/飞狐交易师等股票软件都有公开的C语言接口,允许用户编写DLL自定义股票软件公式扩展函数。但是,要知道,玩股票的多数都不是程序员,很多人不会C语言、不会编写DLL(动态连接库),通过网络会发现很多人不会却渴望自己开发公式扩展函数。此外,股软函数的C语言接口,虽然对程序员来说不是很复杂,但对非程序员普通股民用户来说却相当深奥,不易理解和使用。有了易语言版的开发模块后,事情有了很大的改观:中文编程,简单易用,不需要专业编程知识,用很少的学习成本,就能达到自定义股票软件公式扩展函数的目的。
目前,我(liigo)开发的易语言版股票软件自定义公式扩展函数插件开发模块,已经初步完成,实现100%完整兼容股软官方C语言接口和功能,目前处于公开测试阶段。此前的内测结果表明,至少95%的功能和80%数据是正确的。由于本人对股票和股票软件认知有限,难以继续深入测试,急需更多专业用户参与测试,扩大测试范围和测试强度。此次发布的测试版模块,包含完整的模块源代码、例程,以及简单的使用文档。愿意参与交流、测试、提交BUG、建议和反馈信息的朋友,请加入测试专用QQ交流群。期待你的到来。此易语言模块将永久免费、开源。为人民币服务。
请加QQ群,随时提交BUG、建议和反馈信息,也可能随时更新模块和源代码。
2011/10/21更新:已提供最新beta5版下载地址(2011/5/10发布)。请不要再申请加入QQ群了,群容纳的人数有限,目前限制新人加入。
编译和测试方法:
1、用我(liigo)提供的 link.dll 覆盖易语言安装目录中 tools 子目录内的同名文件(注意备份);(重要!)
2、修改易语言安装目录中 tools 子目录内的 link.ini 文件,打开选项 show_command_line=yes 和 retain_intermediate_files=yes,即去掉行首的分号(;),见下图:
3、使用易语言打开测试例程,liigotest.e,静态编译生成 liigotest.dll (还会同时生成其他编译链接中间文件);
4、复制易语言IDE中输出的静态链接命令行文本,去掉 /def: 及以后的部分,粘贴到控制台窗口(开始-运行-cmd.exe打开控制台),如下图,回车执行,将再次静态编译生成新的 liigotest.dll (覆盖刚才静态编译的同名文件):
5、将最新生成的 liigotest.dll 复制到股票软件指定目录中(大智慧新一代:C:/dzh2,飞狐交易师:C:/FoxTrader/FmlDLL),就可以在股票软件中测试调用其中的扩展函数了(调用方式:"LIIGOTEST@SUM"(1,2),详见相应的股票软件帮助文档)。
注意,在第4步骤,如果遇到编译链接错误,提示找不到某某.lib时,可尝试在命令行后面添加以下参数: /LIBPATH:"C:/Program Files/e/linkers/vc6/Lib" /LIBPATH:"C:/Program Files/e/linkers/vc6/MFC/Lib" (最前面有一空格)注意修正路径,确保在你电脑上存在。(本模块beta5已解决此错误。)
calcinfo.e 是模块源码
liigo_股票函数插件(CALCINFO).ec 是calcinfo.e编译结果
liigotest.e 是测试用DLL源码
liigotest.dll 是 liigotest.e 编译结果,里面定义了以下三个测试函数:
SUM(a,b) 接收两个数值参数,返回参数值之和
AVGVAR(x) 接收一个序列数参数,返回其中所有数值的平均值
DUMMY 不需要参数,也不返回任何值
请在股软中调用以三个函数以测试是否有效。
下面计划写一些模块使用方法(开发文档),和模块实现细节,未定,待续。