1. 什么是股票
1.1 股票的定義及其誕生所解決的問題
股票的定義:股票是一種有價(jià)證券鳄厌,是股份有限公司公開發(fā)行的用以證明投資者的股東身份和權(quán)益又谋,并據(jù)以獲得股息和紅利的憑證拼缝。
首先回答一個(gè)問題:股票的誕生是為了解決什么問題娱局?
- 對(duì)于企業(yè)經(jīng)營者,要考慮的問題是:想要做大生意咧七,所需要的財(cái)力和面臨的風(fēng)險(xiǎn)不是少數(shù)幾個(gè)人能承擔(dān)的衰齐。
- 對(duì)于資本家,他們有資金猪叙,但他們往往不希望親自花費(fèi)精力或者不具備相應(yīng)的專業(yè)技能去經(jīng)營企業(yè)娇斩。
- 股票的出現(xiàn),是為了滿足所有權(quán)與經(jīng)營權(quán)的分立穴翩,所達(dá)成的效果就是對(duì)于一個(gè)企業(yè),經(jīng)營它的人不一定是擁有它的人锦积。
- 經(jīng)營權(quán)芒帕,掌握在專業(yè)團(tuán)隊(duì)即企業(yè)經(jīng)營者手中。
- 所有權(quán)丰介,掌握在資本家或者說投資者手中背蟆。
企業(yè)所有權(quán)與經(jīng)營權(quán)分離由此得到解決,經(jīng)營者可以向社會(huì)募集資金發(fā)行股票籌錢哮幢,股票從而就能夠成為對(duì)于擁有企業(yè)所有權(quán)的憑證带膀,所有權(quán)即可按照投資者出資即所購買的股本數(shù)的多少來分配,從而達(dá)成一個(gè)雙贏的局面橙垢。
1.2 股票的主體和流通
資本家(投資者):
- 希望躺著賺錢拿分紅垛叨,而不用操心經(jīng)營,特別對(duì)于有很多會(huì)去向多家公司投資資金的投資者柜某;
- 由于企業(yè)的股份切分的很細(xì)嗽元,可以隨心所欲地買入或賣出特定份額的股份(這對(duì)于經(jīng)營者來說也降低投資的門檻可以獲得更多的資金,同時(shí)提高流動(dòng)性)喂击。
企業(yè)經(jīng)營者(專業(yè)團(tuán)隊(duì)):
- 只需要有企業(yè)經(jīng)營管理方面的專業(yè)技能和有管理企業(yè)的精力剂癌,不用太擔(dān)心資金的問題。
企業(yè)經(jīng)營者籌資的機(jī)制翰绊,即把企業(yè)的所有權(quán)像切披薩一樣佩谷,分割成很多很多份(股本):
一級(jí)市場(chǎng):企業(yè)經(jīng)營者首次上市公開發(fā)行(IPO),按一定的價(jià)格去售賣給投資者监嗜。
二級(jí)市場(chǎng):投資者之間相互轉(zhuǎn)賣股票谐檀,所交易對(duì)象是已經(jīng)發(fā)行過而正在流通的股票。
國內(nèi)的量化投資和算法交易一般是針對(duì)于二級(jí)市場(chǎng)秤茅,因?yàn)槎?jí)市場(chǎng)信息比較透明稚补,數(shù)據(jù)也更結(jié)構(gòu)化,相比之下一級(jí)市場(chǎng)能夠得到的信息就非常有限框喳。
1.3 股票的常規(guī)分類
股票的最常規(guī)性的分類课幕,是根據(jù)股東所享有的權(quán)利的不同厦坛,分為普通股和優(yōu)先股:
普通股:
- 最基本最常見的一種股票,直接代表公司所有權(quán)的份額乍惊;
- 每份普通股都賦予其所有者在年度股東大會(huì)上對(duì)公司治理事務(wù)的一份投票權(quán)杜秸;
- 同時(shí)也代表了對(duì)公司財(cái)務(wù)利益的一份索取權(quán)。
優(yōu)先股(了解即可):
- 具有權(quán)益與債務(wù)的雙重特征润绎;
- 類似于債券撬碟,它向持有者承諾每年支付固定的收益,類似于永久債券莉撇;
- 不同于債券呢蛤,它是一種權(quán)益投資,公司保留向優(yōu)先股股東支付股利的自主權(quán)棍郎;
- 優(yōu)先股沒有賦予參與公司決策的權(quán)利其障。
2. 股票價(jià)格收益率
2.1 什么是股票價(jià)格的收益率
一般比起股票價(jià)格的絕對(duì)大小,我們更關(guān)心的是股票價(jià)格的變化及波動(dòng)情況涂佃。我們通常用收益率(Return Rate)來衡量股價(jià)的變化励翼。
:當(dāng)我們討論一個(gè)金融資產(chǎn)(如股票)的收益率時(shí),并不是說它給我們的賬戶帶來多少比例的收入辜荠,而是指它的價(jià)格的漲跌幅(即變化率)汽抚。
衡量股票收益率的算法有兩種:
簡單收益率
對(duì)數(shù)收益率
其中為
時(shí)間點(diǎn)的股票價(jià)格。
在金融行情數(shù)據(jù)及軟件上看到的漲跌幅伯病,以及日常民間做股票投資所說的收益率造烁,都是股票的簡單收益率,但在金融投資方面做數(shù)學(xué)建挠樱或者做學(xué)術(shù)研究就要特別關(guān)注對(duì)數(shù)收益率膨蛮。
2.2 股票價(jià)格收益率計(jì)算在python中的實(shí)現(xiàn)
- 簡單收益率
1)方法一:pandas.Series.pct_change()
simple_ret = data['close'].pct_change()
2)方法二:pandas.Series.shift()
simple_ret = data['close'] / data['close'].shift(1) - 1
3)方法三:按定義寫循環(huán)計(jì)算
simple_ret = pd.Series(index = data['close'].index, dtype = float)
for i in range(len(simple_ret)):
if i > 0:
simple_ret[i] = data['close'][i] / data['close'][i-1] - 1
4)方法四:用Numpy數(shù)值向量化計(jì)算
close_array = data['close'].values
simple_ret = close_array[1:] / close_array[:-1] - 1
- 對(duì)數(shù)收益率
方法:直接用Numpy數(shù)值向量化計(jì)算
close_array = data['close'].values
log_ret = np.log(close_array[1:] / close_array[:-1])
一些關(guān)于收益率寫程序計(jì)算的小結(jié):
循環(huán)計(jì)算非常慢,在用python進(jìn)行數(shù)值計(jì)算時(shí)能不用循環(huán)就不用循環(huán)季研,盡量用向量化運(yùn)算
pandas的數(shù)據(jù)結(jié)構(gòu)為了便利性犧牲了性能敞葛,因此當(dāng)要進(jìn)行重度數(shù)值運(yùn)算時(shí),推薦優(yōu)先用numpy与涡,不用pandas直接內(nèi)設(shè)的函數(shù)
運(yùn)行效率快有什么用惹谐?僅僅就是省幾毫秒的運(yùn)行時(shí)間?
其一驼卖,當(dāng)你要跑策略回測(cè)的時(shí)候氨肌,幾乎每根K線都要跑同樣的運(yùn)算,假設(shè)我們只考慮一只股票酌畜,10年的日數(shù)據(jù)怎囚,那也得跑2250次(10*225=2250) ,如果我的策略要考慮上千只股票呢?如果我要做分鐘數(shù)據(jù)呢恳守?
其二考婴,當(dāng)你要做高頻策略實(shí)盤時(shí),比別人慢幾微秒可能就搶不到單了催烘。(注:不是人寫程序?qū)懙目炝ぺ澹浅绦蜻\(yùn)行的效率高)
2.3 兩種收益率算法的特點(diǎn)及應(yīng)用場(chǎng)合
簡單收益率的特點(diǎn):
(1) 簡單直觀
金融行情數(shù)據(jù)一般都是用簡單收益率
(2) 截面可加性
即對(duì)于給定單期時(shí)間區(qū)間t-1到t,有n個(gè)金融資產(chǎn)(如股票)的簡單收益率分別為
對(duì)于這n個(gè)資產(chǎn)按,(
)的比例的投資組合W
其簡單收益率就直接是n個(gè)資產(chǎn)簡單收益率的線性加權(quán)之和:
:對(duì)數(shù)收益率就沒有截面可加性的特征伊群。
(3)時(shí)間序列不可加性
如資產(chǎn)組合第一天的簡單收益率為1%考杉,第二天的簡單收益率為-1%,則不可將這兩天每天的簡單收益率去加總?cè)∑骄⑹迹缓笕サ贸鲞@兩天的簡單收益率為0的結(jié)論崇棠,實(shí)際上這種情況是有虧損的。
對(duì)數(shù)收益率的特點(diǎn)
(1) 時(shí)間序列可加性
對(duì)于特定資產(chǎn)W蔽午,其0到T期各期的的對(duì)數(shù)收益率分別為
則資產(chǎn)0到T期的對(duì)數(shù)收益率可為期間各期的對(duì)數(shù)收益率之和:
簡單收益率沒有時(shí)間序列可加性。
(2) 截面不可加性
(3) 若資產(chǎn)價(jià)格服從對(duì)數(shù)正態(tài)分布(一般對(duì)金融資產(chǎn)會(huì)有這樣的假定),則可以推出資產(chǎn)的對(duì)數(shù)收益率服從正態(tài)分布
綜合以上特性:
在一般的金融投資建模宾肺、考慮多期收益率時(shí)奔浅,用對(duì)數(shù)收益率;
描述投資組合單期的區(qū)間收益率酥筝,用簡單收益率。
3. 股票交易規(guī)則
3.1 場(chǎng)內(nèi)交易與場(chǎng)外交易
場(chǎng)內(nèi)交易
證券交易所:設(shè)有固定場(chǎng)地、北郵各種服務(wù)設(shè)施(如行情板僧鲁、電視屏幕、電子計(jì)算機(jī)象泵、電話寞秃、電傳等等),配備了必要的管理和服務(wù)人員偶惠,集中進(jìn)行股票和其他證券買賣的場(chǎng)所春寿。
- 在證券交易所進(jìn)行的股票買賣活動(dòng),就稱為場(chǎng)內(nèi)交易忽孽。
- 目前在世界各國绑改,大部分股票的流通轉(zhuǎn)讓交易都是在證券交易所內(nèi)進(jìn)行的。因此兄一,證券交易所是股票流通市場(chǎng)的核心厘线。
- 我國的場(chǎng)內(nèi)交易市場(chǎng),主要包括主板市場(chǎng)(含中小板)出革、創(chuàng)業(yè)板市場(chǎng)造壮、科創(chuàng)板市場(chǎng)和新三板市場(chǎng)(2005.09.01)。
- 在我國骂束,進(jìn)行股票場(chǎng)內(nèi)交易市場(chǎng)的證券交易所耳璧,是上海證券交易所和深圳證券交易所成箫。
場(chǎng)外交易
場(chǎng)外交易是場(chǎng)內(nèi)交易的對(duì)稱,亦稱店頭交易楞抡、直接交易伟众。在證券交易所之外所進(jìn)行的證券交易。
我國的場(chǎng)外交易市場(chǎng)召廷,主要包括私募基金市場(chǎng)凳厢、區(qū)域股權(quán)市場(chǎng)、券商柜臺(tái)市場(chǎng)竞慢、機(jī)構(gòu)間私募產(chǎn)品報(bào)價(jià)與服務(wù)系統(tǒng)先紫。
3.2 A股、B股筹煮、H股
我國的上市公司的股票有A股遮精,B股,H股等的區(qū)分败潦,這一區(qū)分主要是依據(jù)股票的上市地點(diǎn)和所面對(duì)的投資者而定本冲。
A股:正式名稱為人民幣普通股股票。它是由我國境內(nèi)的公司發(fā)行劫扒、供境內(nèi)機(jī)構(gòu)檬洞、組織或個(gè)人(不含港澳臺(tái)投資者)以人民幣認(rèn)購和交易的普通股股票。
B股:正式名稱為人民幣特種股票沟饥。它是以人民幣標(biāo)明面值添怔,以外幣認(rèn)購和買賣,在境內(nèi)(上海深圳)證券交易所上市交易額的股票贤旷。在2001年2月前广料,B股的投資人僅限于:外國的自然人、法人和其他組織幼驶,港澳臺(tái)地區(qū)的自然人艾杏、法人和其他組織,定居在國外的中國居民县遣,以及中國證監(jiān)會(huì)規(guī)定的其他投資人糜颠。2001年2月19日之后,中國證監(jiān)會(huì)宣布對(duì)內(nèi)開放B股市場(chǎng)萧求,準(zhǔn)許持有合法外匯的境內(nèi)居民自由開戶買賣B股其兴。
H股:指注冊(cè)地在內(nèi)地、上市地在香港的中資企業(yè)股票夸政。H股為實(shí)物股票元旬,實(shí)行“T+0”交割制度、無漲跌幅限制。中國大陸地區(qū)機(jī)構(gòu)投資者和個(gè)人投資者均可以投資H股匀归,但大陸地區(qū)個(gè)人投資者證券賬戶和資金賬戶之和需超過50萬元坑资。
在大陸進(jìn)行股票的量化交易,主要是針對(duì)在上海證券交易所和深圳證券交易所上市的A股
3.3 國內(nèi)多層次的資本市場(chǎng)
資本市場(chǎng)的層次結(jié)構(gòu):指資本市場(chǎng)根據(jù)企業(yè)在不同發(fā)展階段的融資需求和融資特點(diǎn)穆端,針對(duì)各種市場(chǎng)主體不同的袱贮、特定需求,提供的具有不同內(nèi)在邏輯次序体啰、不同服務(wù)對(duì)象和不同內(nèi)在特點(diǎn)的市場(chǎng)形式攒巍。一般來說是個(gè)比較中國化的概念。
我國資本市場(chǎng)體系結(jié)構(gòu)表現(xiàn)為:
場(chǎng)內(nèi)市場(chǎng):(風(fēng)險(xiǎn)從上到下逐漸遞增)
(1) 主板市場(chǎng)
- 1990.12.19上交所正式營業(yè)荒勇,交易代碼60開頭柒莉;1991年7月3日,深交所成立沽翔,交易代碼00開頭兢孝。
- 主要交易股票為滬、深交易所的大盤仅偎,藍(lán)籌股跨蟹。
(2) 中小板市場(chǎng)
- 2004年5月17日中小板成立,交易代碼002開頭橘沥。
- 主要交易股票為深交所上市的中型穩(wěn)定發(fā)展企業(yè)股票喷市。
(3) 創(chuàng)業(yè)板
- 2009年10月23日創(chuàng)業(yè)板市場(chǎng)在深圳證券交易所正式啟動(dòng),交易代碼300開頭威恼。
- 主要交易股票為深交所上市的科技成長型企業(yè)股票。
(4) 科創(chuàng)板
- 2008年11月5日科創(chuàng)板成立寝并,交易代碼95開頭箫措。
- 主要交易股票為上交所上市的科技創(chuàng)新型企業(yè)。
(5) 新三板市場(chǎng)(全國股權(quán)轉(zhuǎn)讓系統(tǒng))
- 2013年1月6日新三板正式運(yùn)營衬潦,舊的交易代碼430開頭斤蔓,新的交易代碼830開頭。
- 2015年9月1日起镀岛,新三板市場(chǎng)從官方信息來講弦牡,被歸類為場(chǎng)內(nèi)市場(chǎng)。
- 主要交易股票為創(chuàng)新創(chuàng)業(yè)型中小企業(yè)股票漂羊。
場(chǎng)外市場(chǎng):
- 私募基金市場(chǎng)/區(qū)域股權(quán)市場(chǎng)/券商柜臺(tái)市場(chǎng)/機(jī)構(gòu)間私募產(chǎn)品報(bào)價(jià)與服務(wù)系統(tǒng)驾锰。
- 2015年5月推出新四板,中小企業(yè)股權(quán)報(bào)價(jià)系統(tǒng)(Q板)走越,非上市股份轉(zhuǎn)讓系統(tǒng)(E板)椭豫。
- 交易股票為其他中小微企業(yè)。
3.4 股票交易指令和撮合機(jī)制
交易指令:
(1)買入:
支出現(xiàn)金,按成交價(jià)格股數(shù)赏酥,買入股票喳整。
(2)賣出:
按成交價(jià)格股數(shù),賣出股票換回現(xiàn)金裸扶。
訂單類型:
(1)市價(jià):
不考慮價(jià)格框都,直接按市場(chǎng)上存在的最優(yōu)價(jià)買入/賣出股票。成交速度快呵晨,但往往交易成本高魏保。
(2)限價(jià):
指定期望成交的價(jià)格,不一定能很快成交何荚,但能夠保證成交的價(jià)格等于或優(yōu)于指定價(jià)格囱淋。
撮合機(jī)制:
- 證券交易所內(nèi)的證券交易按價(jià)格優(yōu)先,時(shí)間優(yōu)先原則競(jìng)價(jià)成交餐塘。
- 價(jià)格優(yōu)先是指妥衣,價(jià)格較高的買入申報(bào)優(yōu)先于價(jià)格較低的買入申報(bào)達(dá)成買進(jìn)成交,價(jià)格較低的賣出申報(bào)優(yōu)先于價(jià)格較高的賣出申報(bào)達(dá)成賣出成交戒傻。
- 時(shí)間優(yōu)先是指税手,同價(jià)位申報(bào)時(shí),依照申報(bào)時(shí)序決定優(yōu)先順序需纳。電腦申報(bào)競(jìng)價(jià)時(shí)芦倒,按計(jì)算機(jī)主機(jī)接受的時(shí)間順序排列。
3.5 股票交易時(shí)間
- 股市交易時(shí)間為每周一到周五上午時(shí)段9:30-11:30不翩,下午時(shí)段13:00-15:00兵扬。
- 周六、周日及上海證券交易所口蝠、深圳證券交易所公告的休市日不交易器钟。
- 對(duì)于單個(gè)股票,有時(shí)遇到突發(fā)事件則會(huì)停牌妙蔗,停牌時(shí)無法交易傲霸。
Atrader庫中的get_trading_days()函數(shù)可獲得一個(gè)市場(chǎng)在一個(gè)時(shí)段內(nèi)的交易日列表。
示例:
import atrader as at
# 獲取上交所2018-01-01至2018-01-06的交易日期列表
trad_days = at.get_trading_days(market = 'sse', begin_date = '2018-01-01', end_date = '2018-01-06')
print(trad_days)
輸出結(jié)果如下:
3.6 股票交易成本
對(duì)于量化交易眉反,股票的交易成本是一個(gè)重點(diǎn)需要納入考慮的因素昙啄。
交易手續(xù)費(fèi):
交易手續(xù)費(fèi),是在股票交易時(shí)需要支付的款項(xiàng)寸五,包括:
(1)券商交易傭金:
最高為成交金額的3‰梳凛,最低5元起,單筆交易傭金不滿5元按5元收取播歼。
(2)印花稅:
成交金額的1‰伶跷,向賣方單邊征收掰读。
(3)過戶費(fèi):
每1000股收取1元,不足1000股則按1元收取叭莫。(僅上交所收鹊讣)
(4)監(jiān)管費(fèi):
約為成交金額的0.2‰
滑點(diǎn)-市場(chǎng)沖擊成本:
短時(shí)間內(nèi)在市場(chǎng)上進(jìn)行大規(guī)模的交易,會(huì)把市場(chǎng)價(jià)格往對(duì)自己不利的一邊推動(dòng)雇初,進(jìn)而會(huì)增加交易成本拢肆。
3.7 股票復(fù)權(quán)
復(fù)權(quán)是個(gè)股票交易中,容易出錯(cuò)或者遺漏的地方靖诗。對(duì)于股票送轉(zhuǎn)除權(quán)(配股郭怪、轉(zhuǎn)增)、或者除息后刊橘,股價(jià)隨之產(chǎn)生了變化鄙才,但股票的實(shí)際成本并沒有發(fā)生變化。
如:某上市公司于某日進(jìn)行預(yù)案公告日會(huì)進(jìn)行分紅促绵,除權(quán)除息前股價(jià)為每股33.20元攒庵。在派息日每10股派現(xiàn)金分紅6元,每10股送轉(zhuǎn)10股败晴,則派息日之后股票的價(jià)格變?yōu)椋?br>
在分紅之后浓冒,投資者賬戶中的股票數(shù)和賬戶金額也變化使得持有資產(chǎn)的總市值不變,所以在派息日股價(jià)從33.20元變到15.80元不意味著是使投資者巨額虧損的現(xiàn)象尖坤,所以不能以分紅后的每股15.80元和分紅前的33.20元跨分紅期來計(jì)算這段時(shí)間的收益率稳懒,均線,MACD等指標(biāo)慢味。
跨分紅期场梆,不復(fù)權(quán)的股票價(jià)格行情圖:
因此在需要計(jì)算有跨分紅期的時(shí)間段的收益率等指標(biāo)時(shí),需要對(duì)股票價(jià)格進(jìn)行復(fù)權(quán)的操作纯路。
復(fù)權(quán):就是對(duì)股價(jià)和成交量進(jìn)行權(quán)息修復(fù)辙谜,按照股票的實(shí)際漲跌繪制股價(jià)走勢(shì)圖,并把成交量調(diào)整為相同的股本口徑感昼。
股票復(fù)權(quán)的算法,有前復(fù)權(quán)和后復(fù)權(quán)兩種罐脊。
前復(fù)權(quán):即向前復(fù)權(quán)定嗓,就是保持現(xiàn)有的價(jià)位不變,將以前的價(jià)格縮減萍桌,將除權(quán)除息之前的K線向下平移宵溅,時(shí)K線圖形連貫吻合,保持股價(jià)走勢(shì)的連續(xù)性上炎。
跨分紅期恃逻,做前復(fù)權(quán)后的股票價(jià)格行情圖:
后復(fù)權(quán):即后向復(fù)權(quán)雏搂,保持先前的價(jià)格不變,而將以后的價(jià)格增加向上平移寇损。
跨分紅期凸郑,做后復(fù)權(quán)后的股票價(jià)格行情圖:
前復(fù)權(quán)以當(dāng)前股價(jià)為基數(shù),后復(fù)權(quán)以上市價(jià)為基數(shù)矛市。
小結(jié):
- 不復(fù)權(quán)芙沥,會(huì)帶來價(jià)格突變的影響,由此一來像均線浊吏、MACD等技術(shù)指標(biāo)將計(jì)算失真而昨。
- 前復(fù)權(quán),由于用到了現(xiàn)在的數(shù)據(jù)來調(diào)整過去的數(shù)據(jù)(在調(diào)整歷史行情的數(shù)據(jù)的時(shí)候引入了其時(shí)點(diǎn)不該看到的數(shù)據(jù))找田,在回測(cè)中會(huì)引入“前視性偏差”歌憨。
- 因此,在對(duì)一個(gè)投資策略做回測(cè)的時(shí)候建議使用后復(fù)權(quán)的行情數(shù)據(jù)墩衙。
4. 股票數(shù)據(jù)介紹與提取
4.1 行業(yè)分類和指數(shù)
行業(yè)分類
行業(yè)分類有兩大類別务嫡,分別是申萬行業(yè)分類以及證監(jiān)會(huì)行業(yè)分類,其中申萬行業(yè)分類涵蓋3級(jí)分類底桂,證監(jiān)會(huì)行業(yè)分類涵蓋2級(jí)分類植袍。
通過Atrader軟件可通過get_code_list函數(shù)接口獲取行業(yè)代碼及特定行業(yè)的成分股。
get_code_list - 獲取指數(shù)行業(yè)成分股和權(quán)重
案例:
1)獲取申萬行業(yè)和證監(jiān)會(huì)行業(yè)分類的所有行業(yè)類別的代碼:
import atrader as at
dfCode = at.get_code_list(‘plate_industry’)
dfCode.head()
運(yùn)行結(jié)果如下:
2)根據(jù)行業(yè)AT代碼對(duì)照表的行業(yè)簡稱字段獲取行業(yè)的成分股數(shù)據(jù)籽懦,如獲取三級(jí)分類:申萬白酒(’SWBJ3')行業(yè)的成分股有哪些:
import atrader as at
dfCode = at.get_code_list('SWBJ3')
print(dfCode)
運(yùn)行結(jié)果如下于个,以下這些成分股就是當(dāng)前被申萬行業(yè)分類歸類在三級(jí)分類白酒中:
AT中提供的行業(yè)板塊劃分?jǐn)?shù)據(jù)說明,詳見:http://www.digquant.com.cn/document下的“行業(yè)”模塊暮顺。
指數(shù)
股票價(jià)格指數(shù):簡稱股指厅篓,是基于報(bào)告期的一組股票價(jià)格與基期的一組股票價(jià)格進(jìn)行平均計(jì)算和動(dòng)態(tài)對(duì)比后得出的。反映一個(gè)國家或地區(qū)捶码、某一行業(yè)或主題的股票市場(chǎng)價(jià)格水平及其變動(dòng)趨勢(shì)的動(dòng)態(tài)相對(duì)數(shù)羽氮。
- 投資者一般會(huì)根據(jù)股票指數(shù)檢驗(yàn)自己投資的效果,并用以預(yù)測(cè)股票市場(chǎng)動(dòng)向惫恼。
- 新聞界档押、公司老板乃至政界領(lǐng)導(dǎo)人等也以此為參考指標(biāo),來觀察祈纯、預(yù)測(cè)社會(huì)政治令宿、經(jīng)濟(jì)發(fā)展形勢(shì)。
- 常見的股票指數(shù)有上證指數(shù)腕窥、滬深300指數(shù)粒没、中證500指數(shù)、上證50指數(shù)簇爆、創(chuàng)業(yè)板指數(shù)癞松、中小板指數(shù)等爽撒。
同樣,通過Atrader軟件可通過get_code_list函數(shù)接口獲取股票指數(shù)列表及特定股指的成分股信息响蓉。
案例:
1)獲取Atrader庫中所有股指的基本信息:
import atrader as at
dfIndex = at.get_code_list('index')
print(dfIndex)
運(yùn)行結(jié)果如下:
2)獲取“滬深300(hs300)”股指的成分股信息及權(quán)重:
import atrader as at
hs300 = at.get_code_list('hs300')
print(hs300.head())
運(yùn)行結(jié)果如下:
AT中提供的股票指數(shù)數(shù)據(jù)說明硕勿,詳見:http://www.digquant.com.cn/document下的“指數(shù)”模塊。
4.2 行情數(shù)據(jù)
股票行情數(shù)據(jù)厕妖,包括K線和Tick數(shù)據(jù)首尼。
K線
K線:又稱“蠟燭線”,是反映價(jià)格走勢(shì)的一種圖線言秸,其特色在于一個(gè)線段內(nèi)記錄了多項(xiàng)訊息软能,一個(gè)完整的K線,包括一段個(gè)時(shí)間段內(nèi)(可以是幾分鐘举畸,一小時(shí)查排,一天,一周抄沮,一個(gè)月甚至一年)的最高價(jià)跋核、最低價(jià)、開盤價(jià)和收盤價(jià)叛买,相當(dāng)易讀易懂且實(shí)用有效砂代,廣泛用于股票、期貨率挣、貴金屬刻伊、數(shù)字貨幣等行情的技術(shù)分析。
- 一根K線我們常常稱為一個(gè)Bar椒功,行情軟件中最常見的行情就是K線捶箱。
- 基于若干個(gè)Bar的組合或形態(tài)來預(yù)測(cè)股票未來走勢(shì)的技術(shù)分析(很玄學(xué)性),稱為K線技術(shù)分析动漾。
- 一個(gè)時(shí)段內(nèi)丁屎,收盤價(jià)高于開盤價(jià)的K線稱為陽線,收盤價(jià)低于開盤價(jià)的K線稱為陰線旱眯。
- 在大陸行情表示傳統(tǒng)上晨川,陽線上漲表示為紅色,陰線下跌表示為綠色(但在美國就反過來陽線上漲表示為綠色删豺,陰線下跌表示為紅色)础爬。
Atrader中,提供get_kdata吼鳞,get_kdata_n函數(shù)接口來獲取歷史K線行情數(shù)據(jù)。
get_kdata - 獲取歷史行情數(shù)據(jù)
案例:
1)獲取平安銀行股票(szse.000001)2020年01月01日至2020年07月30日的日行情數(shù)據(jù):
import atrader as at
dfData = at.get_kdata(target_list = ['szse.000001'],
frequency = 'day',
fre_num = 1,
begin_date = '2020-01-01',
end_date = '2020-07-30',
fq = 1,
fill_up = False,
df = True,
sort_by_date = False)
print(dfData.head())
運(yùn)行結(jié)果如下:
2)獲取平安銀行股票(szse.000001)和貴州茅臺(tái)(sse.600519)的2020年07月01日至2020年07月31日的30min行情數(shù)據(jù):
import atrader as at
targets = ['szse.000001','sse.600519']
dfData = at.get_kdata(target_list = targets,
frequency = 'min',
fre_num = 30,
begin_date = '2020-07-01',
end_date ='2020-07-31',
fq = 1,
fill_up = False,
df = True,
sort_by_date = False)
print(dfData.head())
運(yùn)行結(jié)果如下:
get_kdata_n - 獲取n個(gè)歷史行情數(shù)據(jù)
案例:
1)獲取平安銀行股票(szse.000001)2019年08月20日往前算10個(gè)交易日的日行情數(shù)據(jù):
import atrader as at
dfData = at.get_kdata_n(target_list = ['szse.000001'],
frequency = 'day',
fre_num = 1,
n = 10,
end_date = '2020-08-20',
fill_up = False,
df = True,
fq = 1)
print(dfData)
運(yùn)行結(jié)果如下:
Tick數(shù)據(jù)
維基百科中對(duì)Tick數(shù)據(jù)的描述:
Tick data is the most granular high-frequency data available, and so is the most useful in market microstructure analysis. Unfortunately, tick data is also the most susceptible to data corruption and so must be cleaned and conditioned prior to being used for any type of analysis.
- Tick數(shù)據(jù)在國內(nèi)叫搁,就是證券交易訂單簿的一個(gè)快照赔桌。
- 對(duì)于中國股票而言供炎,一個(gè)Tick就是3秒內(nèi)的成交量,最新的成交價(jià)格疾党,最新的買賣掛單音诫。
Atrader中提供get_tick_data函數(shù)查詢單個(gè)標(biāo)的單天的tick數(shù)據(jù)。
get_tick_data - 查詢tick數(shù)據(jù)
:對(duì)于get_tick_data雪位,只能選取一只股票竭钝,且只能選一天日期,頻率固定為3秒雹洗。
案例:
1)獲取平安銀行股票(szse.000001)2020年07月30日的高頻tick行情數(shù)據(jù)
import atrader as at
dfData = at.get_tick_data(code = 'szse.000001',
date = '2020-07-30',
fq = 0,
df = True)
print(dfData.head())
運(yùn)行結(jié)果如下:
AT中提供的股票行情數(shù)據(jù)說明香罐,詳見:http://www.digquant.com.cn/document下的“股票”模塊。
4.3 因子數(shù)據(jù)
多因子模型:資產(chǎn)的收益率由特定的多個(gè)因子所決定时肿,是關(guān)于資產(chǎn)定價(jià)的模型庇茫。與資本資產(chǎn)定價(jià)模型和單指數(shù)模型不同,多因子模型認(rèn)為證券價(jià)格并不僅僅取決于證券的風(fēng)險(xiǎn)螃成,還取決于其他一些因素旦签,如,投資者未來預(yù)期收入寸宏、未來消費(fèi)品的相對(duì)價(jià)格及未來的投資機(jī)會(huì)等宁炫。
如:APT模型,描述股票的收益率跟多個(gè)因子有線性關(guān)系的影響:
在Atrade軟件中氮凝,BP股票量化因子庫是數(shù)字動(dòng)能(Bitpower)量化研究部根據(jù)上市公司財(cái)務(wù)報(bào)表羔巢,交易行情計(jì)算而成。
股票因子包含了基礎(chǔ)科目衍生類覆醇、質(zhì)量類朵纷、收益風(fēng)險(xiǎn)類、情緒類永脓、成長類袍辞、常用技術(shù)指標(biāo)類、動(dòng)量類常摧、價(jià)值類搅吁、每股指標(biāo)類、模式識(shí)別類落午、特色技術(shù)指標(biāo)谎懦、行業(yè)與分析師類共十二大類共500多個(gè)因子。投資者可以直接通過這些因子進(jìn)行單因子分析和研究溃斋,同樣也可以在策略回測(cè)中使用界拦。
因子分類介紹如下:
- 基礎(chǔ)科目衍生類:該類別主要由公司原始財(cái)報(bào)數(shù)據(jù)構(gòu)成,是其他類別數(shù)據(jù)的基礎(chǔ)梗劫。
- 質(zhì)量類:該類別因子基于上市公司的財(cái)務(wù)數(shù)據(jù)計(jì)算所得出享甸,可以更加有效的觀察公司的整體狀況截碴。
- 收益風(fēng)險(xiǎn)類:該指標(biāo)從股票收益,風(fēng)險(xiǎn)蛉威,以及風(fēng)險(xiǎn)收益比三個(gè)角度來度量股票的表現(xiàn)日丹。
- 情緒類:該指標(biāo)以成交量及換手率數(shù)據(jù)為基礎(chǔ),并結(jié)合k線數(shù)據(jù)來判斷市場(chǎng)上的資金走向蚯嫌。
- 成長類:該指標(biāo)反映了每家上市公司的成長性哲虾。
- 常用技術(shù)指標(biāo)類:該類別包含主流的技術(shù)指標(biāo),使用前復(fù)權(quán)價(jià)格計(jì)算择示,反映了股票的量價(jià)信息束凑。
- 動(dòng)量類:該指標(biāo)通過計(jì)算不同種類的價(jià)格動(dòng)量,幫助投資者綜合判斷股價(jià)的變化趨勢(shì)对妄。
- 價(jià)值類:該指標(biāo)主要反映市場(chǎng)對(duì)上市公司的估值大小湘今。
- 每股指標(biāo)類:該指標(biāo)從每股角度展現(xiàn)股票的各種盈利能力,大多數(shù)因子的計(jì)算涉及財(cái)務(wù)報(bào)表數(shù)據(jù)剪菱。
- 模式識(shí)別類:該指標(biāo)是對(duì)典型的K線模式進(jìn)行分類摩瞎,從中找出股價(jià)運(yùn)動(dòng)的規(guī)律并以此對(duì)買賣點(diǎn)進(jìn)行判斷。
- 行業(yè)與分析師類:該指標(biāo)包含分析師關(guān)于個(gè)股的預(yù)測(cè)及相關(guān)評(píng)級(jí)指標(biāo)孝常,以及個(gè)股相對(duì)于其所在行業(yè)的表現(xiàn)旗们。
- 特色技術(shù)指標(biāo):該指標(biāo)是BP運(yùn)用量價(jià)指標(biāo)計(jì)算出對(duì)于常見技術(shù)指標(biāo)的補(bǔ)充。
因子數(shù)據(jù)一般包括三個(gè)維度:股票构灸、因子和日期上渴。在Atrader庫中,從股票喜颁、因子稠氮、日期中,控制好一個(gè)維度即在一個(gè)維度中取特定對(duì)象半开,可在另外兩個(gè)維度延伸得到一個(gè)界面來獲取因子數(shù)據(jù)隔披。
get_factor_by_code - 獲取BP因子數(shù)據(jù)(單個(gè)股票)
對(duì)于選定一個(gè)股票,獲取其在一段時(shí)間內(nèi)多個(gè)因子的數(shù)據(jù)
案例:
1)獲取平安銀行(‘szse.000001’)2018年1月1日至2019年8月30日的市盈率(‘PE’)和市凈率(‘PB’)因子數(shù)據(jù):
import atrader as at
dfData = at.get_factor_by_code(factor_list = ['PE','PB'],
target = 'szse.000001',
begin_date = '2018-01-01',
end_date = '2019-08-30')
print(dfData.head(10))
運(yùn)行結(jié)果如下:
get_factor_by_day - 獲取BP因子數(shù)據(jù)(單天)
給定特定單天日期寂拆,獲取多個(gè)股票奢米,多個(gè)因子的數(shù)值
案例:
1)獲取平安銀行(‘szse.000001’)和浦發(fā)銀行(‘sse.600000’)2019年8月30日的市盈率(‘PE’)和市凈率(‘PB’)因子數(shù)據(jù):
import atrader as at
dfData = at.get_factor_by_day(factor_list = ['PE', 'PB'],
target_list = ['szse.000001','sse.600000'],
date = '2019-08-30')
print(dfData)
運(yùn)行結(jié)果如下:
get_factor_by_factor - 獲取BP因子數(shù)據(jù)(單個(gè)因子)
給定單個(gè)因子,獲取一段時(shí)間纠永,多標(biāo)的的該因子數(shù)據(jù)
案例:
1)獲取平安銀行(‘szse.000001’)和浦發(fā)銀行(‘sse.600000’)2018年1月1日至2019年8月30日的市盈率(‘PE’)因子數(shù)據(jù):
import atrader as at
dfData = at.get_factor_by_factor(factor = 'PE',
target_list = ['szse.000001','sse.600000'],
begin_date = '2018-01-01',
end_date='2019-08-30')
print(dfData.head(10))
運(yùn)行結(jié)果如下:
具體的因子庫信息及獲取詳見:http://www.digquant.com.cn/document下的“因子”模塊鬓长。
4.4 標(biāo)的數(shù)據(jù)
在Atrader中,可以用get_stock_info函數(shù)接口獲取一串股票標(biāo)的的基本信息尝江。
get_stock_info - 查詢股票標(biāo)的基本信息
查詢股票類型標(biāo)的基本信息
案例:
1)獲取平安銀行('szse.000001')和浦發(fā)銀行('sse.600000')標(biāo)的的基本信息:
import atrader as at
target_list = ['szse.000001', 'sse.600000']
data = at.get_stock_info(target_list = target_list)
print(data)
運(yùn)行結(jié)果如下:
得到股票的標(biāo)的信息包括:代碼信息涉波,一手對(duì)應(yīng)多少股,上市時(shí)間,退市時(shí)間(未退市則沒有)啤覆,證券類型和所在交易所代碼善延。
4.5 基本面數(shù)據(jù)
上市公司股票的基本面數(shù)據(jù),包括財(cái)務(wù)報(bào)表數(shù)據(jù)城侧、行情衍生數(shù)據(jù)和公司行為數(shù)據(jù)。
財(cái)務(wù)報(bào)表數(shù)據(jù)
在Atrader軟件中彼妻,可以通過調(diào)用對(duì)應(yīng)庫的函數(shù)接口嫌佑,獲取以下四類庫的財(cái)務(wù)報(bào)表數(shù)據(jù):
- bs-資產(chǎn)負(fù)債表
資產(chǎn)負(fù)債表:表示企業(yè)在一定日期(通常為各會(huì)計(jì)期末)的財(cái)務(wù)狀況(即資產(chǎn)、負(fù)債和業(yè)主權(quán)益的狀況)的主要會(huì)計(jì)報(bào)表侨歉。
- cs-現(xiàn)金流量表
現(xiàn)金流量表:是指反映企業(yè)在一定會(huì)計(jì)期間現(xiàn)金和現(xiàn)金等價(jià)物流入和流出的報(bào)表∥菀。現(xiàn)金,是指企業(yè)庫存現(xiàn)金以及可以隨時(shí)用于支付的存款∮牡耍現(xiàn)金等價(jià)物炮温,是指企業(yè)持有的期限短、流動(dòng)性強(qiáng)牵舵、易于轉(zhuǎn)換為已知金額現(xiàn)金柒啤、價(jià)值變動(dòng)風(fēng)險(xiǎn)很小的投資。
- ins-利潤表
利潤表:是用以反映公司在一定期間利潤實(shí)現(xiàn)(或發(fā)生虧損)的財(cái)務(wù)報(bào)表畸颅。它是一張動(dòng)態(tài)報(bào)表担巩。利潤表可以為報(bào)表的閱讀者提供作出合理的經(jīng)濟(jì)決策所需要的有關(guān)資料, 可用來分析利潤增減變化的原因, 公司的經(jīng)營成本, 作出投資價(jià)值評(píng)價(jià)等。
- indicator-財(cái)務(wù)指標(biāo)
財(cái)務(wù)指標(biāo):指收集傳達(dá)財(cái)務(wù)信息没炒,說明資金活動(dòng)涛癌,反映企業(yè)生產(chǎn)經(jīng)營過程和成果的經(jīng)濟(jì)指標(biāo)。是可以通過企業(yè)的財(cái)務(wù)報(bào)告中的數(shù)據(jù)計(jì)算的指標(biāo)送火。
財(cái)務(wù)報(bào)表數(shù)據(jù)獲取詳見:http://www.digquant.com.cn/document下的“財(cái)務(wù)報(bào)表數(shù)據(jù)”模塊拳话。
行情衍生數(shù)據(jù)
在Atrader軟件中,可以通過調(diào)用對(duì)應(yīng)庫的函數(shù)接口种吸,獲取以下六類庫的股票行情衍生數(shù)據(jù):
- 漲跌停幅度變動(dòng)
- 個(gè)股日資金流向
- 股票_龍虎榜
- 新股上市連板天數(shù)
- 次新股日行情
- 滬深大宗交易
行情衍生數(shù)據(jù)獲取詳見:http://www.digquant.com.cn/document下的“行情衍生數(shù)據(jù)”模塊弃衍。
公司行為數(shù)據(jù)
在Atrader軟件中,可以通過調(diào)用對(duì)應(yīng)庫的函數(shù)接口骨稿,獲取以下四類庫的公司行為相關(guān)數(shù)據(jù):
- 基本信息
- 人員信息
- 融資投資和分紅
- 重大事項(xiàng)
公司行為數(shù)據(jù)獲取詳見:http://www.digquant.com.cn/document下的“公司行為數(shù)據(jù)”模塊笨鸡。