首页 涨停板 正文

通达信官网(手机通达信金融终端版)

wx头像 wx 2021-12-07 00:37:01 6
...

前一篇介绍DLL文件绑定,本篇扼要说说DLL文件怎么编写。DLL程序编写要求稍稍要高一些,需求懂一些编程言语,本篇以MFC为例需求有点C言语根底,本例比较简略。

中山股票配资,中山股票配资

通达信DLL链接库编写,首先是要搭结构,便是与通达信软件的接口处理;在通达信官网协助页面能够下载《通达信DLL函数编程标准》,里边有一个WORD扼要阐明,与一个较老的实例。按阐明与实例资料,搭好结构;编写代码就只需在结构内按要求增加功用性代码即可。

002155?002155

下面以编程环境用Visual Studio2017 MFC为例,写个简略的DLL实例。VS2017能够网络查找下载破解版,此软件比较大需求10G+空间,实践以装置内容巨细有不同,有必要装置MFC组件。此处就不介绍软件装置,以装置好为例。

贱价蓝筹股,贱价蓝筹股

翻开VS2017,文件——新建——项目,弹出如下图窗口,按图填写,项目称号可自定义,确认后弹出窗口再确认;新建项目完结。

新建项目

新建项目(MFC DLL)

完结项目新建

在新项目中恣意翻开一个文件,此处翻开Dll_Demo.cpp,然后按下图,翻开项目根目录。

翻开文件所在方位

把《通达信DLL函数编程标准》内的PluginTCalcFunc.h头文件,仿制张贴到项目根目录。

编程标准头文件

张贴头文件

在项目中增加PluginTCalcFunc.h头文件。下图中第③步点击现有项后,在弹出的窗口挑选PluginTCalcFunc.h头文件,并确认增加。

增加资源

增加头文件

用记事本翻开DLL编程标准里的TCalcFuncSets.h头文件,仿制以下代码到PluginTCalcFunc.h头文件图示方位。

#ifdef __cplusplus

extern "C"

{

#endif //__cplusplus

__declspec(dllexport) BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun);

#ifdef __cplusplus

}

#endif //__cplusplus

头文件张贴代码

如上图2提示,鼠标移到第20行赤色波涛线处右键弹出窗口,挑选榜首行快速操作与重构,再点击榜首行创立CPP文件,如下图:

创立CPP文件

cpp文件

翻开《通达信DLL函数编程标准》内的TCalcFuncSets.cpp文件,仿制如以下到代码到刚新建的cpp文件,留意句子对齐:

//生成的dll及相关依靠dll请拷贝到通达信装置目录的T0002/dlls/下面,再在公式管理器进行绑定

void TestPlugin1(int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)

{

for(int i=0;i<DataLen;i++)

pfOUT[i]=i;

}

void TestPlugin2(int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)

{

for(int i=0;i<DataLen;i++)

{

pfOUT[i]=pfINa[i]+pfINb[i]+pfINc[i];

pfOUT[i]=pfOUT[i]/3;

}

}

//加载的函数

PluginTCalcFuncInfo g_CalcFuncSets[] =

{

{1,(pPluginFUNC)&TestPlugin1},

{2,(pPluginFUNC)&TestPlugin2},

{0,NULL},

};

//导出给TCalc的注册函数

BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun)

{

if(*pFun==NULL)

{

(*pFun)=g_CalcFuncSets;

return TRUE;

}

return FALSE;

}

如下图点击生成菜单,生成解决方案,编译经过且生成咱们所需的DLL文件。至此结构搭完。此官方实例两个功用函数,一个是输出通达信每次读取多少根K线数据(此数据用户在通达信体系设置里可自定义,K线图缩到最少,输出的数据为一共K线根数);另一个函数输出为传入三个参数的均值。

搭结构完结

设置项目特点,然后从头编译生成Release版dll。

项目特点

生成Release版别

结构完结后,今后要修正新的功用,只需求在PluginTCalcFunc.cpp中增加新的功用函数代码,并加入到g_CalcFuncSets[]数组,下面举例,把榜首个函数更改为求取平均值,等下在通达信画平均线。

把榜首个函数悉数删去或修正为如下代码,一起修正加载函数那里榜首个的称号,改为MA(如下图):

void MA(int DataLen, float* pfOUT, float* pfINa, float* pfINb, float* pfINc)

{//参数1传入收盘价;参数2传入均线周期

int N = int(*pfINb);

float sum;

for (int i = N - 1; i < DataLen; i++)

{

sum = 0;

for (int j = 0; j < N; j++)

sum = sum + pfINa[i - j];

pfOUT[i] = sum / N;

}

}

MA函数

编译经过,若有问题请查看是否按进程没有讹夺,如下图,在提示的途径文件夹中找到Dll_Demo.dll文件,仿制到通达信装置途径下的\T0002\dlls,然后按上一篇文章绑定该DLL到榜首号DLL。

绑定DLL

在通达信公式管理器中,新建如下图目标,便是调用dll画均线,同一个函数给不同均线周期即可画出不同的均线。

通达信tn6目标公式

测验公式经往后,主图调用该目标,成功画出三条均线

DLL画均线

这个进程说起来很杂乱,理解了就很简略,今后要做的便是在结构内修正不同的函数代码,依据个人C言语水平,修正不同功用的股票函数。

进程中如有遗失,可留言评论,有其他更好的办法也请纠正。

本文地址:https://www.changhecl.com/23232.html

退出请按Esc键