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

    通达信提供了DLL插件接口和DLL指标接口标准,但说明晦涩,不容易理解。

本示例提供了则是教大家在通达信提供的DLL接口上开发自己想要的插件的方法的。

    首先,对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:前复权

 

the end

评论(0)