COCO研究院

 找回密碼
 註冊
搜索
樓主: wldtw2008

[其他程式語言] Time series database (時間序列的資料庫)

[複製鏈接]
 樓主| 發表於 14-11-30 15:43 | 顯示全部樓層
wcyjulian 發表於 14-11-29 11:04
能抓老鼠用來賺錢的就是好工具 :)
我們應該在做同樣的事, 一磚一瓦自己堆是好事, 就是得自己慢慢摸,有機會 ...

感謝您提供的資訊,實在是太專業了。如您所說,這個領域百家齊放,各領風騷,眼花撩亂啊。能在撩起袖子前先跟前輩交流減少選擇錯誤的消耗,真的很感謝,即便是一個英文字的關鍵字也是莫大的受惠啊。

如果realtime ticks可以抓到, ohlc不就可以自己算嗎?
是得,沒錯,有tick資料可以自己歸檔,不過如果有人幫我們直接就做好那真的是太棒了!!

發表於 14-12-1 00:23 | 顯示全部樓層
本帖最後由 wcyjulian 於 14-12-1 01:42 編輯
能在撩起袖子前先跟前輩交流減少選擇錯誤的消耗,真的很感謝,即便是一個英文字的關鍵字也是莫大的受惠啊。

看到有些人利用知識跟資訊的落差, 在資本市場大賺其錢, 就覺得交易沒有所謂前背後背的差別 XD

如果沒有B.N.F 那種天生的敏感度, 那學學James Simons可能比較有機會, 身體也比較能保持健康一點, 前一篇回 solo的內容有我的line, 有需要歡迎線上一起討論



 樓主| 發表於 15-2-28 12:08 | 顯示全部樓層
小弟用Cassandra當DB,寫了一個python接收小弟的D2TQMini 的tick資料後寫入 Cassandra,保存所有商品的tick資料。
我用一台超爛的省電PC,ACER R3600 (CPU:ATOM 230),不關機開了54天,收下來的資料約1.6G。
c1.png

這是隨便查一個商品的資料
c2.png

這個應用的重點是,我只寫了一個PY,然後所有的資料就全部保存進去(其實BidAsk報價我也有收過,但是太龐大後來我就不收了),不需要設定哪些商品要存哪些不要存。並且強調他的穩定度,約60天不關機還能穩穩紀錄資料。

但後續還有要繼續做的事情還很多,現在想的到的是 1. 把些TICK資料轉畫歸檔成SEC、MIN、HOUR的OHLC,  2. 做一個接口讓R之類的統計軟體能直接來DB存取  3. 甚至把我的IBSIM與這個結合,當MC那種軟體來跟IBSIM要歷史回補時,就透Cassandra取出歷史資料。

想做的事情實在很多,時間太少了。
發表於 15-3-12 03:13 | 顯示全部樓層
我用的是自己定义的数据类型,从Metastock的二进制数据演变来的,用Amibroker就可以直接看Chart了
 樓主| 發表於 15-3-28 21:03 | 顯示全部樓層
更新一下#18的後續,
這個Cassandra Server我一直開著,到今天已經用了2.2G的空間。(現在都只收tick資料了,所收的商品有WTX,MTX,A50,STW,WTX委賣賣,NIFTY,N225M,和這些期貨商品的指數)

我後來寫了一個C的小程式,能去撈出只定商品指定日期區間,以日期排序後的tick,以台指為範例,20141209~20150327,我共存了156萬筆tick,把他們撈出來要花1020秒。

query語法為:'SELECT * from test1.tqdata6 where symbol='WTX' and  datetime>='2014-01-01' and datetime<'2015-03-28' order by datetime
每個分頁4萬筆,總共51頁。

C的撈取tick的程式如附件。schema為:
CREATE TABLE test1.tqdata6 (
    symbol text,
    datetime timestamp,
    keyval map<text, double>,
    type int,
    PRIMARY KEY (symbol, datetime)
) WITH CLUSTERING ORDER BY (datetime ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
    AND comment = ''
    AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'}
    AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99.0PERCENTILE';

simple.rar

2.42 KB, 下載次數: 102

 樓主| 發表於 16-2-26 10:22 | 顯示全部樓層
本帖最後由 wldtw2008 於 16-2-26 10:44 編輯

經過將近一年的開發與沉潛,這個TimeSeries DB 開發得差不多了,我把他打包成VirtualBox虛擬機的檔案,有興趣的可以去這裡下載:
https://drive.google.com/file/d/ ... G8/view?usp=sharing

下載後,使用VirtualBox 匯入、跑起來。  登入的帳密是 tqdb / tqdb , sudo密碼是 tqdb。
RAM起碼要給2G以上。

開起來後,去編輯/home/tqdb/codes/tqdb/script_for_sys/profile_tqdb.sh 這個檔案,
把D2TQ_IP/D2TQ_PORT 設定好,然後存檔虛擬機重開機。 開起來後他就自己會去D2TQ 取報價並且自動保存下來提供日後回補用。(全部需要設定的只有這裡)
目前虛擬機裡面開起來自動會跑三個24Hr假商品DEMO1、DEMO2、DEMO3

這個機器開起來後提供兩個PORT的服務,
一個是80,這是提供回補使用的,您可以以http://xxx.xxx.xxx.xxx:80 就知道效果(http://192.168.56.68/cgi-bin/q1m ... -2-23&END=2016-2-29)。
一個是8888,這是一個iPython的介面,可以使用python的語法方式把資料拉出、回測等等,您可以以http://xxx.xxx.xxx.xxx:8888 就知道效果。


這個TQDB我覺得還滿有用也滿方便的,只要開著他就會完美的服務,所有的TICK資料全部都會被收進去,每天凌晨把TICK變成1min,每周末把tick備份出來然後清掉,
再也不需要煩人的一個個商品去設定。(我自己的另一個工具IBSim,目前就是透過TQDB回補資料給MultiCharts,超完美!!)

有興趣的人可以抓下來玩玩。有問題可以問我。甚至幫我寫說明書、或幫我開發也行,TQDB專案我是用ApacheLicence方式釋放,
在虛擬機的/home/tqdb/codes下面就是TQDB @ github 的東西。
願意幫忙的朋友,我除了萬分感謝外,也會提供所有我能提供的工具、資訊、交易技巧,大家交個朋友!!
我這有很多東西可以被挖掘,您付出一點、我付出一點,最後我們都可以獲得更多更多。

以下是圖例
Port80, 查詢的截圖:
Image_092.png

Port8888, iPython的圖:
Image_093.png

評分

參與人數 2金錢 +4 收起 理由
distagon + 2 很棒的文章,感恩 我真的很佩服你.
zyzzyva + 2 好文章,我推薦

查看全部評分

發表於 16-2-26 14:51 | 顯示全部樓層
看起來你花不少時間做這些工具, 佩服  如果您再附上一個月的真實資料, 我會去看看.

還有, 澄清一下定義.  Tick Data 資料應該是要包含時間, 委買價跟委買張數, 委賣價跟委賣張數.  成交資料則包括時間, 成交價格, 單筆成交量.  這定意對嗎?  還有, 你有想過要怎麼分析嗎?
 樓主| 發表於 16-2-27 21:35 | 顯示全部樓層
howard2c 發表於 16-2-26 14:51
看起來你花不少時間做這些工具, 佩服  如果您再附上一個月的真實資料, 我會去看看.

還有, 澄清一下定義.   ...

因為我查過市面上現成能用的工具,都找不到符合自己需求的,唯一有點想用的是KDB,但KDB好像不處理存資料的部分,只處理資料整併與分析前處理的部分。現在這個TQDB完全以我的需求在開發的。我的需求就是:開起來所有囉溝叟溝的所有的報價就自己收進去,然後轉成1min使用,並且以WebApi(http)提供資料下載(當初是要輸出給朋友用R去分析用)。資料的收集真的是苦工,做過的就知道了,有一個開起來就自動收集資料的工具能幫助,實在省事很多。
這一年來,我收了台金電指、摩台、印度、東証、ES、台指選擇權、與自己編纂的指數報價,還有一些非價格資訊,目前大概有130幾個商品的資料在裡面。。。有空我再找個不用的電腦,對外提供真實資料來展示好了。


TQDB經過這一年的開發,從最初只能收資料,到現在以WebAPI提供服務(能提供1min輸出、匯入),又能搭配IBSim讓MC回補資料,從一個玩具變成一個可以真的使用的東西,當初真的也沒想到會走到這一步。

另外您說的Tick的定義,嚴格說來是如您所說。TQDB是可以收您說的這些東西,我一開始也的確有收所有的BID ASK的跳動,但幾經思量,我做為一個自然人屬於報價節點的最末端,報價經過上游的整併與延遲到我手上,基本上都失真了,也就是根本沒價值了。再加上實際收下來發現資料量實在太大,我就不收了。

至於分析的話,我還是以1Min為主。TQDB每個星期會自動把TICK資料匯出成TXT保存,先收下來日後有機會再來研究如何使用了。
發表於 16-8-20 17:58 | 顯示全部樓層
wldtw2008大大請問您
如果想用TQDB+IBSim讓MC即時回補盤中1Min資料
再組合成2Min,10Min,20Min,56Min
00642U,00631L,台指期
資料會不會有失誤呢?
感謝您!!
感激不盡!!



發表於 16-8-21 12:27 | 顯示全部樓層
A financial trading database with Cassandra

TQDB @ github
關鍵字
google
僅供參考!
 樓主| 發表於 16-8-23 08:03 | 顯示全部樓層
f29825604 發表於 16-8-20 17:58
wldtw2008大大請問您
如果想用TQDB+IBSim讓MC即時回補盤中1Min資料
再組合成2Min,10Min,20Min,56Min

我現在就是這樣用,效果非常滿意。

發表於 16-8-23 09:18 | 顯示全部樓層
wldtw2008 發表於 16-8-23 08:03
我現在就是這樣用,效果非常滿意。

讚讚讚!果然是重量級武器


問題:

有沒有考慮當1分資料源的供給伺服端
會不會花費很多建置成本



 樓主| 發表於 16-8-23 17:07 | 顯示全部樓層
f29825604 發表於 16-8-23 09:18
讚讚讚!果然是重量級武器

您的意思是對外服務嗎?
目前暫時沒有這個打算,因為工作、家庭(小孩還小很纏人),ˊ實在沒有多餘的時間維運。

發表於 16-8-25 18:06 | 顯示全部樓層
本帖最後由 f29825604 於 16-8-25 18:30 編輯

wldtw2008大大請您
花一些時間看一下

https://yunpan.cn/ccPZUngCdCKTn

所有文件\-eleader-Strategy\eleader-Strategy\160328m61upt1

focus : 獲利成交次數比 100%

值不值得試看看在TQDB上面開發這個python策略
不是電腦挑選的
最沒效率的純手工打造
也不能保證一定會獲利

僅供參考!
祝福您!
闔家平安!



評分

參與人數 1金錢 +1 收起 理由
wldtw2008 + 1 對不起,這已經跟這帖文章沒有關係了,要聊.

查看全部評分

發表於 16-8-26 12:15 | 顯示全部樓層
突然想到
可以反向試試看
手工挑了一些圖
所有文件\-eleader-Strategy\eleader-Strategy\160328m61dnt1
僅供參考!
祝福您!
闔家平安!

評分

參與人數 1金錢 +1 收起 理由
wldtw2008 + 1 對不起,這已經跟這帖文章沒有關係了,要聊.

查看全部評分

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-12-28 16:24

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |