prism

2010-01-18

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

5 則留言:

Steve 提到...

看起來是很不錯的想法, 我目前也正在考慮是不是要用程式產生訊號並自動交易. 剛好我個人也非常喜歡 python, 所以我應該會花些時間來研究看看. 不過, 用 python 來寫, 會不會有效能不佳的問題? 這應該很重要, 畢竟期貨有時暴漲暴跌, 如果程式效能不佳, 可能實際交易的點數會和預期誤差一些.

TerryH 提到...

如果以要處理,交易訊號來說,綽綽有餘,因為,以目前的交易 ticket 來說,比目前 HTS 穩定很多,畢竟,卷商他們不可能幫你作,不同訊號源的備援,還有我已經遇到多次HTS系統掛點,假如真要算的話,光是穩定性的損失,都遠超過,軟體本身的價值

我還有很多更動還沒有commit 到 github,BarsinceEntry 也還沒有作,不過算是快完成了

有興趣,都可以直接 fork 出去接下去開發,目前 code 我還沒有作完整的整理,有點亂,請見諒

TerryH 提到...

暴漲暴跌,只有影響 ticket trader ,如果做的是分鐘 K,只有 limit 當有影響,效能也是沒有問題,因為一的 ticket 價格都天差地遠了,所以策略還比較重要,效能遠遠大於您的網路報價速度

Steve 提到...

非常感謝您不吝分享 source code, 從中學到了一些東西.. 期待您 commit 更多的 source code.

river 提到...

偶然看到您用 Python 在開發屬於自己的交易系統,真是佩服!
身為 Python 的初學者,正在試著慢慢看懂您的 source code,非常期待您繼續開發此系統唷!