Shopping Cart

購物車內沒有任何商品。

獨創萬用 API 下單

萬用 API 採用動態連結函式庫(Dynamic-link library,簡稱 DLL)實現軟體對傳技術,不用經過檔案系統,直接在記憶體中將訊號傳給下單大師下單,達到下單速度的極致。

下單機是如何運作的 ?

下單機是用來接收交易訊號,以進行自動下單的軟體。

首先要有一套計算交易策略的軟體,目前常用的有 TS、HTS、MultiCharts、奇狐、Excel、TradingView … 等軟體,在這些軟體上撰寫交易策略,計算交易訊號並回測歷史資料,覺得滿意之後,便可在程式碼中將交易訊號即時輸出成文字檔存放在電腦硬碟上。

接著下單機會不斷讀取硬碟上的文字檔訊號,最高每秒讀取一千次,直到發現訊號異動時,便呼叫券商期貨商提供的下單 API 元件進行下單。

萬用 API 發展沿革

大家一定會有個疑問,就是每秒讀取一千次,不是很傷硬碟嗎 ? 沒錯 !

在 2009 年創辦人開發第一代下單大師 v2.0 版時,市面上的下單機均以不斷讀取文字檔來偵測下單訊號,創辦人就思考如何解決不斷讀寫文字檔造成的硬碟傷害與效能優化 ?

於是想到了虛擬硬碟 (RAMDisk)技術,將記憶體模擬成硬碟,然後把文字檔改放在虛擬硬碟裡,將訊號輸出與讀取皆在記憶體上進行,最高每秒讀取一千次,速度快又不傷硬碟 !

解決了硬碟損傷的問題,那麼仍然要不斷讀取文字檔,一秒最多高達 1000 次的耗能問題要怎麼解決呢 ?

可不可以不要每秒讀取一千次,直接將交易訊號傳給下單機下單,這樣不是很有效率嗎 ? 是的 ! 這就是萬用 API 的功能,只要在策略程式碼中呼叫下單大師的萬用 API,就不再需要輸出和讀取文字檔,可以直接將交易訊號傳給下單大師下單。

2011 年創辦人發表下單大師 v2.5 版,獨創「萬用 API」-採用動態連結函式庫技術,將下單訊號直接對傳至下單大師下單,不再需要透過文字檔,也沒有需要不斷讀取文字檔的耗能問題,首次創下 0 秒下單的記錄,震撼業界 !

直到現在「萬用 API」已是下單大師的標準配備,自然也引起了業界的模仿與跟進。

以下是動態連結函式庫的介紹:(資料來源-維基百科)

動態連結函式庫(英語:Dynamic-link library,縮寫為DLL)是微軟公司在 Windows 系統中實現共享函數函式庫概念的一種實作方式。這些函式庫函數的副檔名是.DLL、.OCX(包含ActiveX控制的函式庫)或者.DRV(舊式的系統驅動程式)。

所謂動態連結,就是把一些經常會共享的程式碼(靜態連結的OBJ程式庫)製作成DLL檔,當執行檔呼叫到DLL檔內的函數時,Windows作業系統才會把DLL檔載入記憶體內,DLL檔本身的結構就是可執行檔,當程式有需求時函數才進行連結。透過動態連結方式,記憶體浪費的情形將可大幅降低。靜態連結函式庫則是直接連結到執行檔。

看不懂沒關係,簡單講就是我們會製作一個 DLL 檔,MultiCharts/Excel/Java/Python/C/C++/C#/VB … 等軟體或程式語言,皆可呼叫這個 DLL 檔,把下單訊號透過電腦的記憶體傳送給下單大師下單,因為支援跨各類軟體平台及各種不同的程式語言,故稱「萬用 API」。

32/64 位元

由於文字檔並沒有位元數的問題,可以使用 64 位元的 MultiCharts 輸出文字檔,再由 32 位元的下單大師讀取文字檔下單。

但是萬用 API 就不行,因為它本身就是一支 DLL 程式,而不是文字檔。所以使用 64 位元的 MultiCharts 必須呼叫 64 位元的萬用 API,把下單訊號傳送給 64 位元的下單大師下單。

如果券商的 API 不支援 64 位元,只能用 32 位元的下單大師下單的話,若要使用萬用 API 就必須改用 32 位元的 MultiCharts 呼叫 32 位元的萬用 API,才能把訊號傳給 32 位元的下單大師下單,這就是比較麻煩的地方。


為什麼新手不建議直接用「萬用 API」?

因為新手還不熟悉下單大師的運作,問題會比較多,除了上述 32/64 位元的問題,加上萬用 API 是在記憶體運作,一旦出問題死無對證,對新手來說要找出錯誤非常困難-文字檔出問題只要直接打開文字檔看裡面寫什麼就知道了。

所以建議新手先用文字檔,等運作一段時間都很穩定的下單了,代表對下單大師與文字檔的運作,基本上都了解了,也沒有什麼問題了,這時候再來轉換至萬用 API,就能專注只解決萬用 API 的問題,也比較知道問題會出在哪 ? 萬一怎麼樣也可以馬上退回文字檔下單。

文字檔好比是走路,萬用 API 好比是跑步,不會走路就硬要直接跑步的話,不但會跌跌撞撞,也會搞到大家都很累 ~

MultiCharts 64 位元版,可以用萬用 API 下單嗎 ?

可以的 ! 沒問題。

但 MultiCharts 64 位元版必須撘配 64 位元版的萬用 API 以及下單大師 64 位元版 + 64 位元版的券商 API。

同理,若是使用MultiCharts 32 位元版就必須撘配 32 位元版的萬用 API 以及下單大師 32 位元版 + 32 位元版的券商 API。