def test_code():
### Use one of the order folders below ###
### of = "./orders/orders-leverage-3.csv" # verify from wiki
of = "./orders_mc2p1_spr2016/orders-12-modified.csv" #verify from saved pdf
sv = 1000000 # starting value of portfolio, i.e. initial cash available
# Process orders
portVals = compute_portvals(orders_file = of, start_val = sv)
if isinstance(portVals, pd.DataFrame):
portVals = portVals[portVals.columns[0]] # just get the first column as a Series
else:
"warning, code did not return a DataFrame"
start_date = portVals.index[0]
end_date = portVals.index[-1]
pricesSPX = get_data(['$SPX'], pd.date_range(start_date, end_date))
pricesSPX = pricesSPX['$SPX']
dfTemp = pd.concat([portVals, pricesSPX], axis = 1, keys = ['portfolio', '$SPX'])
plot_normalized_data(dfTemp,'', '', '')
cum_ret, avg_daily_ret, std_daily_ret, sharpe_ratio = get_portfolio_stats(portVals, \
daily_rf = 0, samples_per_year = 252)
cum_ret_SPY, avg_daily_ret_SPY, std_daily_ret_SPY, sharpe_ratio_SPY = \
get_portfolio_stats(pricesSPX, daily_rf = 0, samples_per_year = 252)
# Compare portfolio against $SPX
print "\nDate Range: {} to {}".format(start_date.date(), end_date.date())
print
print "Sharpe Ratio of Fund: {}".format(sharpe_ratio)
print "Sharpe Ratio of SPY : {}".format(sharpe_ratio_SPY)
print
print "Cumulative Return of Fund: {}".format(cum_ret)
print "Cumulative Return of SPY : {}".format(cum_ret_SPY)
print
print "Standard Deviation of Fund: {}".format(std_daily_ret)
print "Standard Deviation of SPY : {}".format(std_daily_ret_SPY)
print
print "Average Daily Return of Fund: {}".format(avg_daily_ret)
print "Average Daily Return of SPY : {}".format(avg_daily_ret_SPY)
print
print "Final Portfolio Value: {}".format(portVals[-1])
marketsim.py 文件源码
python
阅读 16
收藏 0
点赞 0
评论 0
评论列表
文章目录