程式交易分析階段包括交易策略設(shè)計(jì)、策略績(jī)效測(cè)試、策略最佳調(diào)整、策略實(shí)測(cè)模擬等不同階段;
至于程式交易執(zhí)行階段,除了使用券商提供的下單機(jī)執(zhí)行交易外,亦可客製下單環(huán)境(此即所謂下單機(jī))。
?
透過(guò)券商或期貨商的看盤軟體,取得報(bào)價(jià)、人工判斷策略觸發(fā),手動(dòng)下單,取得委託回報(bào)、成交回報(bào)的每一階段的耗時(shí)大約都是以秒計(jì),因此完成整個(gè)成交週期再快也要幾秒鐘的時(shí)間。但若藉由客製下單系統(tǒng)(俗稱下單機(jī))來(lái)執(zhí)行交易流程,可以把交易時(shí)間大幅降低,甚至降到毫秒(0.001秒)的數(shù)量級(jí)。客製下單系統(tǒng)依據(jù)執(zhí)行效率與技術(shù)應(yīng)用層次,可以分為兩種,以下分別介紹并比較之--
?
1. 文字檔下單機(jī)(可讀取文字檔的交易系統(tǒng))--
最早期的下單機(jī)稱為「文字檔下單機(jī)」,其作法為藉由如TradeStation(或HTS, Home Trade System)
的軟體,讀入市場(chǎng)即時(shí)資料,測(cè)試交易策略是否觸發(fā)買賣行動(dòng);若是,則將買賣行動(dòng)的交易訊息,
包括商品類別、下單方式(市價(jià)或限價(jià)交易)、價(jià)格(如果是限價(jià)交易)、買買單位數(shù)等訊息,寫出到外部文字檔中(使用文字檔作為訊息傳遞媒介,係因?yàn)槿魏螒?yīng)用程式都可方便讀寫文字檔),再由下單程式定頻讀取文字檔中的交易訊息,解析后,送入文字檔交易系統(tǒng)內(nèi)含的下單元件(可能為應(yīng)用程式介面(API)或軟體元(如OCX)的函數(shù)呼叫)執(zhí)行交易,藉此達(dá)成「讀取即時(shí)訊息、觸發(fā)策略、立即下單」的即時(shí)交易功能。有些下單元件可以回傳委託回報(bào)與成交回報(bào),有些不可,但下單功能是一定需要的。(在目前法規(guī)限制下,不能直接丟單,因此在讀取到文字訊息后,合法的作法為Pop出建議下單訊息再由投資人驅(qū)動(dòng)下單)。文字檔下單機(jī)可能的限制包括:( 來(lái)源:www.tumamayizhan.com )
?
(1)利用TS或HTS驅(qū)動(dòng)策略在讀取訊號(hào)時(shí)可能造成延遲,以TS為例必須透過(guò)MetaServer讀取券商提供的DDE資料,但券商的DDE資料本身的報(bào)價(jià)品質(zhì)就不夠好;
?
(2)由于TS系統(tǒng)本身佔(zhàn)用系統(tǒng)資源大,以之驅(qū)動(dòng)策略可能會(huì)造成時(shí)間延遲;
?
(3)由于TS系統(tǒng)係以K線驅(qū)動(dòng)(而非逐筆交易資料)驅(qū)動(dòng)交易策略,必須在該K線(不管是5分或1分線)結(jié)束后,才能驅(qū)動(dòng)策略,因此造成延遲,此缺點(diǎn),可透過(guò)讀取TS系統(tǒng)中內(nèi)部資料庫(kù)的方式稍微舒緩,但技術(shù)要求較高,由于接下來(lái)我們會(huì)提及另外的兩全其美的解決方式,因此就不介紹解法,有興趣的讀者可以參考程式交易論壇上的文章;{ www.tumamayizhan.com }
?
(4)在策略觸發(fā)后再透過(guò)TS寫出文字檔也會(huì)延遲;
?
(5)最后,下單系統(tǒng)讀取文字檔,不管在取樣時(shí)間或讀檔時(shí)間上也會(huì)造成延遲。
?
綜合以上所論,文字檔下單機(jī)雖然是一
種方便的解法,但并非是有效率的解法,若投資人可以忍受上述延遲,那麼使用在Excel導(dǎo)入券商DDE資料進(jìn)行交易的作法,甚至更直接、延遲更低。基于文字檔下單機(jī)的以上限制,有資訊廠商提出改進(jìn)解法并提供下單機(jī)產(chǎn)品,其作法雖然仍然使用TS作為交易策略的觸發(fā)平臺(tái),但改進(jìn)了報(bào)價(jià)頻率(使用真正的Tick報(bào)價(jià)工具連接到TS中),而由TS驅(qū)動(dòng)交易行動(dòng)后,直接把交易訊號(hào)送到下單機(jī)中的券商下單元件下單,換言之,不再丟出文字檔,也不需再由下單機(jī)撈取下單資訊。此作法,解決了以上傳統(tǒng)文字檔下單機(jī)第(1)、(4)、(5)的限制,但仍未解決(2)、(3)的限制,且此作法繞過(guò)文字檔的媒介在適法性上也有疑慮。
?
2. 整合式下單系統(tǒng)--
以上文字檔下單機(jī)的缺點(diǎn),可以藉由整合式下單機(jī)來(lái)解決。整合式下單機(jī)的作法希望把讀取即時(shí)報(bào)價(jià)資訊、交易策略觸發(fā)、交易行動(dòng)執(zhí)行,甚至于委託回報(bào)取得、成交回報(bào)取得等全部一氣呵成的在系統(tǒng)中完成,因此可以把延遲降至最低。系統(tǒng)開(kāi)發(fā)者可以選取任何一般性程式環(huán)境開(kāi)發(fā)完成,例如Excel上的VBA(Visual BASIC for Application)、Visual BASIC 6.0、Visual Studio中的Visual BASIC、Visual C++、Visual C#等。選取一般式程式語(yǔ)言開(kāi)發(fā)的目的是可以不需忍受TradeStation或HTS的限制,也可以把系統(tǒng)規(guī)模控制到最適中,當(dāng)然也因此必須學(xué)會(huì)另一種語(yǔ)言的編碼。在即時(shí)訊息輸入時(shí),整合式下單機(jī)可以讀取免費(fèi)的DDE即時(shí)資料(但必須忍受大約1秒的延遲,對(duì)于非Tick交易的交易者而言,或許已經(jīng)足夠),或者購(gòu)買能讀取逐筆交易資料的軟體元件,至于下單、委託回報(bào)與成交回報(bào)等與逐筆交易資料源的軟體元件同樣都是使用直接嵌入(Embedded)在整合式下單機(jī)中的元件,如此一來(lái),交易者可以追求毫秒等級(jí)速度的交易快感,此整合式下單系統(tǒng)對(duì)于進(jìn)行價(jià)差、套利與逐筆交易的交易者而言是必要的配備;此作法最大的好處是,交易者可以在程式碼間自訂交易策略。甚至個(gè)人認(rèn)為,與其要學(xué)習(xí)諸如TradeStation中的EasyLanguage語(yǔ)言,還不如把精力放在無(wú)所不能的一般程式語(yǔ)言的學(xué)習(xí),如果不想要學(xué)太難的C語(yǔ)言,那麼VB家族語(yǔ)言的簡(jiǎn)易性可以考慮,假若不想另外花錢購(gòu)買VB語(yǔ)言的開(kāi)發(fā)環(huán)境,那麼內(nèi)附在Office Excel中的VBA語(yǔ)言是一種簡(jiǎn)單又廉價(jià)的選擇。( 來(lái)源:www.tumamayizhan.com )