最新消息

[公告2014/05/30] 如有需要將部落格中,任何一篇文章的程式碼使用在商業用途,請與我聯繫。

[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。

[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲

[公告2019/01/08] 請注意:我再次重申,部落格文章的程式碼,是要提供各位參考與學習,一旦網頁改版請自行修改,別要求東要求西要我主動修改,你們用我寫東西賺錢了、交差了,請問有分我一杯羹嗎?既然賺錢沒分我,請問有什麼理由要求我修改,如果沒能力改,就花錢來找我上課。

[公告2019/12/01] 若各位有 Excel VBA 案子開發需求,歡迎與我聯繫,可接案處理。

[公告2020/05/22] 頁面載入速度慢,起因為部分JS來源(alexgorbatchev.com)失效導致頁面載入變慢,目前已做調整,請多見諒。

2016年6月25日 星期六

MultiCharts ADE 資料傳送與接收(1)

今天看來介紹如何使用ADE來傳送與接收資料,ADE全名All Data Everywhere,它可以作為在2張圖表視窗之間傳送資料的橋梁,至於該怎麼做呢?請看以下的介紹。
ADE可以用在 不同圖表視窗或工作底稿之間的訊號或指標傳遞,以下在同一份工作底稿中,不同圖表視窗,一個用訊號將資料丟出來,一個用指標去接收畫圖。
首先我們先安裝ADE元件,請注意ADE的元件有分x86、x64,請依照自己所使用的專業版MultiCharts版本來選得對應的ADE元件安裝。

請先至連結下載ADE元件:ADEx86ADEx64 (x64僅需換ELCollections.dll 64位元的版本即可)
Step 1. 將 ELCollections.rar 資料夾的 ELCollections.dll 放到 MC 的安裝資料夾內,如下路徑:
Windows x86 + MC x86
C:\Program Files\TS Support\MultiCharts

Windows x64 + MC x86
C:\Program Files (x86)\TS Support\MultiCharts

Windows x64 + MC x64
C:\Program Files\TS Support\MultiCharts64

PS:如有變更安裝路徑為C:\MC的朋友,請ELCollections.dll放置C:\MC。

Step 2. 打開 PowerLanguage 並匯入 ELCollections.ELD 函數,記得匯入時重新編譯。

Step 3. 在 C:\ 下建立 ADE資料夾  與 Data 和 Classes 和 Code 四個資料夾 。
C:\ADE\Data
C:\ADE\Classes
C:\ADE\Code

Step 4. 將 ADE.rar 解壓縮出來的檔案放到 C:\ADE 資料夾。

Step 5. 把 C:\ADE 資料夾內的 OHLCV.txt 檔案移到 C:\ADE\Classes 資料夾。

Step 6. 打開 PowerLanguage 並匯入 AllDataEverywhere.ELD函數,記得匯入時重新編譯。

至此安裝ADE的過程就完成了。

使用以下的程式來做說明
資料發送端:可寫在訊號或指標裡。
Vars: Class("Amin"), InfoMap(MapSN.New);

Value1 = MapSN.Put(InfoMap, "ADX", ADX(14));

Value1 = ADE.PutBarInfo(Class, GetSymbolName, ADE.BarInterval, ADE.BarID, InfoMap);
程式碼說明:
第3行:Put是ADE將資料放進容器的函數。
第5行:PutBarInfo是ADE容器傳送出去的函數。

資料接收端:可寫在訊號或指標裡。
Vars: Class("Amin"), InfoMap(MapSN.New), AminADX(0);

Value1 = ADE.GetBarInfo(Class, GetSymbolName, 1, ADE.BarID, InfoMap);

AminADX = MapSN.Get(InfoMap, "ADX");

plot1(AminADX , "ADX", green);
程式碼說明:
第3行:GetBarInfo是ADE接收容器進來的函數。
PS:第3個參數帶的值要與實際圖表視窗所用的週期要相同,不然會發生無法抓到資料問題,如週期為1分鐘就要帶1,5分鐘就要帶5。
第5行:Get是ADE從容器取出資料的函數。

Put與Get傳送架構圖。


開啟新工作底稿,並開啟兩張圖表視窗,第一張圖表視窗當作資料發送端,第二張圖表視窗當作資料接收端。


 PS:請記住圖表視窗要先開啟第一張後,在開啟第二張,這樣的順序不能變,錯了ADE就無法正常執行,不然會出現以下錯誤訊息。

最後感謝陳立偉老師,以及阿政指點。

參考資料: