QSTK 的事件分析器函数无法正确绘制

2024-04-11

在佐治亚理工学院的 Coursera 计算投资课程中使用 QSTK 时,Examples/EventProfiler/tutorial.py 末尾的 eventprofiler 函数不会输出视频中显示的图表。 (见下图。)

为第 4 周的练习生成的其他 PDF 完全是空的,除了事件编号之外,这些编号是正确的。创建 PDF 似乎是一种浪费,因为这些数字可能只是输出到终端。

我查看了图像上显示的 index.py:2204 的错误输出,但修复并不明显。 (与 pandas 相关的 github bug 上类似(但不相同)问题的其他一些回溯将 index.py 置于健康的调用堆栈中间。)

如果有时间,我可能会更深入地研究事件分析器代码,但我想我应该先问一下。 Stack Overflow 上几乎没有关于 QSTK 的内容,也没有关于 pandas 的内容,在 5 分钟的快速搜索中似乎明显相关。

注意:我按照佐治亚理工学院 Coursera 计算投资课程的 quantsoftware wiki 中的说明安装了 VirtualBox、Ubuntu 和 QSTK。到目前为止我已经成功完成了所有作业,所以我认为我的设置应该没问题。


问题出在EventProfiler 上。
Ubuntu 默认安装在 /usr/local/lib/python2.7/dist-packages/QSTK-0.2.8-py2.7.egg/QSTK/qstkstudy/EventProfiler.py

在这段代码中:

if b_market_neutral == True:
    df_rets = df_rets - df_rets[s_market_sym]
    del df_rets[s_market_sym]
    del df_events[s_market_sym]

问题出在减法上。df_rets最终充满 NaN。不知道为什么,底层系统中一定发生了某些变化,导致了这种情况。
它可以通过在 for 循环中对每个符号进行减法来修复,如下所示:

if b_market_neutral == True:
    for sym in df_events.columns:
        df_rets[sym] = df_rets[sym] - df_rets[s_market_sym]
    del df_rets[s_market_sym]
    del df_events[s_market_sym]

您可以从以下位置下载包含修复程序的 EventProfiler.py 文件here https://github.com/LuthienCeleste/ComputationalInvesting/blob/master/EventProfiler.py。重命名安装中的原始安装并将其替换为本安装中的安装。
根据 Endeavor(也在您提到的课程中)的建议,我还将误差线的 alpha 从 0.1 更改为 0.6,以使它们更加明显:

if b_errorbars == True:
    plt.errorbar(li_time[i_lookback:], na_mean[i_lookback:],
                yerr=na_std[i_lookback:], ecolor='#AAAAFF',
                alpha=0.6) #Changed alpha from 0.1 to 0.6 (Jose A Dura)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QSTK 的事件分析器函数无法正确绘制 的相关文章

随机推荐