no concurrent requests, nonce issue has to be fixed
This commit is contained in:
parent
32419952a8
commit
f66d7ef142
@ -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<Vec<Event>>, Option<Vec<Message>>);
|
||||
|
||||
@ -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<dyn PositionStrategy>) -> 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<dyn OrderStrategy>) -> 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 {
|
||||
|
Loading…
Reference in New Issue
Block a user