Skip to main content

apple_quant_algorithmic/
strategy.rs

1use 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}