Exemplo n.º 1
0
def _read_matrix(group):
    index = _read_index(group, 'index')
    columns = _read_index(group, 'columns')
    values = group.values[:]
    objects = None

    if hasattr(group, 'obj_columns'):
        obj_columns = _read_index(group, 'columns')
        obj_values = group.obj_values[:]
        objects = DataMatrix(obj_values, index=index, columns=obj_columns)

    return DataMatrix(values, index=index, columns=columns, objects=objects)
Exemplo n.º 2
0
    def __init__(self, models):
        self.models = models
        self.names = sorted(models.keys())

        mod = self.models.values()[0]
        self.pred_like = DataMatrix(dict(
            (k, v.pred_like) for k, v in models.iteritems()),
                                    index=mod.dates)
Exemplo n.º 3
0
def getQuotes(symbol, start, end):
    quotes = fin.quotes_historical_yahoo(symbol, start, end)
    dates, open, close, high, low, volume = zip(*quotes)

    data = {
        'open': open,
        'close': close,
        'high': high,
        'low': low,
        'volume': volume
    }

    dates = Index([datetime.fromordinal(int(d)) for d in dates])
    return DataMatrix(data, index=dates)
Exemplo n.º 4
0
    def __init__(self, phi):
        self.phi = phi
        self.p = len(phi)

        (self.modulus, self.frequency, self.wavelength,
         self.H) = self._compute_decomp()

        self.result = DataMatrix(
            {
                'wavelength': self.wavelength,
                'modulus': self.modulus,
                'frequency': self.frequency
            },
            columns=['modulus', 'wavelength', 'frequency'])
Exemplo n.º 5
0
    # Set start and end dates
    t = map(int, sys.argv[1].split('-'))
    startday = dt.datetime(t[2], t[0], t[1])
    t = map(int, sys.argv[2].split('-'))
    endday = dt.datetime(t[2], t[0], t[1])

    # Get desired timestamps
    timeofday = dt.timedelta(hours=16)
    timestamps = du.getNYSEdays(startday, endday, timeofday)

    # Get the data from the data store
    dataobj = da.DataAccess('Norgate')
    historic = dataobj.get_data(timestamps, symbols, "close")

    # Setup the allocation table
    alloc_val = random.random()
    alloc = DataMatrix(index=[historic.index[0]],
                       data=[alloc_val],
                       columns=symbols)
    for date in range(1, len(historic.index)):
        alloc_val = 1  #random.random()
        alloc = alloc.append(
            DataMatrix(index=[historic.index[date]],
                       data=[alloc_val],
                       columns=[symbols[0]]))
    alloc['_CASH'] = 1 - alloc[symbols[0]]

    # Dump to pkl file
    output = open(sys.argv[3], "wb")
    cPickle.dump(alloc, output)
Exemplo n.º 6
0
ibm['hi-lo spread'] = ibm['high'] - ibm['low']

# Aggregate monthly


def toMonthly(frame, how):
    offset = BMonthEnd()

    return frame.groupby(offset.rollforward).aggregate(how)


msftMonthly = toMonthly(msft, np.mean)
ibmMonthly = toMonthly(ibm, np.mean)

# Statistics

stdev = DataMatrix({'MSFT': msft.std(), 'IBM': ibm.std()})

# Arithmetic

ratios = ibm / msft

# Works with different indices

ratio = ibm / ibmMonthly
monthlyRatio = ratio.reindex(ibmMonthly.index)

# Ratio relative to past month average

filledRatio = ibm / ibmMonthly.reindex(ibm.index, fillMethod='pad')
Exemplo n.º 7
0
        'close' : close,
        'high' : high,
        'low' : low,
        'volume' : volume
    }

    dates = Index([datetime.fromordinal(int(d)) for d in dates])
    return DataMatrix(data, index=dates)

msft = getQuotes('MSFT', startDate, endDate)
aapl = getQuotes('AAPL', startDate, endDate)
goog = getQuotes('GOOG', startDate, endDate)
ibm = getQuotes('IBM', startDate, endDate)

px = DataMatrix({'MSFT' : msft['close'],
                 'IBM' : ibm['close'],
                 'GOOG' : goog['close'],
                 'AAPL' : aapl['close']})
returns = px / px.shift(1) - 1

# Select dates

subIndex = ibm.index[(ibm['close'] > 95) & (ibm['close'] < 100)]
msftOnSameDates = msft.reindex(subIndex)

# Insert columns

msft['hi-lo spread'] = msft['high'] - msft['low']
ibm['hi-lo spread'] = ibm['high'] - ibm['low']

# Aggregate monthly