Skip to content

My personal library for quantitative trading

License

Notifications You must be signed in to change notification settings

jgardezi/BATrader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

BATrader

項目源起:

在2013年我成為了一位公司經紀。
在機緣巧合的情況下,我開始了自已開發交易策略的生涯。
工作生涯中結識了眾多行內交易專家,其中幾位對我影響甚深。
無論是技術上或是交易智識上,都使我獲益良多,
在此衷心感謝各位友好的分享。

由於不是修讀計算機專業的關係,學習的過程很漫長。
由最基本的數據結構學起,到設計模式 (Design Pattern),
到高級語法應用等,出於對交易的熱誠,都一一克服了。

2013年
    BATrader由一個小小的 VBA 檔案開始,將恒指成份股的
    即市表現與期指並列,節省為客戶分析市況的時間,並且
    用於短線交易上,不同成分比重 (Factor) 的股份作出
    技術分析。

    同年學習 C# 和 LINQ,成功用 LINQ 開發將交易所
    tick data 轉換成 ohlcv data。

    深度依賴 SQLite 這個檔案型的數據庫。

2014年 - 2016年
    由 C# 轉向 Python,被 Python 簡潔易寫的開發過程
    深深感動。

    由於交易的資料主要來自「交易所日報表」, 以 C# 
    開發解讀報表的程序顯行非常艱深。故此投向 Python的
    懷抱,從此除了開發 Windows 的交易程序會用 C#,日
    常生活大小事都用 Python。

    BATrader 成為了一個每天開市到收市,循環向一組特定
    股票運行技術分析的邏輯。符合邏輯即推送 (PUSH) 到我
    的 iPhone 手機上。

2017年
    因為項目的規模已到中型水平。要達至模組化、增強可擴
    展性。對項目進行了非常深度的重構 ( Refactoring )

    主要對偶合度高的模槐進行分解。及加強註解。

    由於 SQLite 是檔案型數據庫,無法有效異機開發,並且
    難以管理。出於對數據庫新的要求,向 PostgreSQL 遷移。
    實現了一主多副,實時同步 ( replica )

2018年
    過往因為需求出現,會不斷加入新的程式碼,日子有功,
    代碼量增長使項目結構過於鬆散。

    用 zeromq 的特性著手開發了報價、決策、交易的分離。


目前 BATrader 已經成為一個非常穩定 Python Library。
包含事件驅動的回測模組 (Backtest) ,並用同樣的 API 實現交易的模組。另外數據庫包含港股的大量數據,包括每筆交易及筆數等。

對於特定事件 (當股票符合技術條件) 的推送模組,數據下載模組 
(港交所原始檔案) 和解讀。其他還有資金流入、牛熊證、期貨、期權
的數據處理。

(本項目目前非開源,本倉庫只作部份程式碼的演示)

-------------------------

About

My personal library for quantitative trading

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages