ADE可以用在 不同圖表視窗或工作底稿之間的訊號或指標傳遞,以下在同一份工作底稿中,不同圖表視窗,一個用訊號將資料丟出來,一個用指標去接收畫圖。
首先我們先安裝ADE元件,請注意ADE的元件有分x86、x64,請依照自己所使用的專業版MultiCharts版本來選得對應的ADE元件安裝。
請先至連結下載ADE元件:ADEx86、ADEx64 (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就無法正常執行,不然會出現以下錯誤訊息。
最後感謝陳立偉老師,以及阿政指點。
參考資料:
- ADE - All Data Everywhere for TradeStation 8 and Multicharts
- Multicharts ADE應用:連賠N次後才實際進場
- ADE( AllDataEverywhere)