金融小課堂 | 零基礎30天API量化速成_第12講

“聲明:作者對以下提及的任何產品都沒有既得利益宛徊,也未提供投資建議”

?在量化世界捺萌,有一些不得不提一些知名broker。

?01?

InteractiveBrokers

想必InteractiveBrokers的中文名大家已經很熟悉了:盈透證券焚鹊,是面向活躍交易者的在線經紀交易商央串。

他們自1978年以來就進入了交易市場粘茄。算法交易不是IB的重點先朦,但是多個引擎通過與他們的Trader Workstation集成提供實時交易次洼。

我們已經在前幾篇文章中多次提到IB了-它的確非常棒似炎。

?02?

Alpaca

Alpaca成立于2015年辛萍,是一家新興的免傭金經紀商,專為算法交易而設計羡藐。

Alpaca還具有交易API以及多個開源工具贩毕,其中包括針對時間序列財務數據進行了優(yōu)化的數據庫,稱為MarketStore仆嗦。您可以將MarketStore視為可擴展的DataFrame服務辉阶,該服務可從系統(tǒng)中的任何位置以更高的可伸縮性進行訪問。

如果您想立即開始使用瘩扼,可以使用最新的docker映像來引導marketstore數據庫實例。?

該映像已預加載了默認的mkts.yml文件集绰,并聲明VOLUME / data作為其根目錄规辱。要使用默認值運行容器:

dockerrun?-i?-p5993:5993alpacamarkets/marketstore:latest

如果要對實例運行自定義mkts.yml罕袋,則可以創(chuàng)建一個新容器,將mkts.yml文件加載到其中碍岔,然后運行:

dockercreate --name mktsdb -p 5993:5993 alpacamarkets/marketstore:latestdockercp mkts.yml mktsdb:/etc/mkts.ymldockerstart -i mktsdb

使用正在運行的docker實例打開會話:

marketstoreconnect--urllocalhost:5993

MarketStore是在Go(帶有某些CGO)中實現(xiàn)的,因此您可以很輕松地從源代碼構建它蔼啦。您需要Go 1.11+,因為它使用go mod來管理依賴項:

goget-u?github.com/alpacahq/marketstore

然后在repo目錄中,使用:

makevendor

然后使用以下命令編譯并安裝項目二進制文件:

makeinstall

您可以通過運行列出可用命令:

$GOPATH/bin/marketstore

您可以創(chuàng)建一個名為mkts.yml的新配置文件饥侵,并通過運行以下命令填充默認值:

$GOPATH/bin/marketstore?init

然后使用以下命令啟動marketstore:

$GOPATH/bin/marketstore?start

輸出大概長這樣:

example@alpaca:~/go/bin/src/github.com/alpacahq/marketstore$ marketstoreI061916:29:30.1021017835log.go:14] Disabling"enable_last_known"feature until it is fixed...I061916:29:30.1029807835log.go:14] Initializing MarketStore...I061916:29:30.1030927835log.go:14] WAL Setup: initCatalogtrue, initWALCachetrue, backgroundSynctrue, WALBypassfalse:I061916:29:30.1031797835log.go:14] Root Directory: /example/go/bin/src/github.com/alpacahq/marketstore/project/data/mktsdbI061916:29:30.1444617835log.go:14] My WALFILE: WALFile.1529450970104303654.walfileI061916:29:30.1444867835log.go:14] Found a WALFILE: WALFile.1529450306968096708.walfile, entering replay...I061916:29:30.2447787835log.go:14] Beginning WAL ReplayI061916:29:30.2448617835log.go:14] Partial ReadI061916:29:30.2448827835log.go:14] Entering replay of TGDataI061916:29:30.2449037835log.go:14] Replay of WAL file /example/go/bin/src/github.com/alpacahq/marketstore/project/data/mktsdb/WALFile.1529450306968096708.walfile finishedI061916:29:30.2894017835log.go:14] Finished replay of TGDataI061916:29:30.3407607835log.go:14] Launching rpc data server...I061916:29:30.3407927835log.go:14] Initializing websocket...I061916:29:30.3408147835plugins.go:14] InitializeTriggersI061916:29:30.3408247835plugins.go:42]?InitializeBgWorkers

為了運行MarketStore唠摹,需要一個YAML配置文件爆捞。可以使用marketstore初始化來創(chuàng)建默認文件(mkts.yml)勾拉。該文件的路徑通過--config標志傳遞給start命令煮甥,或者默認情況下,它將在運行該目錄的目錄中找到一個名為mkts.yml的文件藕赞,默認的mkts.yml長這樣:

root_directory: datalisten_port: 5993log_level: infoqueryable: truestop_grace_period: 0wal_rotate_interval: 5stale_threshold: 5enable_add: trueenable_remove: false

在計算機上啟動MarketStore實例后成肘,就可以讀取和寫入報價數據了。

pymarketstore是標準的python客戶端斧蜕。請確保在另一個終端中双霍,您正在運行marketstore。

數據查詢:

import pymarketstore as pymktsparam = pymkts.Params('BTC', '1Min', 'OHLCV', limit=10)cli = pymkts.Client()reply = cli.query(param)reply.first().df()

數據展示:

Out[5]:OpenHighLowCloseVolumeEpoch2018-01-1717:19:00+00:0010400.0010400.2510315.0010337.257.7721542018-01-1717:20:00+00:0010328.2210359.0010328.2210337.0014.2060402018-01-1717:21:00+00:0010337.0110337.0110180.0110192.157.9064812018-01-1717:22:00+00:0010199.9910200.0010129.8810160.0828.1195622018-01-1717:23:00+00:0010140.0110161.0010115.0010115.0111.2837042018-01-1717:24:00+00:0010115.0010194.9910102.3510194.9910.6171312018-01-1717:25:00+00:0010194.9910240.0010194.9810220.008.5867662018-01-1717:26:00+00:0010210.0210210.0210101.0010138.006.6169692018-01-1717:27:00+00:0010137.9910138.0010108.7610124.949.9629782018-01-1717:28:00+00:0010124.9510142.3910124.9410142.392.262249

寫入數據:

importnumpyasnpimportpandasaspddata= np.array([(pd.Timestamp('2017-01-01 00:00').value /10**9,10.0)], dtype=[('Epoch','i8'), ('Ask','f4')])cli.write(data,'TEST/1Min/Tick')# Out[10]: {'responses': None}?cli.query(pymkts.Params('TEST','1Min','Tick')).first().df()

展示:

AskEpoch2017-01-0100:00:00+00:0010.0

MarketStore是專為解決可擴展性問題而設計的批销,該可擴展性問題涉及處理算法交易回測洒闸,圖表繪制和分析價格歷史中使用的大量金融市場數據,這些數據跨越時間橫截面均芽,并且粒度降低到包含所有美國股票或爆發(fā)的加密貨幣領域丘逸。

如果您正在努力管理大量HDF5文件,那么這是解決您問題的完美解決方案掀宋。MarketStore使您可以通過網絡查詢DataFrame內容深纲,而延遲時間與磁盤上的本地HDF5文件一樣低,并且將新數據追加到末尾的速度比DataFrame快兩個數量級劲妙。這是因為存儲格式針對數據類型和用例以及現(xiàn)代文件系統(tǒng)/硬件特性進行了優(yōu)化湃鹊。

以上

作者:修恩

推薦閱讀

金融小課堂 | 零基礎30天API量化速成_第1講

金融小課堂 | 零基礎30天API量化速成_第2講

金融小課堂 | 零基礎30天API量化速成_第3講

金融小課堂 | 零基礎30天API量化速成_第4講

金融小課堂 | 零基礎30天API量化速成_第5講

金融小課堂 | 零基礎30天API量化速成_第6講

金融小課堂 | 零基礎30天API量化速成_第7講

金融小課堂 | 零基礎30天API量化速成_第8講

金融小課堂 | 零基礎30天API量化速成_第9講

金融小課堂 | 零基礎30天API量化速成_第10講

金融小課堂 | 零基礎30天API量化速成_第11講

『聲明:修恩筆記公眾號所有文章僅供參考,不構成任何投資建議策略镣奋。

據說長得好看的人都點了??

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末币呵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子唆途,更是在濱河造成了極大的恐慌富雅,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肛搬,死亡現(xiàn)場離奇詭異,居然都是意外死亡毕贼,警方通過查閱死者的電腦和手機温赔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鬼癣,“玉大人陶贼,你說我怎么就攤上這事啤贩。” “怎么了拜秧?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵痹屹,是天一觀的道長。 經常有香客問我志衍,道長聊替,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任春叫,我火速辦了婚禮暂殖,結果婚禮上当纱,老公的妹妹穿的比我還像新娘。我一直安慰自己莉给,他們只是感情好廉沮,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布滞时。 她就那樣靜靜地躺著,像睡著了一般曼玩。 火紅的嫁衣襯著肌膚如雪窒百。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天顷帖,我揣著相機與錄音贬墩,去河邊找鬼。 笑死陶舞,一個胖子當著我的面吹牛,可吹牛的內容都是我干的唠粥。 我是一名探鬼主播颁井,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼雅宾,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了贯吓?” 一聲冷哼從身側響起蜀变,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤库北,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后情屹,有當地人在樹林里發(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡垃你,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年惜颇,在試婚紗的時候發(fā)現(xiàn)自己被綠了凌摄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漓帅。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡煎殷,死狀恐怖,靈堂內的尸體忽然破棺而出劣摇,到底是詐尸還是另有隱情弓乙,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布勾习,位于F島的核電站巧婶,受9級特大地震影響,放射性物質發(fā)生泄漏艺栈。R本人自食惡果不足惜湾盒,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一罚勾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丈莺,春花似錦分衫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壁畸。三九已至茅茂,卻和暖如春太抓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背碴倾。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工掉丽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人僧须。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓担平,卻偏偏與公主長得像芥挣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子空另,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內容