|
官方dll應(yīng)用 官方Dll下載https://help./book.html 通達(dá)信DLL函數(shù)編程規(guī)范.rar-------2024/7/15 (64位) 通達(dá)信插件選股編程規(guī)范.rar-------2015/12/2 (32位) VS編譯得到dll文件1、TestPluginTCale.dll放到T0002下的dlls文件夾下
2、ctrl+F打開公式管理器點擊“dll函數(shù)”綁定dll。
點擊“打開綁定”后,選擇剛才放到T0002\dlls下的“TestPluginTCale.dll”。 3、第1號dll綁定成功,對應(yīng)使用TDXDLL1函數(shù)。
應(yīng)用官方dll編公式 1、查看官方TestPluginTCale工程TcalcFuncSets.Cpp文件主要內(nèi)容,主要包含一號函數(shù)、二號函數(shù),分別求K線數(shù)目和三個序列數(shù)據(jù)的均值。
2、指標(biāo)公式編寫 Ctrl+F公式管理器綁定的是1號dll,所以函數(shù)用TDXDLL1。
源碼 TDXDLL1(1,C,O,H);{K線數(shù)目} TDXDLL1(1,1,1,1);{K線數(shù)據(jù)驗證參數(shù)必須填,沒用的參數(shù)隨便填不能空著} BARSCOUNT(C);{第一個個函數(shù)TESTPLUGIN1相當(dāng)于系統(tǒng)函數(shù)BARSCOUNT} TDXDLL1(2,C,O,H);{第二個個函數(shù)TESTPLUGIN2,求后面三個序列值參數(shù)的平均值} (C+O+H)/3;{TESTPLUGIN2等價實現(xiàn)代碼}; k線界面查看驗證輸出
前三個輸出對應(yīng)dll中函數(shù)TESTPLUGIN1結(jié)果輸出值,后兩個對一個dll函數(shù)TESTPLUGIN2結(jié)果輸出值。 自編實現(xiàn)重要說明 PluginTCalcFunc.h頭文件中 PluginTCalcFuncInfo結(jié)構(gòu)用來存放用戶自己的函數(shù)地址pCallFunc和函數(shù)唯一標(biāo)記(函數(shù)編號)nFuncMark; pCallFunc是typedef void(*pPluginFUNC)( int DataLen,float* pfOUT,float* pfINa,float* pfINb,float* pfINc)類型指針; 函數(shù)參數(shù)分別是(數(shù)據(jù)個數(shù),輸出,輸入a,輸入b,輸入c),參數(shù)的計算是基于長度為DataLen的float類型數(shù)組。 TCalcFuncSets.h頭文件中 RegisterTdxFunc函數(shù)為注冊函數(shù),用戶的函數(shù)全部都放入PluginTCalcFuncInfo結(jié)構(gòu)的全局?jǐn)?shù)組g_CalcFuncSets中。 1、在官方dll里自編一個USERFUNC4函數(shù) USERFUNC0--USERFUNC4函數(shù) 調(diào)用DLL中的函數(shù),DLL中內(nèi)部對應(yīng)定義。 USERFUNC0不帶參的函數(shù) USERFUNC1(param1)帶一個參的函數(shù) USERFUNC2(param1,param2)帶兩個參的函數(shù) USERFUNC3(param1,param2,param3)帶三個參的函數(shù) USERFUNC4(param1,param2,param3,param4) 帶是個參的函數(shù)
在TCalcFuncSets.cpp中增加函數(shù)USERFUNC4,框出來的部分為增加此函數(shù)而新增的全部代碼。 2、驗證輸出。 (同樣兒要先編譯dll把這個新dll取名為TestPluginTCalemax.dll,放到T0002\dlls目錄,用公式管理器把此dll綁定到2號dll函數(shù),用TDXDLL2) MAXSC1:USERFUNC4(3,C,O,H);{新增的3號 USERFUNC4函數(shù),求3數(shù)據(jù)的最大值} MAXDSC2:TDXDLL2(3,C,O,H);{新增的3號函數(shù),求3數(shù)據(jù)的最大值} KNUMSC1:TDXDLL1(1,C,O,H);{K線數(shù)目} KNUMSC2:TDXDLL1(1,1,1,1);{K線數(shù)據(jù)驗證參數(shù)必須填,沒用的參數(shù)隨便填不能空著} KNUMSC3:BARSCOUNT(C);{第一個個函數(shù)TESTPLUGIN1相當(dāng)于系統(tǒng)函數(shù)BARSCOUNT} MA3DATASC1:TDXDLL1(2,C,O,H);{第二個個函數(shù)TESTPLUGIN2,求后面三個序列值參數(shù)的平均值} MA3DATASC2:(C+O+H)/3;{TESTPLUGIN2等價實現(xiàn)代碼}; K線中數(shù)據(jù)查看:后面5個前面已經(jīng)驗證,MAXDSC2是TDXDLL2的3號函數(shù)(新增的max函數(shù))的輸出正確,USERFUNC4輸出為空--,此函數(shù)暫不支持。 需要dll編程的請使用TDXDLL系列函數(shù)。
3、其他聲明 3.1、綁定dll時,dll文件必須放在通達(dá)信安裝目錄的T0002\dlls下。 3.2、Dll綁定問題,如果官方dll無法綁定,請聯(lián)系通達(dá)信驗證并修正后支持;后期如因公司戰(zhàn)略計劃調(diào)整或其他需要不再對外提供基本數(shù)據(jù)獲取,隨時可能取消dll編程的支持。 3.3、如果是從其他第三方購買的dll,突然無法綁定無法使用,請聯(lián)系dll編寫售賣方。 3.4、接口是免費開放,數(shù)據(jù)是否支持,支持哪些基本數(shù)據(jù),以輸出查看到的結(jié)果為準(zhǔn)。 3.5、Dll編程請自行擴(kuò)展編寫、自行調(diào)試,通達(dá)信不提供dll編程或dll編程答疑服務(wù)。 |
|
|