当前位置: 主页 > 建站知识 > 软件开发

股票软件开发插件-(原创)最标准最简洁的通达信DLL股票插件开发流程

发布时间:2023-06-24 16:10   浏览次数:次   作者:佚名

[原创]最标准最简洁的通达信DLL股票插件开发流程一、[序言]2015年开始,中国股市大涨,号称突破10000通信达股票软件去年开始支持加载外部DLL文件并执行.这个是一个非常好的开放.也给广大技术指标股民带来的便利.作为09年的股民,不跟上这种技术潮流,是不行的.因此这几天索性折腾一番,发现网络上公布的文章,要么是技术漏洞百出,要么是排版非常混乱,为了改变这种现状,我有必写出一篇干净整洁的版本.二、[阅读群体]只合适具有C/C++编程经验的技术指标股民阅读,如果你看不懂大部分的内容,请补习一下Windows相关编程理论.三、[工具准备]安装一款由通达信定制的股票软件:比如我的是:国海证券理财服务终端安装开发工具:MicrosoftVisualStudio2010版本以上.四、[开始开发支持通达信调用的DLL文件]首先从下载“通达信DLL函数编程规范.rar”并解压提取PluginTCalcFunc.h头文件出来.这个文件包含跟通达信股票软件交互的关键代码.启动MicrosoftVisualStudio2010开发工具从菜单选择“新建”->“项目”->"VisualC++"->"MFC"->"MFCDLL"并输入项目名称:TDXPlugin然后在弹出的"MFCDLL向导"对话框中选择DLL类型为"使用共享MFCDLL的规则DLL".配置刚刚创建好的TDXPlugin项目属性(从菜单选择"项目"->"TDXPlugin属性"->"常规")3.1>输出目录:C:\zd_ghzq\T0002\dlls备注:这个是通达信股票软件的安装目录,视你的当前环境来填写.当你进入安装目录的时发现没有dlls这个文件夹时,你可以自己创建.3.2>MFC的使用:在静态库中使用MFC在刚刚创建好的TDXPlugin项目中添加之前提取出来的PluginTCalcFunc.h头文件.五、[根据通达信的规范编写代码]在TDXPlugin.cpp文件添加如下代码(注意:TDXPlugin.cpp原有的代码不要删除):TDXPlugin1函数是你自己编写的函数,是跟通信达股票软件交互的函数.通信达股票软件会调用你这个函数并传递你想要的股票数据给你.(备注:如何调用这个函数,后面我会讲解)VoidTDXPlugin1(intDataLen,float*pfOUT,float*pfINa,float*pfINb,float*pfINc)AFX_MANAGE_STATE(AfxGetStaticModuleState());//这里添加你自己的股票分析代码(后面会有详细讲解)g_CalcFuncSets全局结构,存储你自己编写好的函数,比如TDXPlugin1函数PluginTCalcFuncInfog_CalcFuncSets[]该函数为导出函数,给通信达股票软件调用并初始化BOOLRegisterTdxFunc(PluginTCalcFuncInfo**pFun)g_CalcFuncSets;returnTRUE;returnFALSE;在TXDPlugin.def文件设置函数RegisterTdxFunc为导出函数.声明DLL的模块参数。

eclipse插件开发 pdf_股票软件开发插件_eclipse插件开发

LIBRARYEXPORTS此处可以是显式导出RegisterTdxFunc开始编译,如果你完全按照我的步骤处理的话,不会有任何问题,然后会在C:\zd_ghzq\T0002\dlls的目录(备注:这个是通达信股票软件的安装目录,视你的当前环境来填写.当你进入安装目录的时候,发现没有dlls这个文件夹时,你可以自己创建)下生成TDXPlugin.dll六、[通达信股票软件如何加载TDXPlugin.dll并调用写好的TDXPlugin1函数呢?]启动你的通达信股票软件,按CTRL+F激活"公式管理器",单击"DLL函数"在"绑定DLL函数"对话框中,单击"打开绑定",并选择之前生成好的TDXPlugin.dll文件.特别注意的是:默认是选择TDXDLL1,可以下拉选择更多的TDXDLL1~10来绑定不同的DLL文件成功绑定之后,你就可以在通达信股票软件自带的公式编辑器,写下如下代码:TDXDLL1(1,HIGH,CLOSE,LOW)代码含义:TDXDLL1:表示使用的是TDXDLL1来绑定TDXPlugin.dllHIGH:最高价CLOSE:收盘价LOW:最低价1:表示调用TDXPlugin1这个函数,当然如果你有多个函数时,那么你必须修改g_CalcFuncSets结构.PluginTCalcFuncInfog_CalcFuncSets[]上面的结构表示你有3个函数可以让通达信股票软件调用.比如让通达信股票软件调用TDXPlugin2时,代码需要写成:TDXDLL1(2,HIGH,CLOSE,LOW)特此声明:通达信股票软件自带的公式编辑器已经不属于C/C++编程规范了,因此我这里不再详细介绍如何使用公式编辑器.作为一个合格的技术指标股民,你应该自己研究一下.七、[详解TDXDLL1与TDXPlugin1函数的关系]当通信达股票软件的公式代码调用了TDXDLL1(1,HIGH,CLOSE,LOW)时,就会把跟HIGH,CLOSE,LOW这3个参数有关的数据传递给TDXPlugin1函数.比如下面的参数解释intDataLen:表示接受到多少天的数据,有时是742,有时1800等等不同的float*pfINa:表示float类型的数组,比如当DataLen是742那么就意味你接收到742天的HIGH(最高价)float*pfINb:表示float类型的数组,比如当DataLen是742float*pfINa:表示float类型的数组,比如当DataLen是742那么就意味你接收到742天的LOW(最低价)VoidTDXPlugin1(intDataLen,float*pfOUT,float*pfINa,float*pfINb,float*pfINc)连续打印N天的数据WCHARwchar_pintf[1024];(intint_IndexDataLen;int_Index++)swprintf(wchar_pintf,L"DataLen:int_Index,pfINa[int_Index],pfINb[int_Index],pfINc[int_Index]);OutputDebugString(wchar_pintf);备注:OutputDebugString是一个打印函数,你需要通过DebugView工具查看.八、[自定义的DLL 函数返回数据并画图] 这个功能, 我使用的是收费模式, 不会免费对外公布. 价格可以私聊九、[总结] 一般来说, 只要你有丰富的开发经验, 你可以扩展出很多强大的功能. 比如你可以在DLL 文件封装一个对话框程序, 那么你在启动通达信股 票软件的时候, 也会弹出你自己的对话框程序. 请大家发挥自己的想象力吧...... [原创]最标准最简洁的通达信DLL股票插件开发流程 一、[序言]二、[阅读群体] 三、[工具准备] 安装开发工具:Microsoft Visual Studio 2010 版本以上. 四、[开始开发支持通达信调用的DLL 文件] 1>解压红宝书“通达信DLL 函数编程规范.rar”并提取PluginTCalcFunc.h 头文件 启动MicrosoftVisual Studio 2010 并创建项目:TDXPlugin ,通过"MFC DLL 向导"选择DLL 类型 配置刚创建好的TDXPlugin项目属性(从菜单选择 "项目"->"TDXPlugin 属性"->"常规") 3.1 >输出目录: C:\zd_ghzq\T0002\dlls 3.2 >MFC的使用: 在静态库中使用MFC 在刚创建好的TDXPlugin项目中添加之前提取出来的PluginTCalcFunc.h 头文件. 五、[根据通达信的规范编写代码] 在TDXPlugin.cpp文件添加如下代码(注意: TDXPlugin.cpp 原有的代码不要删除): 在TXDPlugin.def文件设置函数RegisterTdxFunc 为导出函数. 开始编译,在C:\zd_ghzq\T0002\dlls的目录下生成TDXPlugin.dll 六、[通达信股票软件如何加载TDXPl ugi n.dl 并调用写好的TDXPlugi n1 函数呢?] 启动你的通达信股票软件,按CTRL+F 激活"公式管理器", 单击"DLL 函数" 在"绑定DLL函数"对话框中, 单击"打开绑定", 并选择之前生成好的TDXPlugin.dll 文件 成功绑定之后,你就可以在通达信股票软件自带的公式编辑器, 写代码 七、[详解TDXDLL1 与TDXPl ugi n1 函数的关系] 八、[自定义的DLL 函数返回数据并画图] 九、[总结] 和伞沟通记录 我操作的结果1:TDXpl ugi n.cpp 追加修改了 我操作的结果2:TDXpl ugi n.def 追加修改了 上述发给伞股票软件开发插件,让伞帮忙看编译(生成)出错原因。

股票软件开发插件_eclipse插件开发_eclipse插件开发 pdf

伞说:此外还要加导出声明 extern __declspec(dllexport)函数要加上这个声明才会被导出 不加的话只是普通函数 我问:加在哪里? 加在在代码里面(又回:我们都是这样导出的,最一般的导出声明 关于《开发流程》的问题: TDXPlugin1函数是你自己编写的函数, 是跟通信达股票软件交互的函数. 问:程序中那一部分范围是:上述TDXPlugin1 函数?TDXPlugin1 函数是跟通信达股票软件交互的函数? 通信达股票软件会调用你这个函数并传递你想要的股票数据给你.(备注:如何调用这个函数, 后面我会讲解) (备注:如何调用这个函数, 后面我会讲解)是不是指的是后文:“六、[通达信股票软件如何加载TDXPlugin.dll 并调用写好的TDXPlugin1 函数呢?]“这一节? 但是这一节里面有一个问题:题目是”加载TDXPlugin.dll 并调用写好的TDXPlugin1 函数“,但是本节就没有看见TDXPlugin1 函数嘛? 是不是自定义的”TDXPlugin1 函数“已经融入”五、[根据通达信的规范编写代码]“编写好的代码,并通过追加项目”TDXPlugin“的.cpp 和.def 文件并编译生成TDXPlugin.dll,实现了”自定义的”TDXPlugin1 函数“通过”编译生成TDXPlugin.dll“被通达信调用。

eclipse插件开发_股票软件开发插件_eclipse插件开发 pdf

是否可以总结如下:自编的TDXPlugin1 函数(解决了自己的问题)进入.cpp 和.def 文件并编译生成TDXPlugin.dllTDXPlugin.dll 绑定TDXDLL1(第1 号DLL)通达信调用TDXDLL1。 如上,则“TDXPlugin1 函数”成为关键股票软件开发插件,是吗?这等于是关键算法。 七、[详解TDXDLL1 与TDXPlugin1 函数的关系] 下面的参数解释是什么意思?要这干什么?这该不是TDXPlugin1函数吧? 八、[自定义的DLL 函数返回数据并画图] SAR(125,1,7);VAR2:=HHV(HIGH,70); VAR3:=HHV(HIGH,20); VAR3*0.91;真:C,COLORBROWN;

股票软件开发插件_eclipse插件开发_eclipse插件开发 pdf