# 6.00 Problem Set 10 # Stock market simulation # # Name: # Time: # Collaborators: import pylab import random TRADINGDAYS = 200 # Number of trading days/year class Market: def __init__(self): self.tickers = set() self.stocks = [] def addStock(self, stk): if stk.getTicker() in self.tickers: raise 'Duplicate ticker' self.tickers.add(stk.getTicker) self.stocks.append(stk) def getStocks(self): return self.stocks def moveAllStocks(self): for stock in self.stocks: stock.makeMove() class Stock: def __init__(self, ticker, volatility, price = None): self.ticker = ticker self.volatility = volatility self.price = price def setPrice(self, price): self.price = price def makeMove(self): baseMove = random.gauss(0, self.volatility) self.price = self.price * (1.0 + baseMove) if self.price < 0.01: self.price = 0.0 def getPrice(self): return self.price def getTicker(self): return self.ticker def getVolatility(self): return self.volatility