Пример #1
0
def main():
    #    db = psql.get_db()
    #    product_codes = db.prepare('''SELECT p.code AS code, p.id as id
    #        FROM products p LEFT JOIN companies c ON p.company_id = c.id
    #        WHERE c.sector IS NOT NULL
    #        and p.id < 9354
    #        ORDER BY p.id''')()

    product_codes = get_components_yahoo('^DJI').index
    total = len(product_codes)
    cur = 0
    products=[]

    logger.info('Start downloading of %d products.', len(product_codes))
    for code in product_codes:
        cur += 1
        try:
            product = DataReader(code, 'yahoo', start=date_from, end=date_to)
        except:
            logger.warn('(%d/%d) Fail downloading %s.', cur, total, code)
            continue

        product.code = code
        products.append(product)
        logger.info('(%d/%d) Downloaded %s.', cur, total, code)

    logger.info('Download complete.')
    return opt(products)
Пример #2
0
    def apply(self):
        self.analyze()
        self.summary()
        # self.plot()

    def __call__(self, *args, **kwargs):
        self.__dict__.update(kwargs)
        self.analyze()
        return self.revenue


if __name__ == '__main__':
    import util.log
    from pandas.io.data import DataReader

    date_from = '2003-01-01'
    date_to = '2013-01-01'

    model = MACD(12, 26, 9, verbose=True)

    code = 'GOOG'
    product = DataReader(code, 'yahoo', start=date_from, end=date_to)
    product.code = code
    model.product = product
    model.analyze()
    model.summary()

    # From 2003-01-01 to 2013-01-01, MACD(12, 26, 9)
    # Trade stat: 154 trades, total revenue 6904.1657838
Пример #3
0
def demo():

    product = DataReader(code, 'yahoo', start=date_from, end=date_to)
    product.code = code
    opt([product])