Ejemplo n.º 1
0
def cumulative_state(transactions):
    dt = pd.DataFrame(transactions)
    dates = get_dates(transactions)
    timestamps = get_timestamps(dates)
    tickers = rt.all_tickers(transactions)
    cs = prepare_cs(dates, timestamps)
    for ticker in tickers:
        lq = list()
        lp = list()
        lv = list()
        for ldate in dates:
            quantity = dt[(dt.ticker == ticker) & (dt.dt_date <= ldate)]['quantity'].sum()
            price = cv.close_price_from(ldate, ticker)
            lq.append(quantity)
            lp.append(price)
            lv.append(quantity * price)
        cs[ticker + '_q'] = lq
        cs[ticker + '_p'] = lp
        cs[ticker + '_v'] = lv

    tv_list = list()
    for ldate in dates:
        total_value = 0.0
        for ticker in tickers:
            total_value = total_value + float(cs[cs.dt_date == ldate][ticker + '_v'])
        tv_list.append(total_value)
    cs['total_value'] = tv_list
    return cs
Ejemplo n.º 2
0
def worth_at_date(transaction_file, date):
    df = read_file(transaction_file)
    qs = df[df.dt_date <= date].groupby(['owner', 'ticker', 'quoted_in']).quantity.sum()
    return pd.DataFrame(qs).apply(lambda x: cv.close_price_from(date, x.name[1]) * x.quantity * cv.getUSDPair(date, x.name[2]),
                                  axis=1).reset_index().groupby('owner').sum()
Ejemplo n.º 3
0
def value_at(date, transactions):
    df = pd.DataFrame(transactions)
    df = df[df.dt_date <= date].groupby(['owner', 'ticker']).quantity.sum()
    df = pd.DataFrame(df).apply(lambda x: cv.close_price_from(date, x.name[1]) * x.quantity,
                                axis=1).reset_index().groupby('owner').sum()
    return df