QSTK的eventprofiler功能无法正确绘制

art*_*omp 4 python plot graph pandas qstk

使用QSTK进行Georgia Tech的Coursera计算投资课程,Examples/EventProfiler/tutorial.py末尾的eventprofiler函数不会输出视频中显示的图表.(见下图.)

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

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

情节上没有图表!

如果我有时间的话,我可能会深入研究eventprofiler代码,但我想我先问一下.Stack Overflow在QSTK上几乎没有任何内容,并且在5分钟的快速搜索中,大熊猫似乎没什么关系.

注意:我按照佐治亚州技术课程计算投资课程的quantsoftware wiki的指示安装了VirtualBox,Ubuntu和QSTK.到目前为止,我已经成功完成了所有作业,所以我认为我的设置应该没问题.

Jos*_*ica 5

问题在于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]
Run Code Online (Sandbox Code Playgroud)

问题在于减法.df_rets最终充满了NaNs.不知道为什么,在底层系统中必然会发生一些变化.
它可以通过在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]
Run Code Online (Sandbox Code Playgroud)

您可以从此处下载带有修复程序的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)
Run Code Online (Sandbox Code Playgroud)