【图】通达信插件(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:前复权

(0)

相关推荐