应用介绍
回测跑完之后,最枯燥的活是算绩效:夏普、索提诺、最大回撤、年化、卡玛比率——每一个都要自己写几十行 pandas。想做组合优化,还得现推一遍均值方差公式。这些函数几乎每次做量化都要用,但每次都从头再写一遍,又慢又容易错。
ffn 是把这一整套封装好的 Python 库。你只管把净值或组合价格喂进去,它算收益、算风险、算回撤路径,顺手还能 rebase 画图。量化圈最常用的那批金融函数,它十年前就替你写好、测好了,站在 Pandas、NumPy、SciPy 这些巨人的肩膀上。
最核心的两个:calc_stats() 一次调用吐出全套绩效——总收益、年化、夏普、索提诺、最大回撤、卡玛、胜率等几十项一起出;calc_mean_var_weights() 一行算出马科维茨最优权重,直接把组合配比配好。它还内置了数据下载,`ffn.get('aapl,msft,c,gs,ge')` 一把拉多个标的,`to_returns()` 转成收益序列。回撤序列、水下曲线、相关性矩阵、净值曲线这些图也都能直接出。
要说生态,成熟的回测框架 bt 就是建在 ffn 之上的,两者出自同一作者。MIT 开源,2.6K Star,`pip install ffn` 即可。别再手写绩效函数了。
一键全套绩效:calc_stats() 一次调用返回总收益、年化收益、夏普、索提诺、最大回撤、卡玛比率、胜率等几十项指标,回测完不用再逐个手算。
组合优化:calc_mean_var_weights() 一行算出马科维茨均值方差最优权重,不用自己推公式,直接得到组合配比。
内置数据下载:ffn.get() 传入多个标的代码一次拉取历史价格,配合 to_returns() / to_log_returns() 转换成收益序列,数据准备一步到位。
回撤与风险分析:计算回撤序列、绘制水下曲线(underwater plot),直观看清每一段亏损从发生到回本的完整路径。
绘图开箱即用:净值曲线、rebase 归一化对比、相关性热力图等常用图形封装好,一个方法调用即可出图。
常用数据变换:价格转收益、重采样、区间收益、滚动统计等量化里反复用到的转换都有现成函数,不必每次重写。
bt 回测框架的底座:成熟的策略回测框架 bt 建在 ffn 之上,两者同源,配合起来从指标计算到策略回测一条链路打通。
ffn 是把这一整套封装好的 Python 库。你只管把净值或组合价格喂进去,它算收益、算风险、算回撤路径,顺手还能 rebase 画图。量化圈最常用的那批金融函数,它十年前就替你写好、测好了,站在 Pandas、NumPy、SciPy 这些巨人的肩膀上。
最核心的两个:calc_stats() 一次调用吐出全套绩效——总收益、年化、夏普、索提诺、最大回撤、卡玛、胜率等几十项一起出;calc_mean_var_weights() 一行算出马科维茨最优权重,直接把组合配比配好。它还内置了数据下载,`ffn.get('aapl,msft,c,gs,ge')` 一把拉多个标的,`to_returns()` 转成收益序列。回撤序列、水下曲线、相关性矩阵、净值曲线这些图也都能直接出。
要说生态,成熟的回测框架 bt 就是建在 ffn 之上的,两者出自同一作者。MIT 开源,2.6K Star,`pip install ffn` 即可。别再手写绩效函数了。
软件功能
一键全套绩效:calc_stats() 一次调用返回总收益、年化收益、夏普、索提诺、最大回撤、卡玛比率、胜率等几十项指标,回测完不用再逐个手算。
组合优化:calc_mean_var_weights() 一行算出马科维茨均值方差最优权重,不用自己推公式,直接得到组合配比。
内置数据下载:ffn.get() 传入多个标的代码一次拉取历史价格,配合 to_returns() / to_log_returns() 转换成收益序列,数据准备一步到位。
回撤与风险分析:计算回撤序列、绘制水下曲线(underwater plot),直观看清每一段亏损从发生到回本的完整路径。
绘图开箱即用:净值曲线、rebase 归一化对比、相关性热力图等常用图形封装好,一个方法调用即可出图。
常用数据变换:价格转收益、重采样、区间收益、滚动统计等量化里反复用到的转换都有现成函数,不必每次重写。
bt 回测框架的底座:成熟的策略回测框架 bt 建在 ffn 之上,两者同源,配合起来从指标计算到策略回测一条链路打通。


