打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
通达信DLL函数插件编程教程(静态库)
​来源:理想论坛  工具软件:Visu Studio 2015.rar
参考文件:通达信DLL函数编程规范.rar
U6)66PMXV%)RQ_Q78U0PYUM.png (98.17 KB)
V%E5VMDF27TXKZ@B8$0F]PQ.png (53.51 KB)
FDH(S%E68IK5$O{QJBD_T0N.png (152.63 KB)
Z_6E~7}DZ8ISNRE}(YQ)1TA.png (25.01 KB)
0}_8KFWF5~[{QMG1)_{]03T.png (119.62 KB)
给项目一个名称:TDXPlugin
_}T){GT3$4_UJXG8]7PJCYD.png (65.69 KB)
U{C786H(ZF}S3@9HIOQ7%WG.png (26 KB)
9Q)G6T3E_6`CL`~ZA{GEU(U.png (24.23 KB)
`]O~5@))U7U{P5C`$3F%PTJ.png (76.26 KB)
图中标示的做完了点确定
 Y@%(L]ES[0}ZBMYVMW[K~2W.png (106.8 KB)
上图所标示的全部做完了,点确定
添加现有项,一步一步照着做
 E3N$X~905)@48UR@GLU3G)T.png (81.37 KB
USGG_(N3ZZ(285]V477~44L.png (67.87 KB)
JE`})4X__CJ(M87171G4YNV.png (52.02 KB)
EHK9U}}O)%0}6}60JDK4Q5I.png (84.4 KB)
把下面的内容复制到红框里:
为了防止网络错误造成源代码缺失,下面的内容也在副件里:
#ifndef __PLUGIN_TCALC_FUNC
#define __PLUGIN_TCALC_FUNC
#pragma pack(push,1)
//函数(数据个数,输出,输入a,输入b,输入c)
typedef void(*pPluginFUNC)(int,float*,float*,float*,float*);
typedef struct tagPluginTCalcFuncInfo
{
unsigned short                nFuncMark;//函数编号
pPluginFUNC                        pCallFunc;//函数地址
}PluginTCalcFuncInfo;
typedef BOOL(*pRegisterPluginFUNC)(PluginTCalcFuncInfo**);
//RegisterTdxFunc函数为注册函数,用户的函数全部都放入PluginTCalcFuncInfo结构的全局数组g_CalcFuncSets中。
typedef BOOL(*pRegisterPluginFUNC)(PluginTCalcFuncInfo**);
//=======================================
extern"C"
{
//__cplusplus
__declspec(dllexport)BOOL RegisterTdxFunc(PluginTCalcFuncInfo**pFun);
}
#pragma pack(pop)
#endif
 TDXPlugin.txt (730 Bytes) 预览附件
右键点标注的地方,点快速操作与重构,点跳出来的第一行的东东
 BQT}2T`E_@WA`83QI2@TU(5.png (102.32 KB)
MP(0GXECJUQE4Z(VJYKVX1Q.png (99.91 KB)
把下面的源代码复制到图中标示的红框里:
为了防止网络原因造成源代码缺失,尽量用附件里的源代码
//生成的dll及相关依赖dll请拷贝到通达信安装目录的T0002/dlls/下面,再在公式管理器进行绑定
//函数:EMA(X,N)
//说明:指数平滑移动平均卖一价求指数平滑移动平均。
//用法:EMA(X,N),求X的N日指数平滑移动平均。
//算法:若Y=EMA(X,N)则Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值。
//例如:EMA(CLOSE, 30)表示求30日指数平滑均价
//通达信中用的时候,第一个输入参数是收盘价,第2个输入参数是常量,第三个输入参数为空;
void EMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
float fTemp = 0.0;
int N = int(*pfINb);
pfOUT[0] = 0.0;
for (int i = 1;
i<DataLen; i++)
pfOUT = (2 * pfINa + (N - 1)*pfOUT[i - 1]) / (N + 1);
}
//----------------------------------------------函数MA(X,N)-----------------------------------
//别名:简单移动平均
//所属类别:引用函数参数数量:2
//求简单移动平均。
//用法:MA(X,N),求X的N日简单移动平均值。
//算法:(X1+X2+X3+...+Xn)/N
//例如:MA(CLOSE,20)表示求20日均价
//通达信中用的时候,第一个输入参数是收盘价,第2个输入参数是常量,第三个输入参数为空;
//A:=TDXDLL2(2,C,5,0);
//B:=TDXDLL2(2,C,10,0);
//A,COLORWHITE;
//B,COLORYELLOW;
void MA(int DataLen, float*pfOUT, float*pfINa, float*pfINb, float*pfINc)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
int N = int(*pfINb);
float sum;
for (int i = N - 1; i<DataLen; i++)
{
sum = 0.0;
for (int j = 0;
j<N; j++)
sum = sum + pfINa[i - j];
pfOUT = sum / N;
}
}
// g_CalcFuncSets全局结构, 存储你自己编写好的函数, 比如TDXPlugin1函数
PluginTCalcFuncInfo g_CalcFuncSets[] =
{
{ 1, (pPluginFUNC)&EMA},
{ 2, (pPluginFUNC)&MA},
{ 0, NULL },
};
// 该函数为导出函数,给通信达股票软件调用并初始化
BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if (*pFun == NULL)
{
(*pFun) = g_CalcFuncSets;
return TRUE;
}
return FALSE;
}
对照着图排版,从最下层的最后一行开始排,可以按删除键,当删到上一行的末尾的时候点确认键
让软件黑认排好位置,就不会出错了
这是上半部份
对照着图排版,从最下层的最后一行开始排,可以按删除键,当删到上一行的末尾的时候点确认键
让软件黑认排好位置,就不会出错了
这是下半部份
K]P`PCM}TW)SLWUL1H[9DBK.png (110.77 KB)
把这个复制到图中的位置:
RegisterTdxFunc @1
 X5SL~_)2VI3GVJ0]@DG[4E8.png (88.62 KB)
点生成解决方案
提示错误,删掉红框里的
 80)B9QW@DL561IMX%A`N$`L.png (123.62 KB)
A1G]K03[AZDBPGKBU28I})X.png (112.06 KB)
好吧,把这个教程完成吧,上面所有的步骤我也重新一步不差的走到这里的
按照图中的提示做,或者您直接打开在第八楼在图中要您设置的目录也是可以的
 W[ID0TH9}VR6Q088X)}R2O5.png (78.39 KB)
打开我们所熟悉的通达信文件夹
打开T0002文件夹
 2345_image_file_copy_2.jpg (88.95 KB)
把刚才一再强调要复制的那个文件复制进dlls文件夹
2345_image_file_copy_4.jpg (108.75 KB)
点功能--公式系统--公式管理器
点DLL函数
A:=TDXDLL2(2,C,5,0);
B:=TDXDLL2(2,C,10,0);
CC:=TDXDLL2(1,C,10,0);
A,COLORWHITE;
B,COLORYELLOW;
CC,COLORGREEN;
好了,成功了,请关注新帖,开始实战:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
通达信DLL插件开发
最标准最简洁的通达信DLL股票插件开发流程
通达信DLL未补上涨缺口的写法
通达信DLL插件实战篇,怎样制作我们想要的函数
通达信DLL函数编程规范(图文版)
不带参数的函数,太实用了!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服