通达信插件(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:前复权
- 已赞