[備註] Visual Studio 2017 跑 x64 單元測試的設定

最近申請到「群益報價/下單 API」,也下載了 C#.NET 的範本,但卻是用 Visual Studio 2010 編譯的專案,花了一個多小時手動編輯 .csproj,總算可以在 Visual Studio 2017 開啟執行

不過範本寫得非常之亂,典型的全把所有邏輯寫在 Windows Form 類別。實在看不下去,準備把一些主要呼叫的 API (Login,下單,報價) 重整下,從 Windows Form 全抽離出來,並撰寫單元測試 (unit test) 方便測試。

群益API 是採以 COM 相對底層機制所撰寫的,使用前要先註冊該元件 (SKCOMLib)。我直接採用 x64 64位元的處理器架構,完全不考慮 32位元,還好群益都有提供。

程式撰寫挺簡單,但執行單元測試卻出了問題,只要將「目標平台 (target platform)」改為「x64」就會出現一些很怪的錯誤訊息。原來以為是呼叫 COM 出了問題,甚至打電話問了群益的資訊部人員,但他們竟然說沒聽過單元測試,程式沒有從 Form 開始就看不懂。挖哩,不過他們確信 COM 元件沒有問題,看來還是出在環境設定上。

查找解決文與 Try-Error 大半個下午,總算,就是只要在 Visual Studio 2017 選單「測試」→「測試設定」→「預設處理器架構」改為「X64」就 OK 啦!

Visual Studio 2017 跑 x64 單元測試的設定

Multicharts & 部位策略管理系統架構整合規劃

Multicharts 這套交易系統,作為商品即時行情接收 (Quote Manager)、圖表分析與展現 (Charts Window)、指標撰寫 (Power Language)與績效回測 (Portfolio back testing)等功能,都具有相當不錯的穩定/效能與易用性。但唯獨關於部位的資金策略管理 (Positive Feedback Investment Strategies Management),卻是相當地陽春,使得投資者最好能自行撰寫相關的資金策略部位管理,再與 Multicharts 上述功能模組整合,並實作各券商的自動下單交易協定 (protocol),如此才比較能建構出較完整全方位的交易系統。

Multicharts 並沒有直接提供外部系統整合的 APIs (Application Programming Interfaces),這也列為他們家的商業機密吧。若要原廠提供則還需要另行購買,而且據說還相當不便宜。MC 現在唯一能對一般開發者所提供整合的管道是透過 EasyLanguage Extension Software Development Kit (SDK),也就是在 Power Language Editor 上,透過該 SDK 來呼叫外部 Windows DLL 檔 (C/C++, Delphi, VB ...等實作),以達成與外部系統整合的手段。

目前看到 (似乎也是唯一?)的作法就是撰寫產出文字檔的 DLL,然後再由交易者自行開發的系統以無窮迴圈的方式一直讀取位於所指定目錄內所產出的各商品檔案。

這也算是一種權衡可解決現狀的妥協方案吧。但我實在很難接受這樣的整合方式,產出文字檔然後以無窮迴圈 (或定時)讀取以處理之...。其實我已有見識過某些大戶是以這樣的方式來處理,而且資金規模還頗為龐大。但如果有機會能找出更佳穩定/效能的技術整合方案,我還是把產出文字檔這種方式列為是最不得已的選擇吧。

這兩天從一些相關文件與國內外論壇爬文研究的基本心得,先規劃出 MC 與 客製化交易系統 (主要針對資金部位策略管理模組)的整合架構圖。(其實這應該稱之為實體的分層結構設計規劃)
Multicharts & Custom 交易系統架構整合設計

閱讀全文 »

購買 Multicharts 英文版終身授權&初次設定使用

其實去年底我就從國內代理商「凱衛資訊」,利用五週年慶時含一年的行情服務,購買的是英文版本終身 (lifetime)授權。整套買下來約3萬元,足足比平時期購買的價格便宜一倍。我買的是英文版本,想說未來很有可能操作國外金融商品,且所參考許多交易相關的文章都以原文為主,所以還是早些習慣原文詞彙術語比較好。

擱置了一年,直至這個月初才將之開通,且為了行情接收問題,還與凱衛資訊溝通許久。 (她們原認為限制購買後三個月內要開通,但這說明沒有列清楚。)

會購買 Multicharts 的主要原因是為了方便接收各類商品報價,包括國內期權/股票,甚至海外期貨商品的即時接收。它的 Quote Manager 作得相當不錯,許久以前就曾寫過一篇-[設定備忘] Import Ascii Data from QuoteManager,如何從文字檔接收歷史資料。而現在更是方便,凱衛資訊除了有提供即時行情接收服務外 (一年期約2萬),還有整理了10年期的國內商品歷史資料,下載回來直接覆蓋資料庫即可。

安裝完畢後 (我安裝 x64版本@Windows10),最好是把 OS 的 UAC 帳戶權限開到最低,免得時常蹦出對話框干擾。Multicharts 總共有五個模組-Main (Chart-Window)、Quote Manager、Portfolio、Power Language、3D Optimization Chart。
Multicharts Screenshots

閱讀全文 »

[備忘] Amibroker 匯入 Yahoo 美股盤後資料

因為台灣股市的趨勢,從中長期來看,幾乎是跟隨著美股大盤,包括 道瓊、那斯達克、S&P-500 等指數連動。所以,簡單的一個想法就是,利用 60日均線 (季線)觀察上述美股大盤指數的多空方向。

首先當然是要下載上述美股大盤的歷史盤後資料。可以利用我先前介紹的:抓美股歷史資料的好幫手—免費的 YGQD。另外,因為我早已在去年就購買這一套:Amibroker 套件,內附了一個小工具:AmiQuote (購買註冊後永久免費使用),可以下載包括 Yahoo, Google, Msn 等 Internet-based 的各國主要股市大盤期貨等歷史資料。並且與 Amibroker 整合,下載的資料馬上就可以在 Amibroker 的圖表分析視窗上顯示。

首先當然是分別下載與安裝好 Amibroker (目前版本為 5.30)與 AmiQuote,下載位置為 Amibroker 官方下載區。執行 AmiQuote,選單上選擇 [Edit] → [Add tickers...],在出現的對話文字框內填入欲下載的主要指數代號 (Symbol),我這裡只想下載 道瓊、那斯達克、S&P-500,其代號為 ^DJI, ^GSPC, ^IXIC。更多相關國外股市的代號,可查詢這裡: Yahoo! Finance!
AmiQuote 匯入美股大盤 Symbol

閱讀全文 »

差勁不懂得反思改善的 eLeader 交易系統 (~20091206)

忍受 eLeader 系統的不穩定已有 1年多了,此時真的是不吐不快!

只要是台指期在某個點位造成大幅的滑價,eLeader 系統鐵定如同造成當機現象,閃電下單的畫面會凍住,價位不動。 等到競價搓合完畢後,價位早已不知跑到那裏去了。 對於極短線投機者,可說是會造成許多傷害,包括追價不及、或要遞出停損單也無法及時送出。

這是即時性 (Real-time)的效能處理問題,相當不容易解決。 但是,作為用戶,使用這一年多來,竟然沒有得到任何改善。 我真的很難以想像,如果,我是他們負責系統維護開發的資訊主管,對我而言,這不就是最優先首要處理克服的工作目標? 最大隻的青蛙總要最優先吃掉,如此睡覺也才能安穩,不是嗎?

好吧,這真的很困難,但主管也自己覺得有在持續改善,只是時間還未到,也只好請用戶諸多包涵了。 那麼,我再提及另外一個相當顯而易見、我不知道向她們客服單位反映過多少次、甚至也曾與該資訊單位在正式(與非正式)場合中,多次提及到的一個設定問題。 這可以說是只要有心,絕對花不了多少時間就可以解決的問題。

舉個例子,假如我打開一個代號為 [4306] 的技術分析視窗,每一個視窗可以有多個 [TAB]。 這個編號視窗我準備用來觀看 近月份台指期,所以 [TAB1] 我開為台指期1分K、[TAB2] 開為 5分K、[TAB3] 開為 15分K、[TAB4] 開為 60分K ‧‧‧ 然後,我再 Clone(複製) 另一個同為代號 [4306] 的技術分析視窗;這次我想觀查的是金融期指,然後也如上述開不同時間格局 (Time-Frame)的 TAB。

每一個技術分析視窗、每一個 TAB,都有各自使用不同的指標,如均線、KD、布林通道等。 然後我把這些設定都儲存成設定檔 (*.XML 檔案格式),然後關掉 eLeader,然後重新打開。 再來然後呢? 所有原來辛苦作的設定全都不見了,只會遺留下來最後一個的設定,也就是說,若是開了兩個技術分析視窗、各四個 TAB,共有 8 個設定,只會有一個設定被 eLeader 儲存下來。

夠離譜吧!? 我用過的交易系統,也只有 eLeader 系統會有這種蠢事,然後一年多來的反映,沒有作任何改善。 最最令人生氣的就是這一點! 當你知道了顯而易見的問題,卻從來沒有想辦法去解決它,這不是麻木不仁是甚麼?

事實上,這問題還真是相當容易解決,就看有沒有心而已。 一個基本的設計解決方案,我就放到後續的文章另行討論吧。

抱怨了這麼多,那麼換掉交易系統不就好了? 是啦,受這種鳥氣,還倒不如早換掉投靠其它系統。 只是現實的問題是,我這邊的交易手續費實在相當低,這也是讓我一再抱怨卻沒有實際付出行動: 喔,再則,老實說一句話,我不曉得是否是因為這些交易看盤系統是免費(有開戶就可以用)的關係,普遍穩定度與功能都不佳 (eLeader 只是更離譜罷了)。 (嗯嗯,最近總算透過朋友的關係,在其它盤商也找到足夠低的手續費,近期內應該就要轉移陣營了。)

喔,eLeader 倒是有個相當不錯的設計,這點還是要給人家相當的肯定。 那個台指期權值成份股的報價視窗,可以動態依 Column 欄位(如成交價、最高價、漲跌幅、權重等)排序:除此之外,每一檔權值股的第一個欄位會顯現出一個 迷你K線 走勢圖,對於一日的高低走勢,一目了然,而這是我在其它看盤軟體沒有看到的創新功能。

有問題其實還好;而可氣的是,知道問題卻不想辦法去解決它。 用心一些、積極一點,對業者自己、對用戶,才能創造雙贏的機會。

購買了「AmiBroker」交易軟件終極套件~

觀望了一個月,今天凌晨衝動之下,線上刷卡購買了一套『AmiBroker 終極套件專業版 (Ultimate Pack Pro)』的交易系統。 有訂購單資訊為證:
AmiBroker Order and Payment Information.

注意到這套交易軟體是從 「COCO研究院」這個小型討論期貨交易的社群。 站長 小娃小姐 本人就是購買了 AmiBroker 的標準版 (Standard Edition),並在該論壇上有一些相關的教學文件與使用教學討論等。 感覺上這套工具還蠻靈巧的,最重要的是,它很便宜! 這次我購買的是專業版的所有套件,也才 US$403,折合新台幣約 13,000 餘元。 作為個人使用的交易分析平台,可以很容易的撰寫指標與回測、績效分析等功用,這樣的價格夠實惠了,比起 MultiCharts,足足便宜了近新台幣五萬元勒。

AmiBroker Screeenshot

我購買的終極套件 (US$403),內含了有:

  • AmiBroker 5.20 Professional (US$279, 含一年免費更新與技術支援)。
  • AmiQuote (Lifetime, US$65)
    ─ 可以連接 Yahoo & Google Stock 日線 (含歷史)數據,並可以設定自動更新。
  • AFL Code Wizard (Lifetime, US$65)
    ─ 提供 Wizard 的方式,快速建置屬於自己的指標。

當然,也可以只選擇購買 AmiBroker 主體本身。

閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal