portfolioopt, 在 python 中,金融投资组合优化例程

分享于 

7分钟阅读

GitHub

  繁體 雙語
Financial Portfolio Optimization Routines in Python
  • 源代码名称:portfolioopt
  • 源代码网址:http://www.github.com/czielinski/portfolioopt
  • portfolioopt源代码文档
  • portfolioopt源代码下载
  • Git URL:
    git://www.github.com/czielinski/portfolioopt.git
    Git Clone代码到本地:
    git clone http://www.github.com/czielinski/portfolioopt
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/czielinski/portfolioopt
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    Build StatusDownloads

    金融投资组合优化

    模块为金融投资组合优化提供了一套功能,如Markowitz投资组合。最小方差组合和切切投资组合( 例如 )。 python 中的最大夏普比投资组合。 支持长期。长/短和市场中性投资组合的构建。 请键入 比如 来读取要使用的函数的docstringhelp(portfolioopt.markowitz_portfolio) 在交互式解释器中,你还可以在这里找到一些文档

    安装

    安装库的最简单方法是使用 pip install portfolioopt ( 或者 pip3 用于 python 3 )。 可以在这里找到PyPI信息页面( 这里是 )。 支持 python 2和 python 3。 尽管以下描述所有命令都使用 python,但是可以简单地替换为 python 3用户的python3

    要手动安装库,请通过 git clone https://github.com/czielinski/portfolioopt.git 并使用 python setup.py install 安装模块。 要手动安装需求,还可以使用 pip install -r requirements.txt 你可以使用 python setup.py test 运行测试,也可以使用 python -m unittest discover 在模块目录中如果一切都正确,所有测试都应该通过。

    portfolioopt 模块提供了优化例程,文件 example.py 提供了简单的用法示例。 请同时阅读 LICENSE.txt 文件。

    示例

    示例输出如下所示:

    
    $ python example.py 
    
    
    
    Example returns
    
    
    ---------------
    
    
     asset_a asset_b asset_c asset_d asset_e
    
    
    2000-01-01 00:00:00+00:00 0.025836 -0.005913 0.033384 0.077151 -0.010708
    
    
    2000-01-02 00:00:00+00:00 -0.010707 0.079961 0.039372 -0.022474 0.028128
    
    
    2000-01-03 00:00:00+00:00 -0.022171 -0.022286 0.013098 -0.094664 -0.085246
    
    
    2000-01-04 00:00:00+00:00 -0.027114 -0.049642 0.016712 -0.044401 -0.069615
    
    
    2000-01-05 00:00:00+00:00 0.074282 -0.010289 0.004376 -0.070237 -0.026219
    
    
    2000-01-06 00:00:00+00:00 0.006546 -0.056550 0.019785 -0.029032 -0.013585
    
    
    2000-01-07 00:00:00+00:00 -0.029085 0.093614 0.000325 -0.051886 0.042127
    
    
    2000-01-08 00:00:00+00:00 -0.060042 0.011443 -0.096984 -0.065409 0.010843
    
    
    2000-01-09 00:00:00+00:00 0.037923 0.009568 -0.004782 -0.014055 -0.072926
    
    
    2000-01-10 00:00:00+00:00 -0.034992 -0.022032 0.053856 0.018181 -0.087152
    
    
    ...
    
    
    
    Average returns
    
    
    ---------------
    
    
    asset_a -0.001237
    
    
    asset_b 0.004848
    
    
    asset_c -0.003694
    
    
    asset_d 0.007403
    
    
    asset_e -0.000610
    
    
    dtype: float64
    
    
    
    Covariance matrix
    
    
    -----------------
    
    
     asset_a asset_b asset_c asset_d asset_e
    
    
    asset_a 0.002027 -0.000362 0.000099 -0.000220 -0.000305
    
    
    asset_b -0.000362 0.002421 0.000297 0.000090 0.000151
    
    
    asset_c 0.000099 0.000297 0.002420 0.000020 0.000113
    
    
    asset_d -0.000220 0.000090 0.000020 0.002302 0.000047
    
    
    asset_e -0.000305 0.000151 0.000113 0.000047 0.002877
    
    
    
    Minimum variance portfolio (long only)
    
    
    --------------------------------------
    
    
    Optimal weights:
    
    
    asset_a 0.294283
    
    
    asset_b 0.192216
    
    
    asset_c 0.138206
    
    
    asset_d 0.208794
    
    
    asset_e 0.166501
    
    
    dtype: float64
    
    
    
    Expected return: 0.00150128915014
    
    
    Expected variance: 0.000443881332631
    
    
    Expected Sharpe: 0.0712575531382
    
    
    
    Minimum variance portfolio (long/short)
    
    
    ---------------------------------------
    
    
    Optimal weights:
    
    
    asset_a 0.294284
    
    
    asset_b 0.192217
    
    
    asset_c 0.138202
    
    
    asset_d 0.208795
    
    
    asset_e 0.166502
    
    
    dtype: float64
    
    
    
    Expected return: 0.0015013136255
    
    
    Expected variance: 0.000443881332596
    
    
    Expected Sharpe: 0.0712587148452
    
    
    
    Markowitz portfolio (long only, target return: 0.00376)
    
    
    -------------------------------------------------------
    
    
    Optimal weights:
    
    
    asset_a 0.235067
    
    
    asset_b 0.286836
    
    
    asset_c 0.001546
    
    
    asset_d 0.368534
    
    
    asset_e 0.108017
    
    
    dtype: float64
    
    
    
    Expected return: 0.00375625399053
    
    
    Expected variance: 0.000587574392946
    
    
    Expected Sharpe: 0.154961396104
    
    
    
    Markowitz portfolio (long/short, target return: 0.00376)
    
    
    --------------------------------------------------------
    
    
    Optimal weights:
    
    
    asset_a 0.241321
    
    
    asset_b 0.287506
    
    
    asset_c -0.006595
    
    
    asset_d 0.365424
    
    
    asset_e 0.112344
    
    
    dtype: float64
    
    
    
    Expected return: 0.00375616820372
    
    
    Expected variance: 0.000587278581077
    
    
    Expected Sharpe: 0.154996878211
    
    
    
    Markowitz portfolio (market neutral, target return: 0.00376)
    
    
    ------------------------------------------------------------
    
    
    Optimal weights:
    
    
    asset_a -0.088226
    
    
    asset_b 0.158734
    
    
    asset_c -0.241207
    
    
    asset_d 0.260916
    
    
    asset_e -0.090217
    
    
    dtype: float64
    
    
    
    Expected return: 0.00375618451738
    
    
    Expected variance: 0.000397921658527
    
    
    Expected Sharpe: 0.188299050118
    
    
    
    Tangency portfolio (long only)
    
    
    ------------------------------
    
    
    Optimal weights:
    
    
    asset_a 0.013638
    
    
    asset_b 0.370651
    
    
    asset_c 0.000000
    
    
    asset_d 0.615711
    
    
    asset_e 0.000000
    
    
    dtype: float64
    
    
    
    Expected return: 0.00633799771227
    
    
    Expected variance: 0.00123946655115
    
    
    Expected Sharpe: 0.180025768076
    
    
    
    Tangency portfolio (long/short)
    
    
    -------------------------------
    
    
    Optimal weights:
    
    
    asset_a 0.048052
    
    
    asset_b 0.635228
    
    
    asset_c -0.534982
    
    
    asset_d 0.936986
    
    
    asset_e -0.085284
    
    
    dtype: float64
    
    
    
    Expected return: 0.0119844615356
    
    
    Expected variance: 0.00354334941516
    
    
    Expected Sharpe: 0.201331410159
    
    
    
    

    相关文章