示例#1
0
文件: test_sssm.py 项目: erykwb/sssm
 def test_08_all_share_index(self):
     exchange = sssm.Exchange()
     exchange.trades = [
         sssm.Trade(stock=MMock(symbol='TEA'), quantity=16, action=sssm.TradeType.buy, price=100),
         sssm.Trade(stock=MMock(symbol='POP'), quantity=32, action=sssm.TradeType.buy, price=50),
         sssm.Trade(stock=MMock(symbol='POP'), quantity=64, action=sssm.TradeType.buy, price=100)            
     ]
     self.assertAlmostEqual(91.2870929, exchange.all_share_index(duration=FIVE_MINUTES))
示例#2
0
文件: test_sssm.py 项目: erykwb/sssm
 def test_05_volume_weighted_price_by_stock(self):
     exchange = sssm.Exchange()
     stock = MMock(symbol='TEST')
     exchange.trades = [
         sssm.Trade(stock=stock, quantity=16, action=sssm.TradeType.buy, price=100),
         sssm.Trade(stock=stock, quantity=32, action=sssm.TradeType.buy, price=50)
     ]
     self.assertAlmostEqual(66.666666666, exchange.price_by_stock('TEST', duration=5*60))
示例#3
0
文件: test_sssm.py 项目: erykwb/sssm
 def test_04_record_multiple_trades(self):
     exchange = sssm.Exchange()
     trades = [MMock(), MMock(), MMock(), MMock(), MMock()]
     for trade in trades:
         exchange.record_trade(trade)
     # Test that trades are recorded
     self.assertEqual(5, len(exchange.trades))
     # Test append order preserved
     self.assertEqual(trades[4], exchange.trades[-1])
     self.assertEqual(trades[0], exchange.trades[0])
示例#4
0
文件: test_sssm.py 项目: erykwb/sssm
 def test_07_volume_weighted_price_by_stock_duration(self):
     exchange = sssm.Exchange()
     stock = MMock(symbol='TEST')
     exchange.trades = [
         sssm.Trade(stock=stock, quantity=16, action=sssm.TradeType.buy, price=100),
         sssm.Trade(stock=stock, quantity=32, action=sssm.TradeType.buy, price=50),
         sssm.Trade(stock=stock, quantity=64, action=sssm.TradeType.buy, price=100)            
     ]
     # Move trade out of specified time interval
     exchange.trades[0].timestamp = (datetime.utcnow() - timedelta(seconds=FIVE_MINUTES+10))
     self.assertAlmostEqual(83.3333333, exchange.price_by_stock('TEST', duration=FIVE_MINUTES))
示例#5
0
文件: test_sssm.py 项目: erykwb/sssm
 def test_02_record_trade(self):
     exchange = sssm.Exchange()
     trade = MMock()
     exchange.record_trade(trade)
     # Test that the last trade is appended to the end of list type class
     self.assertEqual(trade, exchange.trades[-1])
示例#6
0
文件: test_sssm.py 项目: erykwb/sssm
 def test_01_create_exchange(self):
     exchange = sssm.Exchange()
     # Test that the Exchange is initialised empty
     self.assertEqual(0, len(exchange.trades))
示例#7
0
文件: test_sssm.py 项目: erykwb/sssm
 def test_09_all_share_index_none(self):
     exchange = sssm.Exchange()
     # No trades added so the share index is None/NULL rather than Zero/0
     self.assertIsNone(exchange.all_share_index(duration=FIVE_MINUTES))
示例#8
0
文件: test_sssm.py 项目: erykwb/sssm
 def test_06_none_volume_weighted_price_by_stock(self):
     exchange = sssm.Exchange()
     self.assertIsNone(exchange.price_by_stock('TEST', duration=5*60))