Beispiel #1
0
        # get stock prices on all the days up until this trade
        to_calculate = historic[(historic.index <= trade_date) & (historic.index > fund_ts.index[-1])]
        # multiply prices by our current shares
        values_by_stock = to_calculate * prev_row

        # for date, sym in values_by_stock.iteritems():
        #     print date,sym
        # print values_by_stock
        prev_row = row
        #update leverage
        ts_leverage = _calculate_leverage(values_by_stock, ts_leverage)

        # calculate total value and append to our fund history
        fund_ts = fund_ts.append([values_by_stock.sum(axis=1)])
    return [fund_ts, ts_leverage]

if __name__ == "__main__":
    filename = "Strat.csv"
    plot_name = "Strategy"
    print "load csv"
    [share_table, commissions, i_start_cash] = csv2fund(filename)
    print share_table
    [fund_ts, ts_leverage] = share_table2fund(share_table)
    print "print report"
    print fund_ts
    report.print_stats(fund_ts, ["SPY"], plot_name, directory="./" + plot_name, commissions=commissions, i_start_cash=i_start_cash)
    print "analyze transactions"
    #Generate new plot based off transactions alone
    analyze_transactions(filename, plot_name, share_table, True)
    print "done"
Beispiel #2
0
                                5,
                                0.02,
                                log="transactions2.csv")
df_goog = pand.DataFrame(index=df_funds.index,
                         data=df_funds.values,
                         columns=["FUND"])

ls_hedge_params={"Weight of Hedge" : 0.5, \
"Target Beta" : 1,\
"Type of Hedge" : "Long and Short",\
"Rebalancing" : "Weekly",\
"Number of equities" : 30, \
"Lookback period" : "365 days"}
report.print_stats(
    df_aapl, ["$SPX", "MSFT"],
    "AAPL",
    s_fund_name="Test Portfolio",
    original=df_goog,
    s_original_name="UnHedged",
    d_trading_params={
        "Number of trades": 200,
        "Trading Period": "Weekly"
    },
    d_hedge_params=ls_hedge_params,
    s_comments="This is a sample report generated by tutorial 5.",
    commissions=f_commision,
    slippage=f_slippage,
    directory="./AAPL/")
#print "Analyzing Transactions..."
#csv2fund.analyze_transactions("transactions.csv","AAPL")
print "Done"
Beispiel #3
0
        # for date, sym in values_by_stock.iteritems():
        #     print date,sym
        # print values_by_stock
        prev_row = row
        #update leverage
        ts_leverage = _calculate_leverage(values_by_stock, ts_leverage)

        # calculate total value and append to our fund history
        fund_ts = fund_ts.append([values_by_stock.sum(axis=1)])
    return [fund_ts, ts_leverage]


if __name__ == "__main__":
    filename = "Strat.csv"
    plot_name = "Strategy"
    print("load csv")
    [share_table, commissions, i_start_cash] = csv2fund(filename)
    print(share_table)
    [fund_ts, ts_leverage] = share_table2fund(share_table)
    print("print report")
    print(fund_ts)
    report.print_stats(fund_ts, ["SPY"],
                       plot_name,
                       directory="./" + plot_name,
                       commissions=commissions,
                       i_start_cash=i_start_cash)
    print("analyze transactions")
    #Generate new plot based off transactions alone
    analyze_transactions(filename, plot_name, share_table, True)
    print("done")
Beispiel #4
0
ldt_timestamps = du.getNYSEdays(startday, endday, timeofday)

dataobj = da.DataAccess('Yahoo')
df_close = dataobj.get_data( \
                ldt_timestamps, l_symbols, "close", verbose=False)

df_alloc = pand.DataFrame(index=[dt.datetime(2008, 2, 1)], data=[[0.5,0.5]], columns=l_symbols)

for day in ldt_timestamps:
    randomfloat=rgen.random()
    df_alloc = df_alloc.append( \
             pand.DataFrame(index=[day], \
                              data=[[randomfloat, 1-randomfloat]], columns=l_symbols))
    

df_alloc['_CASH'] = 0

''' Tests tradesim buy-on-open functionality '''
(df_funds, ts_leverage, f_commision, f_slippage) = qstksim.tradesim( df_alloc, df_close, 1000000, 1, True, 0.02, 5, 0.02, log="transactions2.csv")
df_goog = pand.DataFrame(index=df_funds.index, data=df_funds.values, columns=["FUND"])

ls_hedge_params={"Weight of Hedge" : 0.5, \
"Target Beta" : 1,\
"Type of Hedge" : "Long and Short",\
"Rebalancing" : "Weekly",\
"Number of equities" : 30, \
"Lookback period" : "365 days"}
report.print_stats(df_aapl, ["$SPX","MSFT"], "AAPL", s_fund_name="Test Portfolio", original=df_goog, s_original_name="UnHedged", d_trading_params={"Number of trades":200,"Trading Period":"Weekly"},d_hedge_params=ls_hedge_params, s_comments="This is a sample report generated by tutorial 5.", commissions=f_commision, slippage=f_slippage, directory="./AAPL/")
#print "Analyzing Transactions..."
#csv2fund.analyze_transactions("transactions.csv","AAPL")
print "Done"