MCPcopy Index your code
hub / github.com/dabeaz-course/python-mastery / MarketSimulator

Class MarketSimulator

Data/stocksim.py:125–161  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

123 round(self.low,2),self.volume]
124
125class MarketSimulator(object):
126 def __init__(self):
127 self.stocks = { }
128 self.prices = { }
129 self.time = 0
130 self.observers = []
131 def register(self,observer):
132 self.observers.append(observer)
133
134 def publish(self,record):
135 for obj in self.observers:
136 obj.update(record)
137 def add_history(self,filename):
138 hist = read_history(filename)
139 for record in hist:
140 if record[0] not in self.stocks:
141 self.stocks[record[0]] = StockTrack(record[0])
142 self.stocks[record[0]].add_data(record)
143
144 def reset(self,time):
145 self.time = time
146 for s in list(self.stocks.values()):
147 s.reset(time)
148
149 # Run forever. Dt is in seconds
150 def run(self,dt):
151 for s in self.stocks:
152 self.prices[s] = self.stocks[s].price
153 self.publish(self.stocks[s].make_record())
154 while self.time < 1000:
155 for s in self.stocks:
156 self.stocks[s].incr(dt/60.0) # Increment is in minutes
157 if self.stocks[s].price != self.prices[s]:
158 self.prices[s] = self.stocks[s].price
159 self.publish(self.stocks[s].make_record())
160 time.sleep(dt)
161 self.time += (dt/60.0)
162
163
164class BasicPrinter(object):

Callers 1

stocksim.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected