Python金融数据分析教程 解放你的python编程能力 第6关金融数据的统计分析 Python金融数据分析教程 1.

Slides:



Advertisements
Similar presentations
營養午餐 嘉大附小四年二班. 形容詞豐富 鍋燒烏龍麵裡有很多料,有細細長長的麵、翠 綠的青菜、像雨傘的香菇、紅紅的蘿蔔和像圓 月的丸子。每次去盛鍋燒烏龍麵時,我都會聞 到香噴噴的味道,讓我好餓,似乎可以吃下一 頭牛。吃下第一口時,有彈牙的麵、鮮甜的青 菜、 QQ 的香菇、軟軟的丸子,還有脆脆的紅 蘿蔔。每當我吃完第一碗,就還想吃第二碗,
Advertisements

老百姓学中医. 有病靠医生? 治病靠医保? 健康靠什么? 世界卫生组织: “ 世界上三分之二的病人不是死于疾病, 而是死于无知。 ” 19 岁大男孩发高烧连续 11 天打吊瓶后出现肾衰竭 篮球、洗澡、冷饮、夜里发烧、打吊瓶、指标  西医:病毒、肾功能衰竭、换肾  中医:风寒、热铁锅浇凉水、驱寒补肾.
版 画 制 作版 画 制 作 版 画 种 类版 画 种 类 版 画 作 品版 画 作 品 刘承川.
社区矫正与和谐社区的建设 —— 以社会工作为切入点 珠勒花 内蒙古农业大学 2014 年 6 月 27 日.
《公路纵断面设计》 —— 纵断面设计的要求 道桥系 二○○七年五月. 纵断面设计的一般要求 1 .纵坡设计必须满足《公路工程技术标准》中的各项规定。 2 .为保证汽车能以一定的车速安全舒顺地行驶,纵坡应具有 — 定 的平顺性,起伏不宜过大及过于频繁。尽量避免采用极限纵坡 值.缓和坡段应自然地配合地形设置,在连续采用极限长度的.
温州地区特产.
华澳·上海中路并购分享集合资金信托计划 2014年12月.
凉山州2011级一诊考试情况分析 暨后期复习建议 四川省凉山州教育科学研究所 谌业锋.
《凉山州中长期教育改革和发展规划纲要》( 年)解读 (讲座幻灯课件请在网上下载,让我们一起思考!)
烘焙丙級麵包產品 數位學習 紅豆餡甜麵包 高雄應用科技大學 觀光管理系觀光與餐旅管理碩士班 林庭榛.
广州宜家选址分析 0连锁 李若谷 陈玉风 黄小飞 蓝柔盈.
(讲座幻灯课件请在网上下载,让我们一起思考!)
第五章 主张超尘绝俗的 佛家.
上海培训班交流材料 顶岗实习考核评价体系研究 辽宁建筑职业技术学院  孙玉红 2010年6月.
青岛国金财富投资管理股份有限公司 (青岛蓝海股权交易中心推荐机构会员、交易商会员,会员号:1063)
(讲座幻灯课件请在网上下载,让我们一起思考!)
陋室铭 商丘六中课题组 施舒姗.
硫化氢中毒及预防 硫化氢的特性与危害 硫化氢(H2S)是无色气体,有特殊的臭味(臭蛋味),易溶于水;比重比空气大,易积聚在通风不良的城市污水管道、窨井、化粪池、污水池、纸浆池以及其他各类发酵池和蔬菜腌制池等低洼处。 硫化氢属窒息性气体,是一种强烈的神经毒物。硫化氢浓度在0.4毫克/立方米时,人能明显嗅到硫化氢的臭味;70~150毫克/立方米时,吸入数分钟即发生嗅觉疲痨而闻不到臭味,浓度越高嗅觉疲劳越快,越容易使人丧失警惕;超过760毫克/立方米时,短时间内即可发生肺气肿、支气管炎、肺炎,可能引起生命危险;
政府採購法規概要 報告人:杜國正 行政院公共工程委員會企劃處.
让爱住紫荆 教师师德培训.
目 錄.
小学五年级语文第三、四单元复习 华南师大附小五年级.
第二课 扬起自信的风帆 我能“行”.
交易早餐-金融品 2017年3月11日 徽商期货研究所.
之 魔 析 妖 鬼 解 怪 大 沈家仪小组出品.
“寓言是个魔袋,袋子很小,却能从里面取出很多东西来,甚至能取出比袋子大得多的东西来。”
(讲座幻灯课件请在网上下载,让我们一起思考!)
5.5可行性分析 可行性分析的概念 策略可行性分析 操作可行性分析 回报可行性分析.
凉山州2012级一诊考试情况分析会.
(讲座幻灯课件请在网上下载,让我们一起思考!)
宏心报国,沐祖国阳光,应卧薪尝胆,苦心吞吴。 志向高远,浴名校雨露,当破釜沉舟,背水一战。
桌球腳步練習(熱身操) 1.單步(近檯,踏出一步) 跟步(近到中檯,踏出二步) 11
(讲座幻灯课件请在网上下载,让我们一起思考!)
你喝的水健康嗎? 探討飲用水的功效 製作人:孫定達.
凉山州2008级高考情况分析 暨2009届高三复习建议 ——兼谈高考学生的心理指导.
植物之繁殖方法.
(讲座幻灯课件请在网上下载,让我们一起思考!)
第五部分 特色专题 专题四 文学常识备考集萃.
2016中重卡网络规划 中重卡营销部 2016年6月.
食品營養與安全概論 蔬果汁推廣活動: 配出你的健康 台灣大學生化科技系 TA鄭雅文.
第五章 关税法 王小宁教授 三峡大学经济与管理学院.
第九章 长期资产及摊销 2017/3/21.
(讲座幻灯课件请在网上下载,让我们一起思考!)
高一数学 充分条件与必要条件 教育科学学院03级教育技术2班 刘文平.
北京中兴荣投资顾问有限公司简介.
再生能源簡介.
同学们,开始上课了,让我们伴随着乐曲,走进这节课吧!
科學科 污染 空氣 成因 的 : 題目 及 減少空氣污染的方法 陳玉玲 (4) 姓名 : 去到目錄.
屈原列传 志洁行廉,爱国忠君真气节; 辞微旨远,经天纬地大诗篇。 旨远辞高,同风雅并体; 行廉志洁,与日月同光。
Python金融数据分析教程 解放你的python编程能力 第4关 如何获取金融数据 Python金融数据分析教程 1.
也許你很疑惑: 最近升官的同事,專業能力又沒你強! 情場得意的朋友,長的又沒你帥或美! 小曹要交新朋友,為什麼就是比較簡單!
第六章 正态条件下回归的推论.
电磁学小论文 —— 带电粒子在电磁场中运动的计算机模拟程序的简单实现
詩文的形成 有意義的字詞 句子 段落 一首詩文的形成,是由有意義的字詞組成句子,再由句子組成段落。
古佳怡 網路爬蟲、分析與視覺化.
用Python建模与数据处理 俞熹 2017/1.
最大值或最小值的應用 自我評量.
網路遊戲版 幸福農場168號.
Homework 1(1/2) 本頁表格為派密(Peavy)在07年球季各場次ERA的表現,(1)請依此數據完成下頁表格之統計值並說明之;(2)並與其他三名投手之統計值比較之。(請詳述計算過程) 場次 各場次ERA
Python金融数据分析教程 解放你的python编程能力 第3关 复杂金融数据图形展示 Python金融数据分析教程 1.
國二EXCEL專案 上機考試版本: 主講者:黃韋欽 老師 考試者:國二全體學生.
教網單一入口請假系統操作步驟 人事室.
國民年金 np97006.
宝 贝.
生物统计学 Biostatistics 第一章 统计数据的收集与整理
导入新课 在上一堂课我们曾随着郦道元一起畅游三峡,领略了它的雄奇险拔、清幽秀色。其实,莽莽神州,高山大岳,千流百川,那神奇如画的风光无不让人心动神摇,今天我们再学习陶弘景的《答谢中书书》,共同欣赏一幅清丽的山水画,品味一首流动的山水诗。
大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编.
第七章 程序调试方法 异常 崩溃.
《戰國策·趙威后問齊使》.
科研工具之图表制作---Sigmaplot
Presentation transcript:

Python金融数据分析教程 解放你的python编程能力 第6关金融数据的统计分析 Python金融数据分析教程 1

课程内容 通过本课程学习,你将学习到 案例1:分析HS300股票的市值和PE的统计规律 案例2:个股日收益率的统计规律研究 案例3:金融数据分析中的随机数 闯关作业 Python金融数据分析教程

案例1:HS300股票的市值和PE的统计规律 数据准备(从quantos网站获取数据) # 获得HS300指数20180322的成份股 # 导入DataApi from jaqs.data import DataApi # 初始化api api = DataApi( 'tcp://data.quantos.org:8910' ) # 获取用户名和密码 import os user = os.environ.get("QUANTOS_USER") token = os.environ.get("QUANTOS_TOKEN") # 登录 info, msg = api.login(user, token) print(info, msg) # 获得HS300指数20180322的成份股 df, msg = api.query( view = 'lb.indexCons', filter="index_code=000300.SH&start_date=20180322&end_date=20180322" ) symbols = ",".join(df['symbol']) # 获得HS300成份股的日估值数据 df_data, msg = api.query( view = 'lb.secDailyIndicator', filter="start_date=20180322&end_date=20180322&symbol="+symbols, fields='total_mv,float_mv,pe_ttm,pb,trade_date' df_data.set_index('symbol', inplace=True) print(df_data, msg) Python金融数据分析教程

DataFrame基本数据操作 pandas.DataFrame pandas.Series df_data.head(10) df_data['pe_ttm'].head(10) pandas.DataFrame pandas.Series Python金融数据分析教程

统计分析(1) DataFrame.describe() # 用pandas的方法 df_data.describe() #df_data['total_mv'].describe() 指标 解释 Mean 平均值 Max 最大值 Min 最小值 Std 标准差 25% 25%分位点 50% 50%分位点Median 75% 75%分位点 skew 偏度 kurt 峰度 Sum 求和 Python金融数据分析教程

统计分析(2) # 用numpy更加通用的方法 import pandas as pd import numpy as np def calc_stat(label, data): # 最大、最小、平均值 print( "max", np.max(data) ) print( "min", np.min(data) ) print( "mean", np.mean(data) ) # 求和、标准差、中位数、分位数 print( "sum", np.sum(data) ) print( "std", np.std(data) ) print( "median", np.median(data) ) print( "quantile of 0.1", pd.Series(data).quantile(0.1) ) # Skew 偏度、Kurt 峰度 print( "skew", pd.Series(data).skew() ) print( "kurt", pd.Series(data).kurt() ) stat of total_mv(单位:万) --------------- max 230594848.3366 min 536334.9308 mean 11957514.437541667 sum 3587254331.2625003 std 24978620.577902168 median 5060955.281649999 quantile of 0.1 2373871.74536 skew 5.610982165125842 kurt 36.85379452009035 stat of pe_ttm max 430.9555 min 0.0 mean 35.61477733333333 sum 10684.4332 std 41.640231029982125 median 24.64495 quantile of 0.1 8.666369999999999 skew 4.907694046059864 kurt 34.897700821446975 # show total_mv calc_stat(‘total_mv(单位:万)', df_data['total_mv']) # show pe_ttm calc_stat('pe_ttm', df_data['pe_ttm']) calc_stat('pb', df_data['pb']) Python金融数据分析教程

统计分析(3) 直方图:Series.hist() # 直方图 fig = plt.figure(figsize=(16,6)) ax = fig.add_subplot(1,3,1) ax.set_title('histogram of total_mv') df_data['total_mv'].hist(bins=200, ax=ax) ax = fig.add_subplot(1,3,2) ax.set_title('histogram of pe_ttm') df_data['pe_ttm'].hist(bins=200, ax=ax) ax = fig.add_subplot(1,3,3) ax.set_title('histogram of pb') df_data['pb'].hist(bins=200, ax=ax) 直方图:Series.hist() Python金融数据分析教程

案例2 个股日收益率的统计规律研究 数据准备(从quantos网站获取数据招商银行600036.SH) # 查询日收盘价信息 df_zsyh, msg = api.daily( symbol='600036.SH', start_date='2010-01-01', end_date='2018-03-22', fields='open,high,low,close', freq='1d', adjust_mode='post' ) df_zsyh.set_index('trade_date', inplace=True) # 计算每日的对数收益率 change = df_zsyh['close'] / df_zsyh['close'].shift(1) df_zsyh['ret'] = np.log(change) # 删除第一个NA值 df_zsyh.dropna(inplace=True) print(df_zsyh) # 导入DataApi from jaqs.data import DataApi # 初始化api api = DataApi( 'tcp://data.quantos.org:8910' ) # 获取用户名和密码 import os user = os.environ.get("QUANTOS_USER") token = os.environ.get("QUANTOS_TOKEN") # 登录 info, msg = api.login(user, token) print(info, msg) DataFrame.set_index() DataFrame.dropna() Series.shift(1) Series +-*/ Series np.log(Series) Python金融数据分析教程

看看统计规律 stat of return on 600036.SH --------------- max 0.09554235997718125 min -0.10440311970149871 mean 0.0004691472226546667 sum 0.9364178564187147 std 0.01788339086714847 median 0.0 quantile of 0.1 -0.018850226358492064 skew 0.3917353762903529 kurt 4.584891892210756 # 计算一下日收益率的统计规律 calc_stat('return on 600036.SH', df_zsyh['ret']) # normalize return mean = np.mean(df_zsyh['ret']) std = np.std(df_zsyh['ret‘]) df_zsyh['ret_norm'] = ( df_zsyh['ret'] - mean ) / std # 画个直方图看看 df_zsyh['ret_norm'].hist(bins=100) Python金融数据分析教程

正态分布的检验 p值太小,不符合正态分布的特点 scipy.stats.probplot() 画出qq图 ## QQ-plot 图 import scipy.stats as stats import matplotlib.pyplot as plt plt.figure(figsize=(8,8)) stats.probplot( df_zsyh['ret_norm'], dist="norm", plot=plt ) # 正态分布检验 print(stats.normaltest(df_zsyh['ret_norm'])) print(stats.shapiro(df_zsyh['ret_norm'])) NormaltestResult(statistic=258.8425994377053, pvalue=6.20931498699053e-57) (0.9375563263893127, 3.5073531514411287e-28) p值太小,不符合正态分布的特点 scipy.stats.probplot() 画出qq图 Python金融数据分析教程

计算累计收益率 Series.apply(func) 对每个元素调用func 返回另一个Series Series.cumsum() import datetime def int2datetime(date): dt = datetime.datetime.strptime(str(date), '%Y%m%d') return dt # 累计收益率 cumsum, cumprod cum_ret = df_zsyh['ret'].cumsum().apply(np.exp) x_axis = pd.Series(cum_ret.index).apply(int2datetime) plt.figure(figsize=(12,8)) plt.plot(x_axis, cum_ret) Series.apply(func) 对每个元素调用func 返回另一个Series Series.cumsum() y1=x1 y2=x1+x2 y3=x1+x2+x3 y4=x1+x2+x3+x4 Python金融数据分析教程

案例3 金融数据分析中的随机数 np.random.random() np.random.normal() import numpy as np import math # 一维随机数组,【0,1】间的均匀分布 sim_data = np.random.random(1000000) pd.Series(sim_data).hist(bins = 100) # 一维随机数组,【0,1】间的正态分布 sim_data = np.random.normal(0,1,1000000) print(stats.normaltest(sim_data)) # 二维随机数组,【0,1】间的均匀分布 sim_data = np.random.rand(5,5) print(sim_data) print(stats.kstest(sim_data, 'uniform')) # 产生某一段区间内的随机数,均匀分布 sim_data = np.random.randint(10,20, 1000000) calc_stat('uniform sample data', sim_data) np.random.random() np.random.normal() np.random.randint() scipy.stats.normaltest() scipy.stats.kstest() Python金融数据分析教程

利用蒙特卡罗模拟计算 扇形面积 = 蓝点 / (蓝点 + 红点) 扔的点越多,结果误差越小 # 画一个扇形和一个正方形 r = 1.0 a, b = (0, 0) # 方法:参数方程 theta = np.arange(0, 0.5*np.pi, 0.01) x = a + r * np.cos(theta) y = b + r * np.sin(theta) fig = plt.figure() axes = fig.add_subplot(111) axes.plot(x, y, color='blue') axes.hlines(0, 0, 1, color='blue') axes.hlines(1, 0, 1, color='red') axes.vlines(0, 0, 1, color='blue') axes.vlines(1, 0, 1, color='red') axes.axis('equal') # 随机模拟,点落到扇形内部有效 size = 500 x = np.random.rand(size) y = np.random.rand(size) count = 0 for i in range(size): temp = math.pow(x[i], 2) + math.pow(y[i],2) if temp <= 1: axes.plot(x[i], y[i], 'bo') count = count + 1 else: axes.plot(x[i], y[i], 'ro') my_pi = count/size * 4 print(my_pi) 扇形面积 = 蓝点 / (蓝点 + 红点) 扔的点越多,结果误差越小 Python金融数据分析教程

闯关作业 获取沪深300(000300.SH)从2017年以来的每日收盘价数据,计算其日收益率,然后看看其统计规律,画出直方图。 Python金融数据分析教程

欢迎访问https://www.quantos.org Python金融数据分析教程