MCPcopy
hub / github.com/quantopian/zipline / transaction_sim

Method transaction_sim

tests/test_finance.py:163–366  ·  view source on GitHub ↗

This is a utility method that asserts expected results for conversion of orders to transactions given a trade history

(self, **params)

Source from the content-addressed store, hash-verified

161 self.transaction_sim(**params1)
162
163 def transaction_sim(self, **params):
164 """This is a utility method that asserts expected
165 results for conversion of orders to transactions given a
166 trade history
167 """
168 trade_count = params['trade_count']
169 trade_interval = params['trade_interval']
170 order_count = params['order_count']
171 order_amount = params['order_amount']
172 order_interval = params['order_interval']
173 expected_txn_count = params['expected_txn_count']
174 expected_txn_volume = params['expected_txn_volume']
175
176 # optional parameters
177 # ---------------------
178 # if present, alternate between long and short sales
179 alternate = params.get('alternate')
180
181 # if present, expect transaction amounts to match orders exactly.
182 complete_fill = params.get('complete_fill')
183
184 asset1 = self.asset_finder.retrieve_asset(1)
185 with TempDirectory() as tempdir:
186
187 if trade_interval < timedelta(days=1):
188 sim_params = factory.create_simulation_parameters(
189 start=self.start,
190 end=self.end,
191 data_frequency="minute"
192 )
193
194 minutes = self.trading_calendar.minutes_window(
195 sim_params.first_open,
196 int((trade_interval.total_seconds() / 60) * trade_count)
197 + 100)
198
199 price_data = np.array([10.1] * len(minutes))
200 assets = {
201 asset1.sid: pd.DataFrame({
202 "open": price_data,
203 "high": price_data,
204 "low": price_data,
205 "close": price_data,
206 "volume": np.array([100] * len(minutes)),
207 "dt": minutes
208 }).set_index("dt")
209 }
210
211 write_bcolz_minute_data(
212 self.trading_calendar,
213 self.trading_calendar.sessions_in_range(
214 self.trading_calendar.minute_to_session_label(
215 minutes[0]
216 ),
217 self.trading_calendar.minute_to_session_label(
218 minutes[-1]
219 )
220 ),

Calls 15

orderMethod · 0.95
get_transactionsMethod · 0.95
process_transactionMethod · 0.95
prune_ordersMethod · 0.95
write_bcolz_minute_dataFunction · 0.90
DataPortalClass · 0.90
BcolzDailyBarWriterClass · 0.90
BcolzDailyBarReaderClass · 0.90
SimulationBlotterClass · 0.90
MetricsTrackerClass · 0.90

Tested by

no test coverage detected