Skip to content

Commit 48f3842

Browse files
committed
refactor(rust): refactor making response parts in exchange processors.
1 parent 3db5957 commit 48f3842

File tree

3 files changed

+31
-27
lines changed

3 files changed

+31
-27
lines changed

Diff for: hftbacktest/src/backtest/proc/l3_nopartialfillexchange.rs

+11-11
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,12 @@ where
100100
}
101101
}
102102

103+
fn make_response(&mut self, order: Order, timestamp: i64) {
104+
let local_recv_timestamp =
105+
order.exch_timestamp + self.order_latency.response(timestamp, &order);
106+
self.orders_to.append(order, local_recv_timestamp);
107+
}
108+
103109
fn process_recv_order_(
104110
&mut self,
105111
mut order: Order,
@@ -123,9 +129,7 @@ where
123129
return Err(BacktestError::InvalidOrderRequest);
124130
}
125131
// Makes the response.
126-
let local_recv_timestamp =
127-
recv_timestamp + self.order_latency.response(recv_timestamp, &order);
128-
self.orders_to.append(order, local_recv_timestamp);
132+
self.make_response(order, recv_timestamp);
129133
Ok(())
130134
}
131135

@@ -135,13 +139,11 @@ where
135139
order.status = Status::Expired;
136140
order.exch_timestamp = timestamp;
137141

138-
let local_recv_timestamp =
139-
order.exch_timestamp + self.order_latency.response(timestamp, &order);
140-
self.orders_to.append(order, local_recv_timestamp);
142+
self.make_response(order, timestamp);
141143
Ok(())
142144
}
143145

144-
fn fill<const INSERT_BUS: bool>(
146+
fn fill<const MAKE_RESPONSE: bool>(
145147
&mut self,
146148
order: &mut Order,
147149
timestamp: i64,
@@ -169,10 +171,8 @@ where
169171

170172
self.state.apply_fill(order);
171173

172-
if INSERT_BUS {
173-
let local_recv_timestamp =
174-
order.exch_timestamp + self.order_latency.response(timestamp, order);
175-
self.orders_to.append(order.clone(), local_recv_timestamp);
174+
if MAKE_RESPONSE {
175+
self.make_response(order.clone(), timestamp);
176176
}
177177
Ok(())
178178
}

Diff for: hftbacktest/src/backtest/proc/nopartialfillexchange.rs

+10-8
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,12 @@ where
117117
}
118118
}
119119

120+
fn make_response(&mut self, order: Order, timestamp: i64) {
121+
let local_recv_timestamp =
122+
order.exch_timestamp + self.order_latency.response(timestamp, &order);
123+
self.orders_to.append(order, local_recv_timestamp);
124+
}
125+
120126
fn process_recv_order_(
121127
&mut self,
122128
mut order: Order,
@@ -140,9 +146,7 @@ where
140146
return Err(BacktestError::InvalidOrderRequest);
141147
}
142148
// Makes the response.
143-
let local_recv_timestamp =
144-
recv_timestamp + self.order_latency.response(recv_timestamp, &order);
145-
self.orders_to.append(order, local_recv_timestamp);
149+
self.make_response(order, recv_timestamp);
146150
Ok(())
147151
}
148152

@@ -196,7 +200,7 @@ where
196200
Ok(())
197201
}
198202

199-
fn fill<const INSERT_BUS: bool>(
203+
fn fill<const MAKE_RESPONSE: bool>(
200204
&mut self,
201205
order: &mut Order,
202206
timestamp: i64,
@@ -224,10 +228,8 @@ where
224228

225229
self.state.apply_fill(order);
226230

227-
if INSERT_BUS {
228-
let local_recv_timestamp =
229-
order.exch_timestamp + self.order_latency.response(timestamp, order);
230-
self.orders_to.append(order.clone(), local_recv_timestamp);
231+
if MAKE_RESPONSE {
232+
self.make_response(order.clone(), timestamp);
231233
}
232234
Ok(())
233235
}

Diff for: hftbacktest/src/backtest/proc/partialfillexchange.rs

+10-8
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,12 @@ where
131131
}
132132
}
133133

134+
fn make_response(&mut self, order: Order, timestamp: i64) {
135+
let local_recv_timestamp =
136+
order.exch_timestamp + self.order_latency.response(timestamp, &order);
137+
self.orders_to.append(order, local_recv_timestamp);
138+
}
139+
134140
fn process_recv_order_(
135141
&mut self,
136142
mut order: Order,
@@ -154,9 +160,7 @@ where
154160
return Err(BacktestError::InvalidOrderRequest);
155161
}
156162
// Makes the response.
157-
let local_recv_timestamp =
158-
recv_timestamp + self.order_latency.response(recv_timestamp, &order);
159-
self.orders_to.append(order, local_recv_timestamp);
163+
self.make_response(order, recv_timestamp);
160164
Ok(())
161165
}
162166

@@ -236,7 +240,7 @@ where
236240
Ok(())
237241
}
238242

239-
fn fill<const INSERT_BUS: bool>(
243+
fn fill<const MAKE_RESPONSE: bool>(
240244
&mut self,
241245
order: &mut Order,
242246
timestamp: i64,
@@ -269,10 +273,8 @@ where
269273

270274
self.state.apply_fill(order);
271275

272-
if INSERT_BUS {
273-
let local_recv_timestamp =
274-
order.exch_timestamp + self.order_latency.response(timestamp, order);
275-
self.orders_to.append(order.clone(), local_recv_timestamp);
276+
if MAKE_RESPONSE {
277+
self.make_response(order.clone(), timestamp);
276278
}
277279
Ok(())
278280
}

0 commit comments

Comments
 (0)