Posts for: #程式交易

Autotrader

Autotrader 釋出

一個簡單的個人交易系統,所有的功能,基本簡化以 file base 為原則 ( 太難的,我也寫不出來 :-) )

對程式交易有興趣的人,可以玩, bug 是一定有的,不過商業版的軟體,三天兩頭,就更新,問題也不少

ta-lib 所有的指標,都可以整和起來,我還不知道要定怎樣的 name space 比較好,現在系統交易的內建名稱 (name space),已經很亂了,所以小弟先想一下

github 專案位址 https://github.com/terryh/autotrader

window 安裝包 http://dl.dropbox.com/u/14137697/autotrader/20130317/setup.exe

線上文件 https://autotrader.readthedocs.org/en/latest/

ps: 本程式,對任何交易損失一概不負責

TA-Lib

TA-Lib 是個歷史悠久,擁有相當多金融技術指標的實作,也被很多金融有關

的軟體所使用,已經有包含將近 200 種指標,

也有 SWIG 幫忙打包的 Perl , 及 Python 套件

這可是程式交易的利器,輕輕鬆鬆,200 個指標可以用,感謝 Open Soure 的前輩們

Python 的套件,有另一位大哥,用 Cython 重新做新的介面,效能更進一步

不過在 windows 下面編譯還蠻麻煩的,要有 Visual Studio 2008 ,及簡單的 patch ,

詳細可以參考

https://github.com/mrjbq7/ta-lib/issues/4

另外,自己也有需求,所以先包一包 win32 Python2.7 的安裝檔,方便使用,有需要的人也可以自取

記得,丟進去的數值,都要是 float


http://dl.dropbox.com/u/14137697/20121105/TA-Lib-0.4.0.win32-py2.7.exe

PS: 這應該是非常冷門的套件 ;-)

康和期貨分公司及商品代碼

資料不好找,分享一下

TXF 大台指
MXF 小台指
FXF 金融期
EXF 電子期
GTF 櫃買期
CPF 利率期貨
T5F 台灣五十
XIF 非金電期
TGF 台黃期
GDF 黃金期

F029000 康和期貨總公司
F029002 康和期貨台南分公司
F029003 康和期貨台中分公司
F029004 康和期貨高雄分公司
F029005 康和期貨彰化分公司

AutoMan 更新測試

由於有網友,反應,康和 API 更新後,有問題,所以這是一版新的更新,針對,康和新版的 OCX 元件

詳細 API 我也沒有下單測試,除非,康和變更 API 介面,不然,應該都沒問題才對 (都下單這麼久了 XD)

記得,您有更新康和新版的 OCX API 元件 才需要,不過,一樣自己要測試一下

軟體時限,延到 201312 月

下載點 http://dl.dropbox.com/u/14137697/20110608/automan.exe


這是程式更新的兩個變動,幾乎沒有改什麼

https://github.com/terryh/automan/commit/631921a41e80e43b12b0fc9f4e456e87fa68d853

https://github.com/terryh/automan/commit/7795066f847672cf3d4ed7c33b3220ae29946f39

關於 AutoMan 可參考以前文章 AutoMan

抓到一個 VirtualBox 很奇怪的問題

心血來潮,測試一些交易策略,把 TS 下的作好的測試要移到 HTS 後,發現點了 4000 程式語言的功能,居然整個 windows 當住了,我的交易環境,一直都是放在 VirtualBox 裡的 windows 跑得,找到最後居然是,最近, Debian 更新到新版的 VirtualBox 4.0.2 後, Guest OS 也跟著裝 4.0.2 的

VBoxGuestAdditions_4.0.2.iso 這個就是重點,詳細禍首,是 VBoxGuestAdditions 還是 HTS 我也不是很確定(當然 HTS 有問題的機會很大,依歷史經驗來說),但是確實可以把 windows 搞掛,所以 GuestAdditions 還是保守一點,裝 3 系列的就很穩了

http://download.virtualbox.org/virtualbox/

automan open source

AutoMan 是前些時候寫得 AutoMan 康合日盛下單機測試版,自己有需要開發的圖形介面下單機,一開始,看看好像大家都收錢,就也跟著大家的規矩,定一個小小的收費門檻,讓想要做程式交易的人,心裡有個底,但是後來自己心境的轉換,也算是改變吧,工具只是,開始而已,後面難的是風險的控管(心的控管),及交易策略的開發與執行,一直以來,除了停電,網路斷,還有報價源,報價錯誤,這些反而比較不不穩地外,automan 都很稱職,我先 Eating my own dog food 的原則,用了很久了,不過醜話還是要先說,工具,只是開始,是幫你,還是害你,誰也不知道,自己才是主人,賺了,記得多幫助別人,錢賺來是要花的,輸了,不要怪東怪西,怪天怪地,怪政府

各位,要是有好的建議或是程式的 patch 請不吝賜教,程式非常的短

專案網頁 https://github.com/terryh/automan,說明也可以在專案頁看到

目前,有 2014 12 月的期限,只要改一下,重新編譯就幾乎沒限制了,有期限,是希望,有更新的話,大家可以重新下載,不要有錯誤(bug),找到修正後,大家還是傻傻的舊版一直用

更新紀錄

0.4BETA 增加程式圖示,有好心人士可以回報一下在 64 bit 的 windows 環境下可不可以,還是需要另外建構,這一個檔案,用 PyInstaller + Python2.7.2 在 windows XP 32bit 的環境建構,第一次執行會產生 COM 的紀錄檔,先前都是用 Python2.5 + py2exe 在 32bit 環境建構,期限 201412,發佈時間2012/04/01

http://dl.dropbox.com/u/14137697/20120401/automan.exe

0.4BETA,期限 201412,發佈時間 2012/03/29
支援康和 OCX v3 的 API,移除支援舊版本康和 API,因為他們不支援了,訂正康和的代碼提示
http://dl.dropbox.com/u/14137697/20120329/automan.exe

0.3BETA,期限 201312
有支援康和 OCX v2 的 API
http://dl.dropbox.com/u/14137697/20110608/automan.exe

0.2BETA,期限 201212
http://dl.dropbox.com/u/14137697/automan.exe

在 windows XP 上,同時需要 MSVCR71.DLL 及 MSVCP71.DLL 請自行下載,如果是Windows XP可放在 C:/WINDOWS/SYSTEM32/ 下面即可,或是存到程式執行目錄

http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71

http://www.dll-files.com/dllindex/dll-files.shtml?msvcr71


PS: 有認真的慢慢在做,像 TS 的工具,有機會,在發表給大家用,不過自從開始作遊戲之後,這一個順序,排在做遊戲之後 ;-),到了遊戲公司後,遇見幾個有趣的人,做遊戲真的很好玩耶,以前都覺得玩遊戲很浪費生命

分散市場的重要性

將所有的部份,指放在一個市場,風險非常的大,尤其程式交易,更為重要,以目前台灣農曆年後的市場情形,尤其如此,像是台灣市場不反應,經濟的自身利空,像如,失業率創新高等等,都沒有反應,但是如果,美國市場失業率,創新高,卻會跟著反應。

如果,你的交易系統,是順勢系統,那他在震盪的市場裡一定難有表現,所以交易系統的分散及交易市場的分散,都是分散風險,讓自己立於比較不容易失敗的方法。

以最近的市場為例,歐美市場,比較有趨勢的走勢,台灣則比較像是震盪,往往,在歐美的市場,趨勢盤走完,隔天,台灣開盤到底,盤中只有上下震盪,卻已無趨勢,所以一樣的系統,就會歐美的市場上賺錢,讓整體績效依然的往上,尤其,歐美的市場,交易時間很長,電子交易風行,交易工具成熟,是程式交易者的天堂,有好策略,能在市場上活的好弟兄們,不要錯過

AutoMan 康合日盛下單機測試版

AutoMan 是整合日盛,及康和的圖形介面下單機,目前是測試版本,可以試用到2010年4月底,
目前沒有支援選擇權,國外商品

如果您要的是日盛免費下單機的話請見 autohts.exe HTS 免費下單機autohts.exe


AutoMan 收費方式


試用期過後,每月 300元,每季 800 元,每年 3000 元
請匯款到,822 中國信託 266610061066 後,來信 terryh.tp 小老鼠 gmail.com 告知,帳號後五碼,及購買金額,確認後,程式隨即寄送到,發信的 email 位址,


試用版下載位址,期限到2010年4月底

http://autohts.googlecode.com/files/automan.exe


AutoMan 主要特色

綠色軟體,不需安裝

支援 Windows 95,98,XP,Vista (我沒試,但應該支援),x64 64位元版本,及 win 7 版本,依期貨商的支援為準

不用裝微軟的 .NET Framework

完全由您的電腦控制,不需在我們的伺服器新增帳戶,由您直接對,期貨商

支援多帳號,多策略,不限商品,及口數,以期貨商的API限制為準

不會轉倉,不會刪單,不會查詢,請自行以交易軟體查詢

只限制,下單的月份到軟體過期當月,不鎖網路 ip,電腦,帳戶數目

安裝說明

程式執行時前最好,都有網路較時,這樣下單的延遲,才會小一點

直接下載,點兩下,執行後,輸入時有提示,

在程式執行的目錄,會產生一個 automan.pickle 的檔案,就是您所有的設定,如果,要換電腦,記得一起備份,就可以保留所有設定,另外會產生 automan.log 紀錄程式執行狀態

如果,程式抱怨,缺少 MSVCP71.dll 請自行下載 http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71,如果是Windows XP可放在 C:/WINDOWS/SYSTEM32/ 下面即可,或是存到程式執行目錄

訊號檔格式

格式, 可以用逗點(半形),或是一個空白隔開,最後一欄 Price 可以沒有,會自動設成市價

DATE,TIME,MarketPosition,Price
或是
DATE TIME MarketPosition Price

DATE 代表日期
TIME 代表時間
MarketPosition 倉位 0 空手, -1 作空,1作多
Price 0,市價單 有實際價位,限價單,程式交易建議市價單,不然不確定成交

如果是用 TS 2000i (TradeStation 2000i) 的朋友,要搭配AutoMan 下單機,可以用聚寶盆TS即時訊號讀取機,就可以把訊號送給 AutoMan 讀取,不會延遲,或是慢一根 K bar,但是如果訊號是放在在Ram Disk 執行時,執行聚寶盆TS即時訊號讀取機一開始並不會建立最後的訊號資料,所以必須自己建立,最後的訊號資料,以當沖為例,每天的開始部位都是0,所以每天都可以先把訊號設成 0 0 0 開始在執行 AutoMan 下單機,如果是留倉策略,就要設成原本的倉位,0 0 1 或是 0 0 -1

聚寶盆TS即時訊號讀取機

如果用台證的朋友可以直接用聚寶盆的TS免費下單機

聚寶盆TS自動下單機

日盛HTS安裝完API就有內建,康和API請到他們的網站下載 http://www.concordfutures.com.tw/DownLoad.htm ,安裝完後即可使用

康和及凱基

去康和(復興北總公司)的時候,看大家都是穿休閒褲,頭髮亂亂的,好像沒有睡醒,有人吃早餐,還有人在玩 facebook 的遊戲,座位一個連一個,有點不專業的感覺,到了,台證,辦公室很漂亮,都是穿襯衫,西裝褲,感覺很專業,這就是又一次告訴我,有時候,事情不是外表看到的表象

軟體實際使用

超級大三元,DDE 會當,不支援 Request,他們外包, 都是同一家做的,還會不一樣
凱基(舊台證建國北路)的下單API 超複雜的,沒有下載網址,由營業員用 email 寄來,
誰知道有沒有後門,文件不清楚,上面還寫艾楊,看程式範例比較詳細

康和全都賺,DDE,一開就有,不像是日盛的要另外開,網路掛點,DDE要重來,不然報價不會更新,而且,康合的DDE是和他的報價系統同步,也不像是,元大的系統,可以報價DDE同步,不過,元大的非要你裝個 打 NET Framework 的套件,還不能是新版的,要他們相容那一版,康和不只這樣,連部份的國外的商品報價都有,而且不是另外嵌個網頁報價,或是JAVA Applet 給你,和國內商品報價都是一樣的介面, API文件詳細,易上手,如果不想開TS,或是國外帳戶,應該是不錯的開始

我不是營業員,不過,你想節省時間比較的話,目前試過這麼多家,期貨的軟體部份,目前我試過的康和的設計最好,不信邪,有時間,就自己也去試試吧

我也不是他們業界的人,不知道,他們的軟體外包都是怎麼維護,或是處理的,所以不知道他們到底是有專家在負責,還是只是外包的時候運氣好,遇到好的團隊,每家期貨商,軟體的品質都不一樣,好的品質,穩定,不會讓你明明是個程式交易員,還要幫他們 debug ,或是平均一星期,系統都會來個更新版,會自動更新,你還沒有選擇的餘地,讓你不太確定,更新完後,還能不能使用,像是日盛一樣,不斷的來考驗你的分析能力

AutoTrader 中文 README

下面,我直接貼,至於如何寫策略,還有怎麼寫自己要的函式,下回分曉

本文件的最新更新

http://github.com/terryh/autotrader/blob/master/README.TW

申明
=====

本程式,對任何交易損失一概不負責,系統本生可能存在錯誤,請自行修改 ;-)


這是什麼?
==========

這是一組手稿程式,可以幫您交易任何的金融商品,現在我只有在期指的商品上測試(TFX),

現在的版本已經可以運作了,目前,回測的功能很簡陋,目前不支援 tick 的模式,只有時間的方式,
也沒有最佳化的功能,整個設計的邏輯,就是KISS的原則(Keep It Simple & Stupid),盡可能的簡單化,
整個交易系統核心,不包含空行及程式註解不到三百行。

我們盡可能的讓策略程式語法和 Easy Language 一樣,方便您可以移植在Trade Station 上的現有的程式


為什麼要用?
=============

因為我們Open Source ,您可以看到每一行程式碼,跟自己錢有關係的事情,你能放心交給盜版的軟體嗎?
或是要付出龐大的費用忍受三天兩頭不穩定的更新嗎?不確定,不穩定,盜版,不知道什麼時候出現漏洞
就像是微軟的IE一樣,有漏洞,可是不知道什麼時候會修,這樣的情形,你敢出門嗎?敢出國嗎?


專案網址
==========

http://github.com/terryh/autotrader

如何使用?
==========

如果您想幫忙開發,您必須有 Python 的開發環境,大多的 Linux 都已經有安裝了,在 Windows 上,
您可以到這裡下載 http://www.python.org/ ,pywin32 http://sourceforge.net/projects/pywin32/files/
以後會作 AutoTrader 的 Windows 的安裝包,及執行檔,給使用者下載

執行方式,請到 Windows CMD 模式下執行

autotrader.py -m TFX.csv strategy.py

這樣就會執行您的策略 strategy.py(要叫什麼名字,您自己取),用的歷史資料檔是 TFX.csv,
用預設的時間回溯


autotrader.py –pov=200 –tax=1000 –start=2009-09-01 -m TFX.csv strategy.py

這會回測您的策略程式由時間 2009-09-01 開始,到最後,也可以指定 –end=,格式同–start= 一樣,
也可以同時使用

pov 指的是,每點的金額(台指是200元),tax 指的是,每一筆交易所需的稅金,必須同時都有指定,回測才
會計算金額,不然都只是算點數

要即時監控市場,執行策略

autotrader.py -m TFX.csv -q R:\quote.txt strategy.py

TFX.csv 是您要參考的歷史資料,預設回溯300根,及時監控的 TFX.csv 記得不要太大,一般留您需要
回溯的資料亮就可以了可以加快速度,格式您可以參考TFX.csv(台指期的範例資料)

您可以用 –help 來看到更多的參數,預設是1秒查詢市場一次,quote.txt 則是報價文字介面檔,
目前只支援 DDE,AutoTrader 有內建 DDEClient 的程式,設定好 DDESERVERS 後,執行
ddeclient.py ,就可以一直更新報價了,目前只支援,時間,市價,累計成交量,所以您要知道,
您的DDE 報價源的這三個欄位的資料

DDEClient 的執行範例

ddeclient.py –config=mydde.py R:\quote.txt

mydde.py 是我 DDE 報價源的設定,R:\quote.txt 則是我輸出到 memory disk 的報價檔,要給 AutoTrader
用的, 目前 ddeclient.py 只支援一個報價源,這是我的 mydde.py
(名字可以自己取,我用日盛的DDE當範例) 的內容,#字號後面的,都是註解

#!/usr/bin/env python
# -- coding: utf-8 --

DDESERVERS = [
{
‘server’: u’DDEEXCEL’,
’topic’: u’FUTURETXFA0’,
‘price’: u’市價’,
’total’: u’累計交易量’,
’time’: u’時間’,
},
# {
# ‘server’: u’’,
# ’topic’: u’’,
# ‘price’: u’’,
# ’total’: u’’,
# ’time’: u’’,
# },
]


為什麼我要寫這一套程式
=======================

因為沒有簡單,又 Open Source 的軟體,不然,就是要費用,又不穩定,如果有請告訴我,我會加入,幫忙開發


程式修正
=========

有任何的想法,或是程式的修正,儘管把 patch 送來,非常的歡迎


License: BSD