| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 《股票多因子模型实战》笔记(书摘,写给自己和同学看的,请勿吐槽) -> 正文阅读 |
|
[人工智能]《股票多因子模型实战》笔记(书摘,写给自己和同学看的,请勿吐槽) |
《股票多因子模型实战 Python核心代码解析》陆潇一.中国工信出版集团.电子工业出版社 股票多因子模型实战 1.1.1股票多因子:股票alpha策略/市场中性策略? 1.1.2量化CTA:商品交易顾问 1.1.3套利 1.1.4高频 价值投资 趋势投资 股票多因子 1.2股票多因子模型框架 因子:可以在逻辑上解释股票收益且可以被量化的要素都可以被称为因子 1.2.2多因子模型的数学语言 一只股票的涨跌包括:股票自身的特性与当时大盘整体的表现 股票自身特性带来的收益称为Alpha收益——跑赢大盘多少个点 股票归属于大盘整体表现的收益称为Beta收益 R=Alpha it +Beta t 股票组合:加权上式 Beta收益,大盘的涨跌,通过卖空股指期货的方法对冲。,因此只需组合有正的alpha收益 R it 股票i在t期的收益率 α收益率的常数项 β股票i在因子k上的敞口/股票该因子的因子值 fkt? k因子的因子收益率 ε残差项 1.2.3多因子模型的实践框架 ?????? 1、单因子测试与筛选:因子池、因子测试 ?????? 2、因子合成:将筛选出的因子加权求和变为一个合成因子 ?????? 3、组合构建:打分排序,计算每只股票占比 调仓:轧差 1.3量化的基本问题 1.3.1幸存者偏差:收益率高估 1.3.2未来信息:高估—--年报公布的下一个交易日才能使用 1.3.3过度拟合和欠拟合 过度拟合:噪声参与模型构建,过度解读样本信息 欠拟合:没有充分使用 逻辑与金融含义匹配,测试模型,如:参数敏感性 1.3.4因果性与相关性:相关误认为因果 1.3.5数据质量,操作风险 2量化的python基础 Python解释型语言 del 容器里删除元素 /结果为浮点数 列表推导式[name.upper() for name in name_list] [x.method for x in x_list] 元组只能访问(索引切片),不能增删改 字典:code_name_dict[‘600926’]=’杭州银行’ if: elif: else: NumPy中只有一个最基本的数据结构:array stock_price_ser=np.array([0.3,1.2,-0.7,0.6], ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[1.2,3.4,0.1,-0.8]) np.mean(stock_price_ser,axis=1) axis=1横着算一个[ ],axis=0竖着算0.3和1.2 索引stock_price_ser[0][1] rand生成0~1均匀分布np.random.rand(行数,列数) randn生成标准正态分布的随机数np.random.randn() np.arange(1,x)左闭右开 len(stock_price_ser) 方法返回对象(字符、列表、元组等)长度或项目个数 matplotlib from matplotlib import pyplot as plt plt.title() plt.xlabel() plt.ylabel() plt.plot(x,y) plt.show() 2.6 pandas 2.6.2数据结构:series和dataframe 构建series series=pd.Series([0.074,0.099,0.001,0.0013) type()查看数据类型 构建dataframe data=pd.DataFrame( ????????????? {‘daily_return’:daily_return_Series, ‘Secucode’:secucode_Series}) Data=pd.DataFrame( index=[0,1], columns=[‘daily_return’,’secocode’], data=[[0.074,’000001.SZ’],??? //横着 [0.099,’000002.SZ]] ) Dataframe的数据格式中没有字符串类型,字符串类型存放为object 2.6.3 Pandas的输入与输出 pd.read_csv(‘路径’) data.to_csv(‘xxx.csv’)存储为csv, index=False不输出index data[‘ind_code’].astype(‘str’) 数据框[‘列名’].astype(‘类型’) 2.6.4 DataFrame的数据选取 Dataframe.head(数字),查看前数字行的数据 tail()方法查看尾数据 列筛选:df=Dataframe名字[ [‘daily_return’, ’secocode’] ]?? //两对中括号,外面的[ ]表示对这一DataFrame进行筛选,里面的列表是需要的内容 行筛选:满足某一要求,如df=df[‘data_date’]==’2019-05-27’ 单个筛选条件用()括住 (条件一)&(条件2) iloc方法类似切片 trading_data_2019.iloc[4:8] 左闭右开,trading_data_2019第5行到第9行的数据 行和列:trading_data_2019.iloc[4:8, 2:-1] trading_data_2019.iloc[ 4 , 2 ] 2.6.5 Pandas排序 排序sort_values(by=’列名’) ascending=False sort_values(by=[‘’,’’],ascending=False) 2.6.6描述统计与分组 Data.describe() trading_data_2019[trading_data_2019[‘secucode’]==’601318.SH’][‘daily_return’].mean() group-apply方法 trading_data_2019.groupby(‘secucode’)[‘daily_return’].apply(np.mean) 分组,选变量,应用均值方法 np.product()计算乘积 2.6.7 Pandas的数据可视化 daily_average_return=trading_data_2019.groupby(‘data_date)[‘daily_return’].apply(np.mean) daily_average_return.plot() //横坐标date,纵坐标收益率 figsize调整图片大小 daily_average_return.plot(figsize=(19,18)) 收益率的分布hist()方法:绘制直方图 daily_average_return.hist(bins=50) bins划分间隔,bins越大划分间隔越小 cumprod()方法,计算数值的累计乘积 (daily_average_return+1).cumprod*1000).plot() scatter()方法:散点图 trading_data_2019[trading_data_2019.data_date==’2019-05-27’].head(100).plot.scatter(y=’turnover’,x=’free_mv’,figsize=(18,9)) 2.6.8多个DataFrame处理 横向整合:merge()方法 ind_name=pd.read_csv(‘ind_name.csv’, dtype={‘code’:str}) dtype设置读取内容的数据类型 pd.merge(trading_data_2019,ind_name.rename(columns={‘code’:’ind_code’}), on=’ind_code’,how=’left’) rename方法 merge的on参数设置用于合并的列名,合并轴, how参数可选left,right,outer,inner ????????left:合并过程以左侧DataFrame为主,与左侧数据集长度一致; ????????right: ????????outer:最终合并的是一个并集 ????????inner:交集 注意:传入的两个DataFrame必须有相同的列名, concat()方法,上下合并 total=pd.concat( [part1,part2,part3] ) 更新中,看了三分之一... |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 6:37:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |