early exit on empty positions

This commit is contained in:
Giulio De Pasquale 2021-02-16 18:17:48 +00:00
parent 70c2dcde17
commit 6e848c35e3

View File

@ -66,6 +66,10 @@ impl Client {
let (mut positions, order_book, fees) = (positions?, order_book?, fees?);
let (best_ask, best_bid) = (order_book.lowest_ask(), order_book.highest_bid());
if positions.is_none() {
return Ok(None);
}
let derivative_taker = fees
.iter()
.filter_map(|x| match x {
@ -345,7 +349,9 @@ impl Connector for BitfinexConnector {
// adding leverage, if any
match order.leverage() {
Some(leverage) => pre_leverage.with_leverage(leverage as u32),
// TODO: CHANGEME!!!!
Some(leverage) => pre_leverage.with_leverage(15),
// Some(leverage) => pre_leverage.with_leverage(leverage.round() as u32),
None => pre_leverage,
}
};
@ -417,7 +423,8 @@ impl Connector for BitfinexConnector {
async fn trading_fees(&self) -> Result<Vec<TradingFees>, BoxError> {
let mut fees = vec![];
let accountfees = self.bfx.account.account_summary().await?;
let accountfees =
BitfinexConnector::retry_nonce(|| self.bfx.account.account_summary()).await?;
// Derivatives
let derivative_taker = TradingFees::Taker {
@ -507,6 +514,7 @@ impl TryInto<Position> for bitfinex::positions::Position {
}
};
println!("leverage: {}", self.leverage());
Ok(Position::new(
SymbolPair::from_str(self.symbol())?,
state,