Beispiel #1
0
    def testEventProfiler(self):

        startDate = dt.date(2011, 1, 1)
        endDate = dt.date(2011, 12, 31)
        symbols = ["AAPL", "XOM"]

        series = TimeSeries(startDate, endDate)
        window = MarketWindow(series, symbols)

        history = PricePanel(window, self.provider)

        def event(bar, prevbar, timestamp, index, symbol, timestamps):

            return True

        ev = event

        profiler = EventProfiler()
        profiler.config(window, history, event)

        df_eventHistory = profiler.find()
        self.assertEqual(df_eventHistory["AAPL"].iloc[121], 1)

        orders = profiler.generateOrders(100, 5)
        self.assertEqual(len(orders), 1008)

        str = orders.to_string()
        bits = str.split(",")
        self.assertEqual(len(bits), 5041)
    def foo(self):
    # def testCustomEvent(self):

        import QSTK.qstkutil.DataAccess as da

        balance   = 50000
        startDate = dt.date(2008,1,1)
        endDate   = dt.date(2009,12,31)

        provider = da.DataAccess('Yahoo')
        symbols  = provider.get_symbols_from_list('SP5002012')

        shares     = 100
        holdPeriod = dt.timedelta(days=5)

        orderFilename   = 'ev_orders.csv'
        historyFilename = 'ev_history.csv'

        profiler = EventProfiler()
        profiler.config(startDate, endDate, symbols).fetchHistory()

        def event(bar, prevbar, timestamp, index,
                  symbol, panel, symbols, timestamps):

            if prevbar is not None:

                res = bool((prevbar[ADJ_CLOSE] >= 8) and (bar[ADJ_CLOSE] < 8))
                return res

            else:
                return False

        ev = event
        df_eventHistory = profiler.setEvent(ev).find()
        # print df_eventHistory.to_string()

        orders = profiler.generateOrders(shares, holdPeriod)

        self.assertTrue(len(orders) > 0)

        # print orders.to_string()

        f = open(orderFilename,'w')
        f.write(orders.to_string())
        f.close()

        sim = self.blankSimulator()
        sim.config(startDate, endDate, balance, orderFilename, historyFilename)
        sim.bootstrap()
        sim.run()

        print sim.df_accountHistory.to_string()