2017年4月11日 星期二

券商版MultiCharts也能調用外部DLL

一些 專業版-MultiCharts 能做,而券商版不能做的事情,除了圖表數量限制、投資組合回測外,最重要的就是在編輯程式碼之中,幾乎把要對外聯繫的關鍵字都給切斷了。這一篇就是教你,如何讓你的 券商版-MultiCharts 重新取回對外聯繫的能力。

當初獲知的知識來源:http://www.coco-in.net/thread-15559-1-1.html


這個範例是以呼叫 DLL 的方式來做文字檔的輸出,同理,只要你拿到或著自做讀取文字檔的 DLL,甚至連接自己的資料庫,只要透過 DLL,都可以照樣套用,讓你的 券商版-MultiCharts 能對外寫入、讀取檔案,光是對外部的文字檔做讀與寫,就能創造類似資料庫的效用了。

本範例使用了凌波微步大分享的 outputfile.dll,我放在 C:\AutoTrading\ 下供 MultiCharts 調用。

我建議,當你需要做這樣類似 "越獄" 的功能,都以「函數」優先,因為在任何指標、訊號、函數要呼叫其他函數的的程式碼編譯,券商版編輯器是不會往前追查去攔截關鍵字的。



大致的流程如下所述,操作過程請看影片。

動作 1:從券商版新增函數,打上所有你本來要寫的程式碼,除了 input 的部份外,全部都 remark 掉,編譯。會產生一個因為這函數編譯而成的 dll 檔(這個被產生的 dll 檔名,與我們的函數名稱幾乎一樣)。

動作 2:在專業版的編輯器,新增與 動作1 名稱完全一樣的函數,找到因這個編譯而產生的 dll 檔,複製起來。

動作 3:把 動作2 所得的 dll 檔,覆蓋掉 動作1 產生的 dll 檔。

動作 4:在券商版新增一個指標,去引用剛剛做出來的函數。匯出唯讀檔,分享。

教學影片連結:https://youtu.be/LcwNE_SvDmo



ps. 因為編譯而產生的 dll 檔案,券商版的存放位置(紅色字因券商別不同而有差異):
C:\ProgramData\TS Support\Capital MultiCharts64\StudyServer\Studies\Dlls
專業版產生的存放位置則在:
C:\ProgramData\TS Support\MultiCharts64\StudyServer\Studies\Dlls

注意:券商版與專業版的版本要相同,比如券商版是 8.5 x64,專業版的編輯器也需要是 8.5 x64。