楼主: 默默守候你
1707 1

[金融] fama-french三因子模型代码 [推广有奖]

  • 0关注
  • 0粉丝

高中生

92%

还不是VIP/贵宾

-

威望
0
论坛币
5 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
60 点
帖子
1
精华
0
在线时间
78 小时
注册时间
2015-9-5
最后登录
2020-3-20

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有人能分享一下嘛

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:FRENCH 三因子模型 FAMA Fre Ama

沙发
gdm401 在职认证  企业认证  发表于 2019-4-30 06:36:06 |只看作者 |坛友微信交流群
  1. import numpy as np
  2. import pandas as pd
  3. import scipy
  4. import math
  5. import statsmodels
复制代码
  1. dp = get_fundamentals(query(fundamentals.eod_derivative_indicator.market_cap,fundamentals.financial_indicator.book_value_per_share),'2010-11-01', '60m')
  2. market = all_instruments()
  3. price_data = get_price(list(market['order_book_id']),start_date='2005-11-01', end_date='2010-10-30',frequency='1d',fields='ClosingPx')
复制代码
  1. price_data = get_price(list(market['order_book_id']),start_date='2005-11-01', end_date='2010-11-05',frequency='1d',fields='ClosingPx')
复制代码
  1. index_date = dp['book_value_per_share'].index
  2. stocks = dp['book_value_per_share'].columns
复制代码
  1. Index(['2010-11-01', '2010-09-30', '2010-09-01', '2010-07-30', '2010-07-01',
  2.        '2010-06-01', '2010-04-30', '2010-04-01', '2010-03-01', '2010-02-01',
  3.        '2009-12-31', '2009-12-01', '2009-10-30', '2009-09-30', '2009-09-01',
  4.        '2009-07-31', '2009-07-01', '2009-06-01', '2009-04-30', '2009-04-01',
  5.        '2009-02-27', '2009-01-23', '2008-12-31', '2008-12-01', '2008-10-31',
  6.        '2008-09-26', '2008-09-01', '2008-08-01', '2008-07-01', '2008-05-30',
  7.        '2008-04-30', '2008-04-01', '2008-02-29', '2008-02-01', '2007-12-28',
  8.        '2007-11-30', '2007-11-01', '2007-09-28', '2007-08-31', '2007-08-01',
  9.        '2007-06-29', '2007-06-01', '2007-04-30', '2007-03-30', '2007-03-01',
  10.        '2007-02-01', '2006-12-29', '2006-12-01', '2006-11-01', '2006-09-29',
  11.        '2006-09-01', '2006-08-01', '2006-06-30', '2006-06-01', '2006-04-28',
  12.        '2006-03-31', '2006-03-01', '2006-01-25', '2005-12-30', '2005-12-01',
  13.        '2005-11-01'],
  14.       dtype='object')
复制代码
  1. #调整nan值为零

  2. where_are_NaNs = np.isnan(dp['book_value_per_share'])
  3. dp['book_value_per_share'][where_are_NaNs] = 0
  4. where_are_NaNs = np.isnan(dp['market_cap'])
  5. dp['market_cap'][where_are_NaNs] = 0
  6. where_are_NaNs = np.isnan(price_data)
  7. price_data[where_are_NaNs] = 0
复制代码
  1. ##btm stores the index book_to_market ratio
  2. btm = pd.DataFrame(index=index_date,columns=stocks)
  3. for stk in stocks:
  4.     for date in index_date:
  5.         if price_data[stk][date]!=0:
  6.             btm[stk][date] = dp['book_value_per_share'][stk][date]/price_data[stk][date]
  7.         else:
  8.             btm[stk][date] = 0
复制代码

已有 2 人评分学术水平 热心指数 信用等级 收起 理由
Freyafay + 1 + 1 + 1 热心帮助其他会员
pokemongo + 1 + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-5 12:48