15. 辅助函数¶
以下函数属于 Tools 子模块, 是其他功能模块共享和调用的辅助函数.
以下示例默认导入了 datetime 和 QuantStudio 模块:
>>>import QuantStudio.api as QS
15.1. 日期时间¶
-
DateTime.getMonthLastDateTime(dts)¶ 获取给定时间序列的每月最后一个时点的序列
参数: dts (list(datetime.datetime)) – 给定的时间序列 返回: 每月最后一个时点的序列 返回类型: list(datetime.datetime)
>>>import datetime as dt
>>>QS.Tools.DateTime.getMonthLastDateTime([dt.datetime(2001,1,1),dt.datetime(2014,3,2),dt.datetime(2001,1,2),dt.datetime(2016,10,31),dt.datetime(2016,10,4)])
[datetime.datetime(2001, 1, 2, 0, 0), datetime.datetime(2014, 3, 2, 0, 0), datetime.datetime(2016, 10, 31, 0, 0)]
-
DateTime.getMonthMiddleDateTime(dts, middle_day=15)¶ 获取给定时间序列的每月中间一个时点的序列, 每月小于等于 middle_day(默认 15) 的最后一天的最后一个时点
参数: - dts (list(datetime.datetime)) – 给定的时间序列
- middle_day (int) – 作为每月中间的分隔日, 默认值 15
返回: 每月中间一个时点的序列
返回类型: list(datetime.datetime)
-
DateTime.getMonthFirstDateTime(dts)¶ 获取给定时间序列的每月第一个时点的序列
参数: dts (list(datetime.datetime)) – 给定的时间序列 返回: 每月第一个时点的序列 返回类型: list(datetime.datetime)
-
DateTime.getWeekLastDateTime(dts)¶ 获取给定时间序列的每周最后一个时点的序列
参数: dts (list(datetime.datetime)) – 给定的时间序列 返回: 每周最后一个时点的序列 返回类型: list(datetime.datetime)
-
DateTime.getWeekFirstDateTime(dts)¶ 获取给定时间序列的每周第一个时点的序列
参数: dts (list(datetime.datetime)) – 给定的时间序列 返回: 每周第一个时点的序列 返回类型: list(datetime.datetime)
-
DateTime.getYearLastDateTime(dts)¶ 获取给定时间序列的每年最后一个时点的序列
参数: dts (list(datetime.datetime)) – 给定的时间序列 返回: 每年最后一个时点的序列 返回类型: list(datetime.datetime)
-
DateTime.getYearFirstDateTime(dts)¶ 获取给定时间序列的每年第一个时点的序列
参数: dts (list(datetime.datetime)) – 给定的时间序列 返回: 每年第一个时点的序列 返回类型: list(datetime.datetime)
-
DateTime.getQuarterLastDateTime(dts)¶ 获取给定时间序列的每季度最后一个时点的序列
参数: dts (list(datetime.datetime)) – 给定的时间序列 返回: 每季度最后一个时点的序列 返回类型: list(datetime.datetime)
-
DateTime.getQuarterFirstDateTime(dts)¶ 获取给定时间序列的每季度第一个时点的序列
参数: dts (list(datetime.datetime)) – 给定的时间序列 返回: 每季度第一个时点的序列 返回类型: list(datetime.datetime)
-
DateTime.getFinancialQuarterLastDateTime(dts)¶ 获取给定时间序列的每财报季度最后一个时点的序列,上年 11 月初至当年 4 月底为第一季度,5 月初至 8 月底为第二季度,9 月初至 10 月底为第三季度
参数: dts (list(datetime.datetime)) – 给定的时间序列 返回: 每财报季度最后一个时点的序列 返回类型: list(datetime.datetime)
-
DateTime.getFinancialQuarterFirstDateTime(dts)¶ 获取给定时间序列的每财报季度第一个时点的序列,上年 11 月初至当年 4 月底为第一季度,5 月初至 8 月底为第二季度,9 月初至 10 月底为第三季度
参数: dts (list(datetime.datetime)) – 给定的时间序列 返回: 每财报季度第一个时点的序列 返回类型: list(datetime.datetime)
-
DateTime.getDateSeries(start_date, end_date)¶ 获取给定的起始日和终止日之间连续的自然日序列(包括起始日和终止日)
参数: - start_date (datetime.date) – 给定的起始日
- end_date (datetime.date) – 给定的终止日
返回: 自然日序列
返回类型: list(datetime.date)
-
DateTime.getTimeSeries(start_time, end_time, timedelta)¶ 获取日内的时间序列
参数: - start_time (datetime.time) – 给定的起始时间
- end_time (datetime.time) – 给定的终止时间
- timedelta (datetime.timedelta) – 时间间隔
返回: 日内时间序列
返回类型: list(datetime.time)
-
DateTime.getDateTimeSeries(start_dt, end_dt, timedelta)¶ 获取时间序列
参数: - start_dt (datetime.datetime) – 给定的起始时点
- end_dt (datetime.datetime) – 给定的终止时间
- timedelta (datetime.timedelta) – 时间间隔
返回: 时间序列
返回类型: list(datetime.datetime)
15.2. 数学函数¶
-
Math.CartesianProduct(data)¶ 计算若干向量的笛卡尔积
参数: data (list(list)) – 给定的若干个向量 返回: 笛卡尔积 返回类型: list(list)
>>>QS.Tools.Math.CartesianProduct([[1,2,3],['a','b']])
[[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b'], [3, 'a'], [3, 'b']]
15.3. 文件操作¶
-
File.clearDir(dir_path)¶ 清空给定目录下的所有内容
参数: dir_path (str) – 给定的目录路径 返回: 没有成功删除的文件或文件夹数目 返回类型: int
-
File.listDirDir(dir_path='.')¶ 获取给定目录下所有文件夹的名称列表
参数: dir_path (str) – 给定的目录路径 返回: 文件夹名称列表 返回类型: list(str)
-
File.listDirFile(dir_path='.', suffix='csv')¶ 获取给定目录下给定后缀的文件名称列表
参数: - dir_path (str) – 给定的目录路径
- suffix (str) – 给定的后缀, 如果为 None 表示获取目录下所有文件名称列表
返回: 文件名称列表
返回类型: list(str)
-
File.copyDir(source_dir, target_pos, if_exist='replace')¶ 复制源文件夹到指定位置, 如果目标位置下该文件夹已经存在,则根据 if_exist 参数进行操作
参数: - source_dir (str) – 源文件夹路径
- target_pos (str) – 目标位置路径
- if_exist (str) – 可选:”replace”, “skip”, “replace” 表示覆盖, “skip” 表示放弃复制操作
返回: ErrorCode
返回类型: int
-
File.detectFileEncoding(file_path, big_file=False, size=None)¶ 猜测文件的编码格式
参数: - file_path (str) – 待检测的目标文件路径
- big_file (bool) – 如果是 False, 将读取整个文件内容进行分析, 否则读取部分内容分析
- size (int) – big_file 为 True 时读取的文件字节数
返回: {‘confidence’: 置信度, ‘encoding’: 编码格式}, 例如: {‘confidence’: 0.99, ‘encoding’: ‘GB2312’}
返回类型: dict
-
File.readCSV2Pandas(filepath_or_buffer, detect_file_encoding=False, **other_args)¶ 支持中文路径的读取 csv 文件为 pandas 对象的函数, 除了 detect_file_encoding 以外其他输入参数同 pandas.read_csv 函数完全一致
参数: detect_file_encoding (bool) – 如果是 True, 将自动检测文件的编码格式 返回: 同 pandas.read_csv 函数
15.4. 投资策略¶
-
Strategy.calcWealthAfterTrade(p_holding, p_target, wealth, transfee_rate, epsilon=1e-6)¶ 计算在考虑交易费且无交易限制假设下投资组合交易后的财富值, 使用迭代法求解方程:
\[x=wealth-{\left\| x\cdot p_{target}-wealth\cdot p_{holding} \right\|_{1}}\]通过压缩映射原理可以证明迭代一定收敛
参数: - p_holding (Series) – 当前持有的投资组合, Series(权重, index=[ID])
- p_target (Series) – 目标投资组合, Series(权重, index=[ID])
- wealth (float) – 当前财富值
- transfee_rate (float) – 交易费率
- epsilon (float) – 确认收敛停止迭代的误差界
返回: 交易后的财富值
返回类型: float
-
Strategy.calcYieldSeq(wealth_seq, init_wealth=None)¶ 给定净值或价格序列, 计算收益率序列
参数: - wealth_seq (array) – 净值或价格序列
- init_wealth (float) – 初始净值或价格, 若为 None 使用 wealth_seq 的第一个元素
返回: 收益率序列
返回类型: array
-
Strategy.calcWealthSeq(yield_seq, init_wealth=None)¶ 给定收益率序列, 计算净值序列
参数: - yield_seq (array) – 收益率序列
- init_wealth (float) – 初始净值或价格, 如果不为 None, 则返回的序列比 yield_seq 多一个元素, 在初始位置添加 init_wealth
返回: 净值序列
返回类型: array
>>>QS.Tools.Strategy.calcWealthSeq(np.array([0.1,0.04]), init_wealth=1)
array([ 1. , 1.1 , 1.144])
>>>QS.Tools.Strategy.calcWealthSeq(np.array([0.1,0.04]), init_wealth=None)
array([ 1.1 , 1.144])
-
Strategy.calcAnnualYield(wealth_seq, num_per_year=252, start_date=None, end_date=None)¶ 给定净值或价格序列, 计算年化收益率
参数: - wealth_seq (array) – 净值或价格序列
- num_per_year (float) – 每年的期数
- start_date (datetime.date) – 初始日期
- end_date (datetime.date) – 终止日期, 如果初始日期和终止日期均不为 None, 则使用这两个日期估计 num_per_year
返回: 年化收益率
返回类型: float
-
Strategy.calcAnnualVolatility(wealth_seq, num_per_year=252, start_date=None, end_date=None)¶ 给定净值或价格序列, 计算年化波动率
参数: - wealth_seq (array) – 净值或价格序列
- num_per_year (float) – 每年的期数
- start_date (datetime.date) – 初始日期
- end_date (datetime.date) – 终止日期, 如果初始日期和终止日期均不为 None, 则使用这两个日期估计 num_per_year
返回: 年化波动率
返回类型: float
-
Strategy.calcRollingAnnualYieldSeq(wealth_seq, window=252, min_window=252, num_per_year=252)¶ 给定净值或价格序列, 滚动窗口方式计算年化收益率序列
参数: - wealth_seq (array) – 净值或价格序列
- window (int) – 滚动窗口长度
- min_window (int) – 可以执行计算的最小窗口长度, 如果回溯日期数小于该参数, 则填充 NaN
- num_per_year (float) – 每年的期数
返回: 年化收益率序列
返回类型: array
-
Strategy.calcRollingAnnualVolatilitySeq(wealth_seq, window=252, min_window=252, num_per_year=252)¶ 给定净值或价格序列, 滚动窗口方式计算年化波动率序列
参数: - wealth_seq (array) – 净值或价格序列
- window (int) – 滚动窗口长度
- min_window (int) – 可以执行计算的最小窗口长度, 如果回溯日期数小于该参数, 则填充 NaN
- num_per_year (float) – 每年的期数
返回: 年化波动率序列
返回类型: array
-
Strategy.calcExpandingAnnualYieldSeq(wealth_seq, min_window=252, num_per_year=252)¶ 给定净值或价格序列, 扩张窗口方式计算年化收益率序列
参数: - wealth_seq (array) – 净值或价格序列
- min_window (int) – 可以执行计算的最小窗口长度, 如果回溯日期数小于该参数, 则填充 NaN
- num_per_year (float) – 每年的期数
返回: 年化收益率序列
返回类型: array
-
Strategy.calcExpandingAnnualVolatilitySeq(wealth_seq, min_window=252, num_per_year=252)¶ 给定净值或价格序列, 扩张窗口方式计算年化波动率序列
参数: - wealth_seq (array) – 净值或价格序列
- window (int) – 滚动窗口长度
- min_window (int) – 可以执行计算的最小窗口长度, 如果回溯日期数小于该参数, 则填充 NaN
- num_per_year (float) – 每年的期数
返回: 年化波动率序列
返回类型: array
-
Strategy.calcBeta(wealth_seq, market_wealth_seq)¶ 给定净值或价格序列, 计算 \(\beta\)
参数: - wealth_seq (array) – 净值或价格序列
- market_wealth_seq (array) – 市场净值或价格序列
返回: \(\beta\)
返回类型: float
-
Strategy.calcLPM(wealth_seq, threshold=0.0, order=2)¶ 给定净值或价格序列, 计算收益率的 Lower Partial Moment
参数: - wealth_seq (array) – 净值或价格序列
- threshold (float) – 收益率下限阈值
- order (int) – 矩的阶数
返回: Lower Partial Moment
返回类型: float
-
Strategy.calcHPM(wealth_seq, threshold=0.0, order=2)¶ 给定净值或价格序列, 计算收益率的 Higher Partial Moment
参数: - wealth_seq (array) – 净值或价格序列
- threshold (float) – 收益率下限阈值
- order (int) – 矩的阶数
返回: Higher Partial Moment
返回类型: float
-
Strategy.calcSharpeRatio(wealth_seq, risk_free_rate=0.0, expected_return=None)¶ 给定净值或价格序列, 计算 Sharpe 比率
参数: - wealth_seq (array) – 净值或价格序列
- risk_free_rate (float) – 无风险利率
- expected_return (float) – 预期收益率, 如果为 None 则使用 wealth_seq 导出的收益率序列均值
返回: Sharpe 比率
返回类型: float
-
Strategy.calcAdjustedSharpeRatio(wealth_seq, risk_free_rate=0.0, expected_return=None)¶ 给定净值或价格序列, 计算调整的 Sharpe 比率
参数: - wealth_seq (array) – 净值或价格序列
- risk_free_rate (float) – 无风险利率
- expected_return (float) – 预期收益率, 如果为 None 则使用 wealth_seq 导出的收益率序列均值
返回: 调整的 Sharpe 比率
返回类型: float
-
Strategy.calcTreynorRatio(wealth_seq, market_wealth_seq, risk_free_rate=0.0, expected_return=None)¶ 给定净值或价格序列,计算 Treynor 比率
参数: - wealth_seq (array) – 净值或价格序列
- market_wealth_seq (array) – 市场净值或价格序列
- risk_free_rate (float) – 无风险利率
- expected_return (float) – 预期收益率, 如果为 None 则使用 wealth_seq 导出的收益率序列均值
返回: Treynor 比率
返回类型: float
-
Strategy.calcInformationRatio(wealth_seq, benchmark_wealth_seq)¶ 给定净值或价格序列, 计算信息比率
参数: - wealth_seq (array) – 净值或价格序列
- benchmark_wealth_seq (array) – 基准净值或价格序列
返回: 信息比率
返回类型: float
-
Strategy.calcModiglianiRatio(wealth_seq, benchmark_wealth_seq, risk_free_rate=0.0, expected_return=None)¶ 给定净值或价格序列, 计算 Modigliani 比率
参数: - wealth_seq (array) – 净值或价格序列
- benchmark_wealth_seq (array) – 基准净值或价格序列
- risk_free_rate (float) – 无风险利率
- expected_return (float) – 预期收益率, 如果为 None 则使用 wealth_seq 导出的收益率序列均值
返回: Modigliani 比率
返回类型: float
-
Strategy.calcSortinoRatio(wealth_seq, risk_free_rate=0.0, target_return=0.0, expected_return=None)¶ 给定净值或价格序列,计算 Sortino 比率
参数: - wealth_seq (array) – 净值或价格序列
- risk_free_rate (float) – 无风险利率
- target_return (float) – 目标收益率
- expected_return (float) – 预期收益率, 如果为 None 则使用 wealth_seq 导出的收益率序列均值
返回: Sortino 比率
返回类型: float
-
Strategy.calcOmegaRatio(wealth_seq, risk_free_rate=0.0, target_return=0.0, expected_return=None)¶ 给定净值或价格序列, 计算 Omega 比率
参数: - wealth_seq (array) – 净值或价格序列
- risk_free_rate (float) – 无风险利率
- target_return (float) – 目标收益率
- expected_return (float) – 预期收益率, 如果为 None 则使用 wealth_seq 导出的收益率序列均值
返回: Omega 比率
返回类型: float
-
Strategy.calcKappaThreeRatio(wealth_seq, risk_free_rate=0.0, target_return=0.0, expected_return=None)¶ 给定净值或价格序列, 计算 Kappa3 比率
参数: - wealth_seq (array) – 净值或价格序列
- risk_free_rate (float) – 无风险利率
- target_return (float) – 目标收益率
- expected_return (float) – 预期收益率, 如果为 None 则使用 wealth_seq 导出的收益率序列均值
返回: Kappa3 比率
返回类型: float
-
Strategy.calcGainLossRatio(wealth_seq, target_return=0.0)¶ 给定净值或价格序列, 计算盈亏比率
参数: - wealth_seq (array) – 净值或价格序列
- target_return (float) – 目标收益率
返回: 盈亏比率
返回类型: float
-
Strategy.calcUpsidePotentialRatio(wealth_seq, target_return=0.0)¶ 给定净值或价格序列, 计算 Upside Potential Ratio
参数: - wealth_seq (array) – 净值或价格序列
- target_return (float) – 目标收益率
返回: Upside Potential Ratio
返回类型: float
-
Strategy.calcVaR(wealth_seq, alpha=0.05, method="Historical")¶ 给定净值或价格序列, 计算 VaR 和 CVaR
参数: - wealth_seq (array) – 净值或价格序列
- alpha (float) – 置信水平
- method (str) – 计算方法, 可选 “Historical”, “Norm” 或者 “Cornish-Fisher”
返回: (VaR, CVaR)
返回类型: tuple
-
Strategy.calcUpPeriod(wealth_seq)¶ 给定净值或价格序列, 计算净值或价格上升区间
参数: wealth_seq (array) – 净值或价格序列 返回: (净值或价格上升区间, 净值或价格上升索引位置), 元素个数为偶数, 两两组成一个区间 返回类型: tuple
>>>a = np.array([ 3.327461, 1.869487, 2.731358, 3.764781, 4.036605, 2.613911, 4.054651, 4.6229, 2.696089, 0.639644])
>>>QS.Tools.Strategy.calcUpPeriod(a)
(array([1.869487, 4.036605, 2.613911, 4.6229 ]), array([1, 4, 5, 7]))
-
Strategy.calcDownPeriod(wealth_seq)¶ 给定净值或价格序列, 计算净值或价格下降区间
参数: wealth_seq (array) – 净值或价格序列 返回: (净值或价格下降区间, 净值或价格下降索引位置), 元素个数为偶数, 两两组成一个区间 返回类型: tuple
>>>a = np.array([ 3.327461, 1.869487, 2.731358, 3.764781, 4.036605, 2.613911, 4.054651, 4.6229, 2.696089, 0.639644])
>>>QS.Tools.Strategy.calcDownPeriod(a)
(array([3.327461, 1.869487, 4.036605, 2.613911, 4.6229 , 0.639644]), array([0, 1, 4, 5, 7, 9]))
-
Strategy.calcDrawdown(wealth_seq)¶ 给定净值或价格序列, 计算回撤序列
参数: wealth_seq (array) – 净值或价格序列 返回: (最大回撤(float), 最大回撤开始位置(int), 最大回撤结束位置(int), 回撤序列(array)) 返回类型: tuple
>>>a = np.array([ 3.327461, 1.869487, 2.731358, 3.764781, 4.036605, 2.613911, 4.054651, 4.6229, 2.696089, 0.639644])
>>>QS.Tools.Strategy.calcDrawdown(a)
(-0.86163576975491574,
7,
9,
array([ 0. , -0.43816411, -0.1791465 , 0. , 0. ,
-0.35244816, 0. , 0. , -0.41679703, -0.86163577]))
-
Strategy.calcMaxDrawdownRate(wealth_seq)¶ 给定净值或价格序列, 计算最大回撤
参数: wealth_seq (array) – 净值或价格序列 返回: (最大回撤(float), 最大回撤开始位置(int), 最大回撤结束位置(int)) 返回类型: tuple
-
Strategy.calcMaxDrawdownRateEx(wealth_seq)¶ 给定净值或价格序列, 计算最大回撤, 计算速度比
calcMaxDrawdownRate()快.参数: wealth_seq (array) – 净值或价格序列 返回: (最大回撤(float), 最大回撤开始位置(int), 最大回撤结束位置(int)) 返回类型: tuple
-
Strategy.calcMaxDrawdownRateExEx(wealth_seq)¶ 给定净值或价格序列, 计算最大回撤, 计算速度比
calcMaxDrawdownRateEx()快.参数: wealth_seq (array) – 净值或价格序列 返回: (最大回撤(float), 最大回撤开始位置(int), 最大回撤结束位置(int)) 返回类型: tuple
-
Strategy.calcPeriodDrawdown(wealth_seq, tau)¶ 给定净值或价格序列和期限, 计算给定期限的最大回撤
参数: - wealth_seq (array) – 净值或价格序列
- tau (int) – 期限长度
返回: 最大回撤
返回类型: float
-
Strategy.calcAverageDrawdown(wealth_seq, periods)¶ 给定净值或价格序列和期限, 计算给定期限内的平均回撤
参数: - wealth_seq (array) – 净值或价格序列
- periods (int) – 期限长度
返回: 平均回撤率
返回类型: float
-
Strategy.calcAverageDrawdownSquared(wealth_seq, periods)¶ 给定净值或价格序列和期限, 计算给定期限内的平均回撤平方
参数: - wealth_seq (array) – 净值或价格序列
- periods (int) – 期限长度
返回: 平均回撤平方
返回类型: float
-
Strategy.calcCalmarRatio(wealth_seq, risk_free_rate=0.0, expected_return=None)¶ 给定净值或价格序列, 计算 Calmar 比率
参数: - wealth_seq (array) – 净值或价格序列
- risk_free_rate (float) – 无风险利率
- expected_return (float) – 预期收益率, 如果为 None 则使用 wealth_seq 导出的收益率序列均值
返回: Calmar 比率
返回类型: float
-
Strategy.calcSterlingRatio(wealth_seq, periods, risk_free_rate=0.0, expected_return=None)¶ 给定净值或价格序列和期限, 计算 Sterling 比率
参数: - wealth_seq (array) – 净值或价格序列
- periods (int) – 期限长度
- risk_free_rate (float) – 无风险利率
- expected_return (float) – 预期收益率, 如果为 None 则使用 wealth_seq 导出的收益率序列均值
返回: Sterling 比率
返回类型: float
-
Strategy.calcBurkeRatio(wealth_seq, periods, risk_free_rate=0.0, expected_return=None)¶ 给定净值或价格序列和期限, 计算 Burke 比率
参数: - wealth_seq (array) – 净值或价格序列
- periods (int) – 期限长度
- risk_free_rate (float) – 无风险利率
- expected_return (float) – 预期收益率, 如果为 None 则使用 wealth_seq 导出的收益率序列均值
返回: Burke 比率
返回类型: float
-
Strategy.calcTMModel(wealth_seq, market_wealth_seq, risk_free_rate=0.0)¶ 给定净值或价格序列, 使用 T-M 二项式模型, 评价策略的择时能力和选股能力
参数: - wealth_seq (array) – 净值或价格序列
- market_wealth_seq (array) – 市场净值或价格序列
- risk_free_rate (float) – 无风险利率
返回: 回归系数, (\(\alpha\) , \(\beta\), \(\beta^2\))
返回类型: tuple
-
Strategy.calcHMModel(wealth_seq, market_wealth_seq, risk_free_rate=0.0)¶ 给定净值或价格序列, 使用 H-M 双贝塔模型, 评价策略的择时能力和选股能力
参数: - wealth_seq (array) – 净值或价格序列
- market_wealth_seq (array) – 市场净值或价格序列
- risk_free_rate (float) – 无风险利率
返回: 回归系数, (\(\alpha\) , \(\beta\), \(\beta^+\))
返回类型: tuple
-
Strategy.calcCLModel(wealth_seq, market_wealth_seq, risk_free_rate=0.0)¶ 给定净值或价格序列, 使用 C-L 模型, 评价策略的择时能力和选股能力
参数: - wealth_seq (array) – 净值或价格序列
- market_wealth_seq (array) – 市场净值或价格序列
- risk_free_rate (float) – 无风险利率
返回: 回归系数, (\(\alpha\) , \(\beta^-\), \(\beta^+\))
返回类型: tuple
-
Strategy.genRandomPortfolio(ids, target_num=20, weight=None)¶ 生成随机投资组合
参数: - ids (list(str)) – ID 列表
- target_num (int) – 目标数量
- weight (Series) – 权重数据, Series(权重, index=ids), 为 None 则等权
返回: 投资组合, Series(权重, index=[ID])
返回类型: Series
-
Strategy.genPortfolioByFiltration(factor_data, ascending=False, target_num=20, target_quantile=0.1, weight=None)¶ 以筛选的方式形成投资组合
参数: - factor_data (Series) – 因子数据, Series(因子值, index=[ID])
- ascending (bool) – 是否升序排列
- target_num (int) – 目标最大 ID 数量
- target_quantile (float) – 目标选择的百分比
- weight (Series) – 权重数据, Series(权重, index=ids), 为 None 则等权
返回: 投资组合, Series(权重, index=[ID])
返回类型: Series
15.5. GUI¶
-
QtGUI.showOutput(output, plot_engine="matplotlib")¶ 以 GUI 的方式查看数据集.
参数: output (dict) – 数据集, 嵌套的字典, 树状结构, 叶节点是 DataFrame, 回测模型或者回测模块方法 output 的返回值即是此种结构, 比如: TestData = {"Bar1": {"a": {"a1": pd.DataFrame(np.random.rand(11,3), columns=['b','c','d']), "a2": pd.DataFrame(np.random.rand(10,2))}, "b": pd.DataFrame(['a']*150, columns=['c'])}, "Bar2": pd.DataFrame(np.random.randn(3,2), index=["b1", "b2", "b3"])}
参数: plot_engine (str) – 绘图所用的模块, 可选: “matplotlib”, “plotly” 返回: None 返回类型: None
-
QtGUI.setDateTime(dts=[], dates=[], times=[], ft=None)¶ 以 GUI 的方式设置日期时间
参数: - dts (list(datetime.datetime)) – 初始的时间点序列
- dates (list(datetime.date)) – 初始的日期序列
- times (list(datetime.time)) – 初始的时间序列
- ft (FactorTable) – 因子表对象
返回: (新的时间点序列, 新的日期序列, 新的时间序列)
返回类型: (list(datetime.datetime), list(datetime.date), list(datetime.time))
-
QtGUI.setID(ids=[], ft=None)¶ 以 GUI 的方式设置 ID
参数: - ids (list(str)) – 初始的 ID 序列
- ft (FactorTable) – 因子表对象
返回: 新的 ID 序列
返回类型: list(str)