diff --git a/rustybot/src/managers.rs b/rustybot/src/managers.rs index bf34e82..e62136b 100644 --- a/rustybot/src/managers.rs +++ b/rustybot/src/managers.rs @@ -33,40 +33,6 @@ pub struct PriceManager { client: Client, } -pub struct PriceManagerHandle { - sender: Sender, -} - -impl PriceManagerHandle { - async fn run_price_manager(mut manager: PriceManager) { - while let Some(msg) = manager.receiver.recv().await { - manager.handle_message(msg).await.unwrap(); - } - } - - pub fn new(pair: SymbolPair, client: Client) -> Self { - let (sender, receiver) = channel(1); - - let price_manager = PriceManager::new(receiver, pair, client); - tokio::spawn(PriceManagerHandle::run_price_manager(price_manager)); - - Self { sender } - } - - pub async fn update(&mut self, tick: u64) -> Result { - let (send, recv) = oneshot::channel(); - - self.sender - .send(ActorMessage { - message: Message::Update { tick }, - respond_to: send, - }) - .await?; - - Ok(recv.await?) - } -} - impl PriceManager { pub fn new(receiver: Receiver, pair: SymbolPair, client: Client) -> Self { PriceManager { @@ -112,6 +78,40 @@ impl PriceManager { } } +pub struct PriceManagerHandle { + sender: Sender, +} + +impl PriceManagerHandle { + async fn run_price_manager(mut manager: PriceManager) { + while let Some(msg) = manager.receiver.recv().await { + manager.handle_message(msg).await.unwrap(); + } + } + + pub fn new(pair: SymbolPair, client: Client) -> Self { + let (sender, receiver) = channel(1); + + let price_manager = PriceManager::new(receiver, pair, client); + tokio::spawn(PriceManagerHandle::run_price_manager(price_manager)); + + Self { sender } + } + + pub async fn update(&mut self, tick: u64) -> Result { + let (send, recv) = oneshot::channel(); + + self.sender + .send(ActorMessage { + message: Message::Update { tick }, + respond_to: send, + }) + .await?; + + Ok(recv.await?) + } +} + #[derive(Clone, Debug)] pub struct PriceEntry { tick: u64, @@ -431,14 +431,14 @@ impl OrderManager { // No open order, undercutting best price with limit order let closing_price = self.best_closing_price(&position, &order_book); - // TODO: hardcoded platform to Margin! + // TODO: hardcoded platform to Derivative! let order_form = OrderForm::new( self.pair.clone(), OrderKind::Limit { price: closing_price, amount: position.amount().neg(), }, - TradingPlatform::Margin, + TradingPlatform::Derivative, ); info!("Submitting {} order", order_form.kind());