微智科技网
您的当前位置:首页【图】通达信插件(dll)编程源码及讲解

【图】通达信插件(dll)编程源码及讲解

来源:微智科技网
【图】通达信插件(dll)编程源码及讲解

通达信提供了DLL插件接口和DLL指标接口标准(见“插件编程规范-通达信原版文件”),但说明晦涩,不容易理解。

经过测试,将原示例代码做了注释,并修正了原来代码的一处错误(主要见MyPlugin.cpp)。

只要明白了道理,剩下的工作就看个人发挥了!

所附示例功能还非常简单,只是为了说明编程方法,距实际应用还有非常大的距离。如果据此投资,风险自负。

本示例免费传播,请保留完整信息。进一步开发进行中,将根据进度在合适网络公布。

本示例提供了小闪客自动公式交易软件需要的txt文件自动生成,但并非为其做广告,我本人也在用其试用版,只是为测试功能及其与通达信的匹配情况。

========= MyPlugin.cpp内代码进行了修改,并增加了大量注释,部分注释如下 ================

//将回调函数入口赋值给g_pFuncCallBack,自编程序中可以就可以使用g_pFuncCallBack函数调用通达信内部数据(如开盘价、收盘价、最高价、最低价、成交金额、成交量等等(具体数据结构参见OutStruct.h)。

PDATAIOFUNC g_pFuncCallBack;

void RegisterDataInterface(PDATAIOFUNC pfn) {

g_pFuncCallBack = pfn;

}

//注: 本文件以上部分需要完整保留,不要做任何修改(除非你知道自己在做什么)

///////////////////// 注册插件信息 /////////////////////// //注册插件信息:将公式名称,公式描述,参数数量、参数名字、参数最大最小及默认值等信息传送给通达信,并将存储区地址传递给LPPUGIN结构的指针info(具体数据结构将Plugin.h。本函数的具体参数赋值可以根据用户需要修改。

void GetCopyRightInfo(LPPLUGIN info) {

//填写基本信息

strcpy(info->Name,\"插件选股1\"); //此信息会显示在通达信插件选股对话框中“名称”栏

strcpy(info->Dy,\"上海\");

strcpy(info->Author,\"Julian Zhang\"); //此信息会显示在通达信插件选股对话框中“设计人”栏

strcpy(info->Period,\"短线\"); //还不清楚有什么用 strcpy(info->Descript,\"MA上穿选股\"); //此信息会显示在通达信插件选股对话框中“选股对象”栏

strcpy(info->OtherInfo,\"无其它信息描述\"); //填写参数信息

info->ParamNum = 2; //定义插件参数数量,必须是[0~4]之间整数;

strcpy(info->ParamInfo[0].acParaName,\"MA短天数\"); //第一个参数的名称

info->ParamInfo[0].nMin=1; //这部分通达信官方模板错误

写成nMax,应该为nMin,参数最小值;

info->ParamInfo[0].nMax=1000; //定义参数最大值 info->ParamInfo[0].nDefault=10; //定义参数默认值

strcpy(info->ParamInfo[1].acParaName,\"MA长天数\"); //第二个参数的名称

info->ParamInfo[1].nMin=1;

//用通达信本地保存的所有数据进行选股,函数原型必须保持不变,系统会自动将需要的参数传递到本函数名字空间内

//Code:股票代码;nSetCode:所属市场(0为深市,1为沪市);Value存参数值(通达信插件选股时用户设定值)

//DataType:由通达信行情软件传递过来的数据,4为日线,5为周线,参见OutStruct.h中宏定义。默认为日线数据。如申请行情数据则赋值为REPORT_DAT2,其他相关类型参见OutStruct.h

//nDataNum为申请数据个数,红宝书上讲,若为-1且pData为NULL则函数返回历史数据个数,然而取到的数据必须存储到pData中,参数pData不允许为NULL

//所以以上说法还需要继续研究,本程序中取nDataNum=2000 //nTQ:复权模式,0:不复权;1:前复权

因篇幅问题不能全部显示,请点此查看更多更全内容