QSTK的eventprofiler功能没有正确绘制

时间:2015-11-22 04:30:20

标签: python pandas graph plot qstk

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

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

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

no graph on plot!

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

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

2 个答案:

答案 0 :(得分:5)

问题出在EventProfiler上 默认情况下,在/usr/local/lib/python2.7/dist-packages/QSTK-0.2.8-py2.7.egg/QSTK/qstkstudy/EventProfiler.py

中安装了Ubuntu

在这段代码中:

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]

您可以从here下载包含修复程序的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)

答案 1 :(得分:0)

我可以确认问题出在qstkstudy / EventProfiler.py

if b_market_neutral == True:
    df_rets = df_rets - df_rets[s_market_sym] # it fails here
    del df_rets[s_market_sym]
    del df_events[s_market_sym]
我解决了这个问题:

if b_market_neutral == True:
        df_rets = df_rets.sub(df_rets[s_market_sym].values, axis=0)
        del df_rets[s_market_sym]
        del df_events[s_market_sym]