因子数据API

因子暴露接口

get_factor_exposure -获取公司历史因子暴露

get_factor_exposure(order_book_ids: List[str], bar_count: int, dt: datetime.datetime, fields: List[str] = None, frequency: str = '1d') → pandas.core.frame.DataFrame[source]

获取指定合约的历史因子数据,支持任意日频率xd(1d,5d)和分钟频率xm(1m,3m,5m,15m)的历史因子数据(当前只支持1d)。

Parameters
  • order_book_id – 合约代码

  • bar_count – 获取的历史数据数量,必填项

  • dt – 获取数据的截止日期时间,e.g. “2020-09-18”

  • fields – 返回数据字段。必填项。见因子数据数据字典。

  • frequency – 获取数据什么样的频率进行。’1d’或’1m’分别表示每日和每分钟,默认为1d

Example1:

获取中国平安和万科A(order_book_ids), 2020-09-18(dt)之前10(bar_count)天的return_mean_5和returns_skew_20(fields)因子数据

import pandas as pd
from simonsc.api import get_factor_exposure

# 
>>> dt = pd.Timestamp("2020-09-18")
>>> fields=["datetime","return_mean_5","returns_skew_20"]
>>> order_book_id_list = ["000001.XSHE","000002.XSHE"]
>>> factor_exposure = get_factor_exposure(order_book_ids=order_book_id_list, dt=dt, bar_count=10, fields=fields, frequency="1d")
>>> print(factor_exposure)
                                  return_mean_5  returns_skew_20
    order_book_id datetime                                  
    000001.XSHE   2020-09-07      -0.001771         0.585366
                  2020-09-08       0.003992         0.499581
                  2020-09-09      -0.001237         0.683064
                  2020-09-10       0.005955         0.571358
                  2020-09-11       0.000848         0.744097
                  2020-09-14       0.004979         0.487314
                  2020-09-15      -0.000927         0.436575
                  2020-09-16       0.003097         0.357694
                  2020-09-17       0.003072         0.572409
                  2020-09-18       0.013797         0.365532
    000002.XSHE   2020-09-07       0.008380        -0.107046
                  2020-09-08       0.007832        -0.028114
                  2020-09-09       0.003366        -0.196695
                  2020-09-10       0.004690        -0.285299
                  2020-09-11      -0.000413         0.327043
                  2020-09-14      -0.005120         0.512526
                  2020-09-15      -0.002978         0.489892
                  2020-09-16       0.001579         0.271366
                  2020-09-17      -0.002774         0.348217
                  2020-09-18       0.009297         1.139321

available_factor_names -获取所有因子字段名

available_factor_names(frequency='1d')[source]

获取所有因子字段名

因子收益率接口

get_factor_returns - 获取因子收益率

get_factor_returns(bar_count: int, dt: datetime.datetime, fields: List[str] = None, frequency: str = '1d') → pandas.core.frame.DataFrame[source]

获取指定合约的历史因子收益率,支持频率1d(日), 1w(周), 1M(月)历史因子数据

Parameters
  • bar_count – 获取的历史数据数量,必填项

  • dt – 获取数据的截止日期时间,e.g. “2020-09-18”

  • fields – 返回数据字段。必填项。见因子收益率数据字典。

  • frequency – 获取数据什么样的频率进行。’1d’或’1m’分别表示每日和每分钟,默认为1d

Example1:

获取Fama-French 5因子 2020-09-18之前10天的SMB_5和HML_5因子收益率

import pandas as pd
from simonsc.api import get_factor_returns

# 
>>> dt = pd.Timestamp("2020-09-18")
>>> fields=["SMB_5","HML_5"]
>>> factor_returns = get_factor_returns(dt=dt, bar_count=10, fields=fields, frequency="1d")
>>> print(factor_returns)
                     SMB_5     HML_5
    datetime                          
    20200907000000  0.036871  0.015527
    20200908000000  0.020943  0.016531
    20200909000000 -0.002040  0.024283
    20200910000000 -0.085072 -0.000579
    20200911000000  0.012589 -0.012224
    20200914000000  0.033144 -0.007565
    20200915000000 -0.014592 -0.006376
    20200916000000 -0.005519  0.008924
    20200917000000  0.012206  0.000091
    20200918000000 -0.019927  0.004799