Python量化业务实战获取股票数据并做剖析措置数据阐述任务的第一步即是获取数据,也即是数据搜罗。获取数据的式样有许众,凡是来讲, 数据来历要紧分为两大类:外部来历(外部购置、收集爬取、免费开源数据等)和内部来历 (自身企业发售数据、财政数据等)。
量化贸易(也称主动化贸易)是一种操纵数学模子助助投资者举办判别,而且依照筹划机步骤发送的指令举办贸易的投资式样,它极大地淘汰了投资者心境震动的影响。量化贸易的要紧上风如下:
量化贸易的中枢是筛选政策,政策也是依附数学或物理模子来成立,把数学说话酿成筹划机说话。量化贸易的流程是从数据的获取到数据的阐述、照料。
数据阐述任务的第一步即是获取数据,也即是数据搜罗。获取数据的式样有许众,凡是来讲, 数据来历要紧分为两大类:外部来历(外部购置、收集爬取、免费开源数据等)和内部来历 (自身企业发售数据、财政数据等)。
由于咱们不坐蓐数据,于是只可从外部获取数据。其获取途径是第三方开源库tushare。
tushare 是一个免费、开源的Python 财经数据接口包。其要紧完成对股票等金融数据从数据搜罗、冲洗加工到数据存储的进程,也许为金融阐述职员供给迅速、整洁和众样的便于阐述的数据,以减轻他们正在数据获取方面的任务量。
tushare.__version__))tushare版本号1.2.85获取个股史册贸易数据(征求均线数据),用户可能通过参数设立获取日K线分钟K线数据。本接口只可获取近3年的日线数据,适合搭配均线数据举办选股和阐述。Python 代码如下:import tushareasts
下面应用第三方库 tushare 中的 get_today_all() 两数获取全豹股票的即时数据(借使是节假日,即为上一贸易日)。代码如下:
数据的获取是数据斟酌的根基。一个迅速、切确而平静的 API会极大缩短一面获取数据的功夫,从而将斟酌者的元气心灵更众地进入数据照料与筑模中。tushare 库也是笔者获取数据的要紧式样之它为量化任务供给了平静而强壮的数据来历,从而使数据的搜罗单纯地应用一行代码就可能完成。数据预照料无论是量化政策照样纯粹的呆板进修项目,数据预照料都吵嘴常首要的一环。从量化进修的视角来看,数据预照料要紧征求数据冲洗、排序、缺失值或格外值照料、统计量阐述、干系性阐述和主因素阐述(PCA)等。
由于先前本书搜罗的都是规整股票数据,以是本章要先容的数据预照料即是预先剔除掉分歧适前提的股票数据,然后对结余股票举办优化筛选。本章要紧应用的是 Pandas 库,读者该当着重体会筛选思绪。
ST 股票一样显露对财政情形或其他情形呈现格外的上市公司股票,对其贸易要举办希奇照料(Special Treatment)。因为“希奇照料”,正在简称前冠以 ST,以是这类股票称为 ST 股。
哪支股票的名称前加上 ST,即是给墟市一个警示,该股票存正在投资危害,起戒备影响,但这种股票危害大,收益也大,借使加上*ST,就显露该股票有退市危害,要戒备的旨趣,全部即是正在 2021年4 月操纵,借使公司向证监会交的财政报外络续了年亏蚀,就有退市的危害。股票的贸易规矩也由报价日涨跌幅范围为涨幅 5%、跌幅 5%。
咱们要回避这类“地雷股”(ST 股票),于是可能应用如下代码来冲洗掉 ST 股票。
(ST)]咱们对 csv_data 的 name 列举办操作,筛选出包括 ST 字母的行,并对悉数 DataFrame 取反,进而筛选出不含 ST 股票的行。源委考察,咱们浮现正在运转结果中没有 ST 股票,完成了数据的发端冲洗。冲洗掉没成交量的股票最先要昭彰界说,什么是没有成交量的股票。没有成交量不是成交量为零,而是一支股票单元功夫的成交量不活泼。成交量是反应股市上人气聚散的一边镜子。人气兴隆、 营业踊跃,成交量自然放大:相反人气低迷、营业不活泼,成交量肯定萎缩。成交量是考察农户大户动态的有用途径。
15000000]#15万手正在以上代码中,咱们对 csv_data 的 volume 列举办操作。15 万手是过滤掉不活泼、没成交量的股票,要紧以小盘股居众。其运转结果为:Index 呈现了调行征象,即为去掉成交量小手 15 万手的股票。
成交额是成交代价与成交数目的乘积,它是指当天已成交股票的金额总数。成交最的起码取决于墟市的投资热中。咱们每天看大盘,一个首要的目标即是大 A 股成交量是否超出一万亿元,超出即为成交活泼。
]1)]筛选股票的数目没有锐减,这是由于成交额-成交代价×成交量。有些股票代价低,成交量远大,乘积刚才超出 1亿元;有些股票代价高,成交量相对小少许,乘积依旧超出1亿元。同成交额,2元股票相看待 20 元与 200 元股票,其成交量相差10 倍到 100 倍之众。同成交量,有些股票成交额为 100 亿元,相看待成交额仅有 1亿元的股票,也有百倍之众。用户可能对 1亿元这个参数举办调参,但是笔者不是希奇助助。由于将成交额变大即是对大盘股发生侧重,而前面成交量的筛选也己经对大盘股的成交量举办了侧重筛选,如此双重筛选下来,就会一齐酿成大盘股,数据偏置告急,没有合理性。预照料的思思也是先将数据举办单纯的筛选。笔者以为后期的政策相看待这里的调参更为首要,政策是日后贸易的中枢。冲洗掉换手率低的股票
换手率=某一段工夫内的成交量/流利总股数×100%。凡是情状下,大大都股票逐日换手率正在1%~2.5%之间(不征求初上市的股票)。70%股票的换手率基础正在 3%以下,3%就成为一种分界。
当一支股票的换手率正在 3%~7%之间时,该股进入相对活泼状况。当换手率正在 7%~10%之间时,则为强势股的呈现,股价处于高度活泼中。
3]筛选股票的数目减半。换手率低于 3%当然也有不错的股票,然而依照正态漫衍,咱们不抉择小概率变乱。选拔换手率较好的股票,意味着该文股票的交投越活泼,人们购置该支股票的志愿越高,该股票属于热门股。换手率商凡是意味股票流利性好,进出墟市斗劲容易,不会呈现思买买不到、思卖卖不出的征象,具有我较强的变现才略。然而值得戒备的是,换手率较高的股票,往往也是短线资金追赶的对象,取利性较强,股价流动较大,危害也相对较大。将换手率降序分列并存储数据
换手率是最首要的一个目标,于是将筛选出来的股票换手率举办降序分列并存储,以备日后取证与斟酌。
将序分列用 sort_values() 两数,存储用 to_csv() 函数。这两个函数都很常用,也斗劲单纯。代码如下:
模块化后,将去掉豪爽反复代码,重加专心一个成效,也会巩固代码的可读性。本文摘编自《Python量化贸易实战》,经出书方授权发外。(ISBN:20)