diff --git a/rustybot/src/managers.rs b/rustybot/src/managers.rs index 3a224da..617f6fd 100644 --- a/rustybot/src/managers.rs +++ b/rustybot/src/managers.rs @@ -2,6 +2,7 @@ use std::collections::HashMap; use std::ops::Neg; use futures_util::stream::FuturesUnordered; +use futures_util::StreamExt; use log::{debug, error, info, trace}; use merge::Merge; use tokio::sync::mpsc::channel; @@ -16,7 +17,6 @@ use crate::models::{ }; use crate::strategy::{FastOrderStrategy, OrderStrategy, PositionStrategy, TrailingStop}; use crate::BoxError; -use futures_util::StreamExt; pub type OptionUpdate = (Option>, Option>); @@ -44,7 +44,7 @@ impl PriceManagerHandle { } pub fn new(pair: SymbolPair, client: Client) -> Self { - let (sender, receiver) = channel(8); + let (sender, receiver) = channel(1); let price_manager = PriceManager::new(receiver, pair, client); tokio::spawn(PriceManagerHandle::run_price_manager(price_manager)); @@ -164,7 +164,7 @@ impl PositionManagerHandle { } pub fn new(pair: SymbolPair, client: Client, strategy: Box) -> Self { - let (sender, receiver) = channel(8); + let (sender, receiver) = channel(1); let manager = PositionManager::new(receiver, pair, client, strategy); @@ -184,7 +184,7 @@ impl PositionManagerHandle { .await?; let response = recv.await?; - + println!("Got response: {:?}", response); Ok(response) } } @@ -228,6 +228,8 @@ impl PositionManager { _ => (None, None), }; + println!("Responding with {:?}", messages); + Ok(msg .respond_to .send((events, messages)) @@ -281,6 +283,7 @@ impl PositionManager { .insert(self.current_tick(), pos_post_tick.clone()); self.active_position = Some(pos_post_tick); + println!("Returning: {:?}", messages); return Ok((events, messages)); } } @@ -326,7 +329,7 @@ impl OrderManagerHandle { } pub fn new(pair: SymbolPair, client: Client, strategy: Box) -> Self { - let (sender, receiver) = channel(8); + let (sender, receiver) = channel(1); let manager = OrderManager::new(receiver, pair, client, strategy); @@ -405,11 +408,15 @@ impl OrderManager { info!("Closing position #{}", position_id); debug!("Retrieving open orders, positions and current prices..."); - let (open_orders, order_book, open_positions) = tokio::join!( - self.client.active_orders(&self.pair), - self.client.order_book(&self.pair), - self.client.active_positions(&self.pair) - ); + // let (open_orders, order_book, open_positions) = tokio::join!( + // self.client.active_orders(&self.pair), + // self.client.order_book(&self.pair), + // self.client.active_positions(&self.pair) + // ); + + let open_orders = self.client.active_orders(&self.pair).await; + let order_book = self.client.order_book(&self.pair).await; + let open_positions = self.client.active_positions(&self.pair).await; let open_orders = match open_orders { Ok(open_orders) => open_orders, @@ -599,6 +606,7 @@ impl PairManager { messages.merge(opt_pos_messages); messages.merge(opt_order_messages); + println!("Messages: {:?}", messages); // TODO: to move into Handler? if let Some(messages) = messages { for m in messages {