官术网_书友最值得收藏!

2.1 期貨分筆數(shù)據(jù)

國內(nèi)商品期貨有40多種,金融期貨有5種,目前(2017年10月)由于股指期貨受到限制,現(xiàn)在最活躍的大都是商品期貨,特別是黑色系的商品期貨,比如螺紋鋼、鐵礦石等。為統(tǒng)一討論,本書一般以國內(nèi)成交量最大的螺紋鋼期貨作為例子來研究。

螺紋鋼在上海期貨交易所交易,代碼為rb,2009年上市至今已經(jīng)超過8年。螺紋鋼價(jià)格在1 500~5 000元波動(dòng),近期一般在3 000~4 000元,最小買賣價(jià)差是1,每手是10噸,因此合約價(jià)值大約是3萬~4萬元每手。

這里給出rb1710在交易日為2017年7月21日的數(shù)據(jù),如圖2-1所示。

圖2-1 螺紋分筆數(shù)據(jù)

可以看出,雖然說交易日是7月21日,但它實(shí)際上是從7月20日晚上開始。一開始的18:30的價(jià)格可以看成是前一天的結(jié)算價(jià),然后20:59:00的價(jià)格為集合競價(jià)的價(jià)格,然后21:00:00之后的價(jià)格才是真正開始交易的價(jià)格。主要的信息包括:

時(shí)間——即那筆行情發(fā)布的時(shí)間,雖精確到500毫秒,但不一定每個(gè)500毫秒都有,存在更新信息的時(shí)候才會(huì)有;

最新——即最新的成交價(jià),如果在非交易時(shí)間的這個(gè)價(jià)格,但它是前一天的結(jié)算價(jià);

持倉——當(dāng)前該合約的市場總持倉量,商品是買賣雙倍計(jì)算;

增倉——當(dāng)前時(shí)間新增加的持倉量,商品是買賣雙倍計(jì)算;

成交額——當(dāng)前時(shí)間的成交金額,即成交量乘以合約乘數(shù),商品是買賣雙倍計(jì)算;

成交量——當(dāng)前時(shí)間的成交合約數(shù)量,商品是買賣雙倍計(jì)算;

買一價(jià)——最高的買價(jià);

賣一價(jià)——最低點(diǎn)賣價(jià);

買一量——在買一價(jià)上的掛單量;

賣一量——在賣一價(jià)上的掛單量;

第一行的很多數(shù)字是零,那是因?yàn)樗l(fā)布的是結(jié)算價(jià)和前一天的成交量,買價(jià)賣價(jià)等信息不存在,所以都是零。

螺紋鋼有夜盤,因此集合競價(jià)發(fā)生在夜盤,白天開始的時(shí)候是不存在集合競價(jià)的,如圖2-2所示。

圖2-2 螺紋鋼白天價(jià)格

2.1.1 獲得數(shù)據(jù)的途徑

很多人想收集歷史行情信息,其實(shí)有很多途徑。比如有些人只需要5分鐘數(shù)據(jù),或許就可以從第三方的程序化交易平臺(tái)上下載。但有幾點(diǎn)需要注意。

(1)信息完整性。第三方平臺(tái)的5分鐘數(shù)據(jù)往往只有高開低收等K線信息,沒有掛單量和買一、賣一等微觀結(jié)構(gòu)的信息,而這些信息對(duì)精準(zhǔn)回測而言比較重要。

(2)構(gòu)造復(fù)雜因子。如果有微觀信息,可以利用5分鐘內(nèi)的這些信息構(gòu)造出更復(fù)雜的因子,雖然這些因子仍然是5分鐘頻率,但由于用到了更微觀的信息,所以構(gòu)建出來的因子會(huì)比單純的5分鐘高開低收更有效一些。

(3)換月數(shù)據(jù)。公開平臺(tái)的連續(xù)合約在換月時(shí)沒有新合約的歷史數(shù)據(jù),因此在計(jì)算因子的時(shí)候很不方便。比如最簡單的20均線,新合約只能在出現(xiàn)20根K線之后才能準(zhǔn)確算出,前面的均線多少都要用到舊合約的信息。但如果是自己構(gòu)造的K線,則不會(huì)有這個(gè)問題。或許很多人認(rèn)為這只是一個(gè)小部分,但很多時(shí)候機(jī)器學(xué)習(xí)模型就是由一個(gè)個(gè)模塊疊加而成,如果每一個(gè)模塊都引入一些誤差,那么這些誤差是逐漸疊加的,而不是誤差越多越能互相抵消的,導(dǎo)致最終的結(jié)果跟設(shè)想的很不一樣。

因此,最好從最基本的分筆數(shù)據(jù)開始,自己合成每個(gè)合約的5分鐘K線,計(jì)算相應(yīng)的因子,這樣就不會(huì)有跨合約計(jì)算同一個(gè)因子的問題,在源頭上減少誤差。

獲得分筆數(shù)據(jù)的幾個(gè)途徑有以下幾種。

(1)自己用CTP下載。這個(gè)當(dāng)然是免費(fèi)的,而且最及時(shí),可以得到一手的數(shù)據(jù),也可以對(duì)比不同行情服務(wù)器地址的數(shù)據(jù)之間的差異,以本人經(jīng)驗(yàn)來看,上海和大連的不同地方得到的數(shù)據(jù)基本一致,但鄭州的數(shù)據(jù)不大一致,有細(xì)微的差別。

(2)萬德資訊。這是國內(nèi)最常用的金融信息軟件,里面有商品的高頻數(shù)據(jù),而且支持R、Matlab、Python等接口,比較方便,但是需要收費(fèi),并且高頻數(shù)據(jù)有流量的限制。

(3)國泰安。這是國內(nèi)比較龐大的一個(gè)數(shù)據(jù)提供商,費(fèi)用也比較高,數(shù)據(jù)需要落地,因此需要本地的服務(wù)器接收,一般通過sql導(dǎo)出。

(4)淘寶。本人購買的是淘寶大富翁提供的數(shù)據(jù),盤后是100元/月,歷史數(shù)據(jù)是60元/月,如果是5檔行情會(huì)貴一些,180元/月。

如果是小私募或者個(gè)人,建議在自己下載數(shù)據(jù)的同時(shí)也購買淘寶數(shù)據(jù)作為對(duì)照,且經(jīng)濟(jì)實(shí)惠。

有了數(shù)據(jù)獲得的途徑,就可以寫一個(gè)程序,每天定時(shí)下載,自動(dòng)處理,這樣可以節(jié)約人力資源。其實(shí)現(xiàn)在很多新的發(fā)明主要作用就是節(jié)約人力資源,據(jù)說著名的高盛公司原來主要依靠銀行家和銷售人員,做的都是看起來比較高端的工作,觥籌交錯(cuò)間暢談世界經(jīng)濟(jì)金融局勢(shì),但現(xiàn)在招聘了越來越多的程序員,越來越像一家科技公司。摩根士丹利也一樣,原來交易大廳有600人,現(xiàn)在只有兩個(gè)人。后面會(huì)講到如何盤后自動(dòng)獲取數(shù)據(jù)。

2.1.2 數(shù)據(jù)儲(chǔ)存

數(shù)據(jù)下載到計(jì)算機(jī)后,如何存儲(chǔ)數(shù)據(jù)也是一個(gè)問題。如果存儲(chǔ)成csv格式,每次讀取的速度是個(gè)大問題,我們可以來測試一下各種情況下數(shù)據(jù)讀取的速度。

首先是用最簡單的read.csv命令:

可見需要43.71秒,一共161個(gè)文件。但如果我們使用速度更快的fread命令,則有:

速度變成5.36秒,只有原來的12.26%,提高了許多,而且結(jié)果是一致的:

可以看出結(jié)果是一致的。

當(dāng)然,csv文件還只是文本的格式,如果保存成R語言自己的二進(jìn)制格式,理論上說讀取速度還可以更快。為此,我們首先把csv文件存成二進(jìn)制的RData文件:

然后就可以直接調(diào)用這些二進(jìn)制文件了:

可見調(diào)用二進(jìn)制文件可以比fread還要更快一些。但如果保存成RData格式,其實(shí)多占用了一份空間,因?yàn)閏sv文件方便人工查看,因此直接使用fread可以節(jié)省保存數(shù)據(jù)的空間。當(dāng)然,如果只是希望在R語言里面使用數(shù)據(jù),只保留RData文件也是可以的,也不會(huì)因?yàn)椴恍⌒氖д`修改了數(shù)據(jù)而導(dǎo)致意外發(fā)生。因此,實(shí)際工作中可以將RData和csv文件各保存一份,平時(shí)調(diào)用RData文件,需要增減數(shù)據(jù)也容易,如果不小心篡改了,再從csv文件中重新讀取即可。

2.1.3 盤后自動(dòng)獲取

雖然說交易過程中也可以輸出收到的分筆數(shù)據(jù),但難免發(fā)生意外,專業(yè)的事情可以交給專業(yè)的機(jī)構(gòu)做,費(fèi)用也并不高。比如可以使用淘寶大富翁上的數(shù)據(jù)服務(wù),每天盤后商品一檔數(shù)據(jù)是100元/月。如果自己本身是有一定規(guī)模的私募,IT團(tuán)隊(duì)比較厲害,也可以自己做。但是事實(shí)上,現(xiàn)在程序員工資也挺高,如果僅僅做這種期貨量化,確實(shí)不太需要專門的程序員。更何況很多程序員都是C++和Java厲害,對(duì)R語言也不大懂。

例如,每天下載數(shù)據(jù)的程序可以這么寫:

關(guān)鍵點(diǎn)如下。比如我們需要下載的是某個(gè)日期之后的數(shù)據(jù),畢竟一般是每天更新,上一交易日的日期保存在commodity.latest.date中:

由于國內(nèi)是三個(gè)交易所,每次下載其中一個(gè)交易所的數(shù)據(jù)即可,比如下載上期所的數(shù)據(jù),上期所sc是第二個(gè)交易所,可以用:

另外,數(shù)據(jù)格式可能是壓縮的rar,需要運(yùn)用unrar命令解壓,在R語言里面可以直接運(yùn)行windows命令行的命令,比如把命令寫成字符串,然后用system()調(diào)用,這是以下部分:

這樣就可以每天自動(dòng)把數(shù)據(jù)下載到計(jì)算機(jī)了。如果使用萬德等第三方平臺(tái),他們會(huì)整合其他很多功能,整體收費(fèi)會(huì)比較高,因此只需要行情數(shù)據(jù)的話沒必要使用太復(fù)雜的集成化信息系統(tǒng)。但如果需要其他基本面信息,或許那些平臺(tái)更好一些。

下載完數(shù)據(jù),接下來就可以用來分析日內(nèi)策略或高頻策略,如果想研究中低頻的策略,可以使用5分鐘K線,后面會(huì)有介紹。

主站蜘蛛池模板: 宝山区| 宜君县| 和田市| 怀柔区| 自贡市| 澎湖县| 新兴县| 稻城县| 正安县| 盐源县| 宁蒗| 广灵县| 浙江省| 多伦县| 吉安县| 兴安县| 通渭县| 镇安县| 米泉市| 贡嘎县| 贺兰县| 堆龙德庆县| 子洲县| 六盘水市| 巴楚县| 汤原县| 公主岭市| 衡水市| 揭东县| 宁乡县| 仪征市| 汉沽区| 郸城县| 万全县| 长武县| 隆回县| 宿州市| 吴旗县| 新余市| 岢岚县| 翁源县|