def setUp(self): self.date_range = date_range('1/1/2011', periods=30, freq='D') self.ts = Series(0, index=self.date_range) start_date = datetime(2011, 1, 1) end_date = datetime(2011, 12, 31) self.market = Market(["AAPL", "IBM"], start_date, end_date) self.portfolio = Portfolio(self.market, 1000000) self.buy_aapl_order = Order(self.market, "2011-01-10", "AAPL", "Buy", 100) self.buy_ibm_order = Order(self.market, "2011-01-11", "IBM", "Buy", 15) self.sell_aapl_order = Order(self.market, "2011-01-12", "AAPL", "Sell", 50) self.sell_ibm_order = Order(self.market, "2011-01-14", "IBM", "Sell", 15)
class OrderTest(unittest.TestCase): def setUp(self): self.date_range = date_range('1/1/2011 16:00:00', periods=10, freq='D') self.ts = Series(0, index=self.date_range) self.buy_order = Order(None, "2011-01-02", "AAPL", "Buy", 100) self.sell_order = Order(None, "2011-01-03", "AAPL", "Sell", 50) def test_buy_order(self): new_ts = self.buy_order.update_number_of_shares_held(self.ts) self.assertEqual(self.ts["2011-01-01"],0) self.assertEqual(self.ts["2011-01-02"],100) self.assertEqual(self.ts["2011-01-03"],100) def test_buy_and_sell(self): new_ts = self.buy_order.update_number_of_shares_held(self.ts) new_ts = self.sell_order.update_number_of_shares_held(new_ts) self.assertEqual(self.ts["2011-01-01"],0) self.assertEqual(self.ts["2011-01-02"],100) self.assertEqual(self.ts["2011-01-03"],50) self.assertEqual(self.ts["2011-01-04"],50)
class OrderTest(unittest.TestCase): def setUp(self): self.date_range = date_range('1/1/2011 16:00:00', periods=10, freq='D') self.ts = Series(0, index=self.date_range) self.buy_order = Order(None, "2011-01-02", "AAPL", "Buy", 100) self.sell_order = Order(None, "2011-01-03", "AAPL", "Sell", 50) def test_buy_order(self): new_ts = self.buy_order.update_number_of_shares_held(self.ts) self.assertEqual(self.ts["2011-01-01"], 0) self.assertEqual(self.ts["2011-01-02"], 100) self.assertEqual(self.ts["2011-01-03"], 100) def test_buy_and_sell(self): new_ts = self.buy_order.update_number_of_shares_held(self.ts) new_ts = self.sell_order.update_number_of_shares_held(new_ts) self.assertEqual(self.ts["2011-01-01"], 0) self.assertEqual(self.ts["2011-01-02"], 100) self.assertEqual(self.ts["2011-01-03"], 50) self.assertEqual(self.ts["2011-01-04"], 50)
def parse(self): """ Parse CSV file and create Order instances. Also generates set of symbols traded and trades timestamps range """ parsed_df = pd.read_csv(self.filename) for index, row in parsed_df.T.iteritems(): timestamp = str(row['year']) + "-" + str(row['month']) + "-" + str( row['day']) new_order = Order(None, timestamp, row['symbol'], row['type'], row['shares']) super(CSVOrderParser, self).add_parsed_order(new_order) super(CSVOrderParser, self).add_symbol_traded(row['symbol']) super(CSVOrderParser, self).check_timestamp(timestamp) return True
def setUp(self): self.date_range = date_range('1/1/2011 16:00:00', periods=10, freq='D') self.ts = Series(0, index=self.date_range) self.buy_order = Order(None, "2011-01-02", "AAPL", "Buy", 100) self.sell_order = Order(None, "2011-01-03", "AAPL", "Sell", 50)