通達(dá)信DLL插件編程示例(源碼).rar (829.39 KB)
通達(dá)信提供了DLL插件接口和DLL指標(biāo)接口標(biāo)準(zhǔn)(見“插件編程規(guī)范-通達(dá)信原版文件”),但說明晦澀,不容易理解。經(jīng)過測試,將原示例代碼做了注釋,并修正了原來代碼的一處錯誤(主要見MyPlugin.cpp)。 只要明白了道理,剩下的工作就看個人發(fā)揮了! 所附示例功能還非常簡單,只是為了說明編程方法,距實際應(yīng)用還有非常大的距離。如果據(jù)此投資,風(fēng)險自負(fù)。 本示例免費傳播,請保留完整信息。進(jìn)一步開發(fā)進(jìn)行中,將根據(jù)進(jìn)度在合適網(wǎng)絡(luò)公布。 本示例提供了小閃客自動公式交易軟件需要的txt文件自動生成,但并非為其做廣告,我本人也在用其試用版,只是為測試功能及其與通達(dá)信的匹配情況。 ========= MyPlugin.cpp內(nèi)代碼進(jìn)行了修改,并增加了大量注釋,部分注釋如下 ================ //將回調(diào)函數(shù)入口賦值給g_pFuncCallBack,自編程序中可以就可以使用g_pFuncCallBack函數(shù)調(diào)用通達(dá)信內(nèi)部數(shù)據(jù)(如開盤價、收盤價、最高價、最低價、成交金額、成交量等等(具體數(shù)據(jù)結(jié)構(gòu)參見OutStruct.h)。 PDATAIOFUNC g_pFuncCallBack; void RegisterDataInterface(PDATAIOFUNC pfn) { g_pFuncCallBack = pfn; } //注: 本文件以上部分需要完整保留,不要做任何修改(除非你知道自己在做什么) ///////////////////// 注冊插件信息 /////////////////////// //注冊插件信息:將公式名稱,公式描述,參數(shù)數(shù)量、參數(shù)名字、參數(shù)最大最小及默認(rèn)值等信息傳送給通達(dá)信,并將存儲區(qū)地址傳遞給LPPUGIN結(jié)構(gòu)的指針info(具體數(shù)據(jù)結(jié)構(gòu)將Plugin.h。本函數(shù)的具體參數(shù)賦值可以根據(jù)用戶需要修改。 void GetCopyRightInfo(LPPLUGIN info) { //填寫基本信息 strcpy(info->Name,"插件選股1"); //此信息會顯示在通達(dá)信插件選股對話框中“名稱”欄 strcpy(info->Dy,"上海"); strcpy(info->Author,"Julian Zhang"); //此信息會顯示在通達(dá)信插件選股對話框中“設(shè)計人”欄 strcpy(info->Period,"短線"); //還不清楚有什么用 strcpy(info->Descript,"MA上穿選股"); //此信息會顯示在通達(dá)信插件選股對話框中“選股對象”欄 strcpy(info->OtherInfo,"無其它信息描述"); //填寫參數(shù)信息 info->ParamNum = 2; //定義插件參數(shù)數(shù)量,必須是[0~4]之間整數(shù); strcpy(info->ParamInfo[0].acParaName,"MA短天數(shù)"); //第一個參數(shù)的名稱 info->ParamInfo[0].nMin=1; //這部分通達(dá)信官方模板錯誤寫成nMax,應(yīng)該為nMin,參數(shù)最小值; info->ParamInfo[0].nMax=1000; //定義參數(shù)最大值 info->ParamInfo[0].nDefault=10; //定義參數(shù)默認(rèn)值 strcpy(info->ParamInfo[1].acParaName,"MA長天數(shù)"); //第二個參數(shù)的名稱 info->ParamInfo[1].nMin=1; //用通達(dá)信本地保存的所有數(shù)據(jù)進(jìn)行選股,函數(shù)原型必須保持不變,系統(tǒng)會自動將需要的參數(shù)傳遞到本函數(shù)名字空間內(nèi) //Code:股票代碼;nSetCode:所屬市場(0為深市,1為滬市);Value存參數(shù)值(通達(dá)信插件選股時用戶設(shè)定值) //DataType:由通達(dá)信行情軟件傳遞過來的數(shù)據(jù),4為日線,5為周線,參見OutStruct.h中宏定義。默認(rèn)為日線數(shù)據(jù)。如申請行情數(shù)據(jù)則賦值為REPORT_DAT2,其他相關(guān)類型參見OutStruct.h //nDataNum為申請數(shù)據(jù)個數(shù),紅寶書上講,若為-1且pData為NULL則函數(shù)返回歷史數(shù)據(jù)個數(shù),然而取到的數(shù)據(jù)必須存儲到pData中,參數(shù)pData不允許為NULL //所以以上說法還需要繼續(xù)研究,本程序中取nDataNum=2000 //nTQ:復(fù)權(quán)模式,0:不復(fù)權(quán);1:前復(fù)權(quán) |
|
|