apple_quant_algorithmic/
strategy.rs1use crate::{
2 backend::{OrderIdGenerator, OrdersBackend},
3 instrument::{InstrumentData, InstrumentSpec},
4 order::{ActiveOrderGoals, ActiveStateGoal, DeferredOrderActions},
5 order_manager::{OrderManager, OrdersCapacitySpec},
6 timestamp::TickTimestamp,
7 volume::DirectionalExposure,
8};
9
10pub trait Strategy<IS: InstrumentSpec + Send, OB: OrdersBackend<IS>, CS: OrdersCapacitySpec> {
11 #[allow(unused_variables)]
12 fn initialize<'instrument_data, 'aggregated_data>(
13 &mut self,
14 tick_timestamp: &TickTimestamp,
15 instrument_data: &InstrumentData<'instrument_data, 'aggregated_data, IS>,
16 order_manager: &OrderManager<IS, CS>,
17 directional_exposure: &DirectionalExposure<IS>,
18 active_order_goals: &ActiveOrderGoals<IS>,
19 active_state_goal: &ActiveStateGoal,
20 deferred_order_actions: &mut DeferredOrderActions<IS>,
21 order_id_generator: &mut OrderIdGenerator,
22 ) -> impl Future<Output = ()> {
23 async {}
24 }
25
26 #[allow(unused_variables)]
27 fn data_update<'instrument_data, 'aggregated_data>(
28 &mut self,
29 tick_timestamp: &TickTimestamp,
30 instrument_data: &InstrumentData<'instrument_data, 'aggregated_data, IS>,
31 order_manager: &OrderManager<IS, CS>,
32 directional_exposure: &DirectionalExposure<IS>,
33 active_order_goals: &ActiveOrderGoals<IS>,
34 active_state_goal: &ActiveStateGoal,
35 deferred_order_actions: &mut DeferredOrderActions<IS>,
36 order_id_generator: &mut OrderIdGenerator,
37 ) -> impl Future<Output = ()> {
38 async {}
39 }
40}