python股票量化分析_python实战之股票交易量化分析

1、打印DataFrame数据前5行和尾部倒数5行(浙大网新因重大事件停牌至1月6日开始复牌)

[mw_shl_code=python,true]print stock.head(5)

print stock.tail(5)

[/mw_shl_code]

none.gif

FgTrHaH3gFLVBD-n1rP3S_qpvugT.png (14.97 KB, 下载次数: 5)

2019-4-19 22:22 上传

2、打印DataFrame数据索引和列名,索引为时间序列,列信息为开盘价、最高价、最低价、收盘价、复权收盘价、成交量

[mw_shl_code=python,true]print stock.index

print stock.columns[/mw_shl_code]

none.gif

Fk0Wk7jOa1tI7XU_ktV08aKC0A1o.png (72.46 KB, 下载次数: 3)

2019-4-19 22:24 上传

3、打印DataFrame数据形状,index长度为248,columns数为6,即248个交易日,6项股票数据

[mw_shl_code=python,true]print stock.shape

[/mw_shl_code]

none.gif

FhRQhPJXFKNsobCYAUXKi_T45kB4.png (1.02 KB, 下载次数: 8)

2019-4-19 22:25 上传

4、打印DataFrame数据查看数据是否有缺失,以及每列数据的类型

[mw_shl_code=python,true]print stock.info()

[/mw_shl_code]

none.gif

FqHQfsPBdM-m6PV9PCDV0cW4QO1P.png (13.01 KB, 下载次数: 2)

2019-4-19 22:25 上传

5、打印DataFrame数据每组的统计情况,如最小值、最大值、均值、标准差等

[mw_shl_code=python,true]print stock.describe()[/mw_shl_code]

none.gif

Fsc7D7FzU4HUNZhzPhmVrAzp2nHl.png (17.81 KB, 下载次数: 6)

2019-4-19 22:26 上传

6、DataFrame数据中增加涨/跌幅列,涨/跌=(当日Close-上一日Close)/上一日Close*100%

(1)添加一列change,存储当日股票价格与前一日收盘价格相比的涨跌数值,即当日Close价格与上一日Close的差值,1月3日这天无上一日数据,因此出现缺失

[mw_shl_code=python,true]change = stock.Close.diff()

stock['Change'] = change

print stock.head(5)[/mw_shl_code]

none.gif

Fk6Y0PpoCdsEgWLkYneEp4j4FQHG.png (11.95 KB, 下载次数: 6)

2019-4-19 22:27 上传

(2)对缺失的数据用涨跌值的均值就地替代NaN。

[mw_shl_code=python,true]change.fillna(change.mean(),inplace=True)[/mw_shl_code]

none.gif

Frqj3urqDzkSvAyLZxF8KvfJQGtr.png (12.01 KB, 下载次数: 11)

2019-4-19 22:27 上传

(3)计算涨跌幅度有两种方法,pct_change()算法的思想即是第二项开始向前做减法后再除以第一项,计算得到涨跌幅序列。

[mw_shl_code=python,true]stock['pct_change'] = (stock['Change'] /stock['Close'].shift(1))#

stock['pct_change1'] = stock.Close.pct_change()

[/mw_shl_code]

none.gif

Fipoh9CWI3I_Fmn90OHkb3aFJBzc.png (23.88 KB, 下载次数: 11)

2019-4-19 22:28 上传

7、DataFrame数据中增加跳空缺口数值序列,这里定义的缺口为上涨趋势和下跌趋势中的突破缺口,上涨趋势中今天的最低价高于昨天收盘价为向上跳空,下跌趋势中昨天收盘价高于今天最高价为向下跳空。遍历每个交易日后将符合跳空缺口条件的交易日增加缺口数值。

[mw_shl_code=python,true]jump_pd = pd.DataFrame()

for kl_index in np.arange(1, stock.shape[0]):

today = stock.ix[kl_index]

yesday = stock.ix[kl_index-1]

today['preCloae'] = yesday.Close

if today['pct_change'] > 0 and (today.Low-today['preCloae']) > 0:

today['jump_power'] = (today.Low-today['preCloae'])

elif today['pct_change'] < 0 and (today.High-today['preCloae']) < 0:

today['jump_power'] = (today.High-today['preCloae'])

jump_pd = jump_pd.append(today)

stock['jump_power'] = jump_pd['jump_power']

print stock.loc["2017-04-26":"2017-06-15"]#默认打印全部列

[/mw_shl_code]

none.gif

Fp8IHWEtHA3Oc4ljz66Iciud0hI3.png (125.34 KB, 下载次数: 1)

2019-4-19 22:31 上传

8、DataFrame数据保留两位小数显示

[mw_shl_code=python,true]format = lambda x: '%.2f' % x

stock = stock.applymap(format)

print stock.loc["2017-04-26":"2017-06-15"]#默认打印全部列[/mw_shl_code]

none.gif

FnWYgqLiqYna59h2zZAdSiAjJU5A.png (25.33 KB, 下载次数: 6)

2019-4-19 22:32 上传

股价数据的可视化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值