用C++開(kāi)發(fā)通達(dá)信DLL比較麻煩,每次dll編譯完成以后放到通達(dá)信DLL目錄,都必須重新開(kāi)啟通達(dá)信,否則直接拷貝就會(huì)報(bào)錯(cuò):

顯然該dll被占用,無(wú)法熱更新,需要首先解綁,然后完成dll拷貝之后,重新綁定。
此外,即使你隨便修改一丁點(diǎn)內(nèi)容,dll也需要重新編譯,但是由于缺乏必要的調(diào)試工具,有什么錯(cuò)誤你也看不到,實(shí)在是太麻煩了!
如果你是用腳本語(yǔ)言來(lái)編寫(xiě)通達(dá)信的公式,采用熱更新的方式呢?那開(kāi)發(fā)起來(lái)就是開(kāi)了掛般的飛起來(lái),效率簡(jiǎn)直是絲般順滑。
之前用Lua和JavaScript開(kāi)發(fā)了通達(dá)信公式計(jì)算的DLL。這兩個(gè)語(yǔ)言性能極好,也能夠支持熱更新。
而Python和Matlab按照同樣的原理就不行了,這兩貨引擎極慢。這么搞通達(dá)信就死機(jī)了。當(dāng)然基于一些方法,Python也支持熱更新開(kāi)發(fā)通達(dá)信dll了。
既然腳本界扛把子Python能搞定,那Matlab基于同樣思路,一樣能搞定了。
Matlab在Python打火之前早就是金融分析界的扛把子了。至今它的金融工具箱,GARCH工具箱等幾乎都是領(lǐng)先的,而且Matlab的文檔質(zhì)量極高,完全可以當(dāng)做股票分析的范文。
不吹了。咱們還是看Matlab的通達(dá)信DLL制作吧。效果如下:
這里我首先綁定Python的dll,我選擇綁定了9號(hào)dll:

然后編輯如下公式,選擇TDXDLL9,公式如下。
FLine1是我的Python的一號(hào)公式;FLine2是我的Python的二號(hào)公式。

以上我分別輸入了2天、20天和60天的EXPMA均線,然后Matlab獲取了這些數(shù)據(jù)。在TestPlugin1.m和TestPlugin2.m文件(分別對(duì)應(yīng)以上的FLINE1和FLINE2)中輸入如下計(jì)算公式:

兩個(gè)文件:TestPlugin1和TestPlugin2,對(duì)應(yīng)FLine1和FLine2調(diào)用的公式。
當(dāng)然以上Matlab文件你可以任意修改,完全無(wú)需重新編譯dll。
剩下的就是通常的dll公式或者普通公式操作步驟了。
在通達(dá)信中可以看到效果,見(jiàn)附圖:

以上就是用Matlab開(kāi)發(fā)通達(dá)信dll的全過(guò)程。
Matlab語(yǔ)法簡(jiǎn)潔,還有強(qiáng)大的金融工具箱,功能強(qiáng)大,且支持熱更新。發(fā)揮你的想象力吧!
以上就是利用Matlab開(kāi)發(fā)通達(dá)信DLL公式的過(guò)程和效果??梢灾赋龅氖?,本人的測(cè)試中,Matlab的開(kāi)發(fā)效果要優(yōu)于Python,Python實(shí)在是太慢了,不穩(wěn)定,在極個(gè)別時(shí)候會(huì)造成通達(dá)信死機(jī)。而Matlab、JS和Lua就沒(méi)這些問(wèn)題。
用Matlab語(yǔ)言來(lái)寫(xiě)公式,開(kāi)發(fā)起來(lái)絲般順滑,相比C++開(kāi)發(fā),免去了編譯、綁定的麻煩,語(yǔ)法也非常簡(jiǎn)單,避免了C、C++的開(kāi)發(fā)大坑,可以讓大家愉快的踏入股票公式開(kāi)發(fā)的大門(mén)。
有興趣的歡迎私信或者加Q:2795035196。