Perp place order: more logging for reduce only (#468)
This commit is contained in:
parent
70b65c5880
commit
5c7f23adb1
|
@ -87,22 +87,27 @@ pub fn perp_place_order(
|
||||||
let pp = account.perp_position(perp_market_index)?;
|
let pp = account.perp_position(perp_market_index)?;
|
||||||
let effective_pos = pp.effective_base_position_lots();
|
let effective_pos = pp.effective_base_position_lots();
|
||||||
let max_base_lots = if order.reduce_only || perp_market.is_reduce_only() {
|
let max_base_lots = if order.reduce_only || perp_market.is_reduce_only() {
|
||||||
if (order.side == Side::Bid && effective_pos >= 0)
|
let allowed_base_lots = if order.side == Side::Bid {
|
||||||
|| (order.side == Side::Ask && effective_pos <= 0)
|
|
||||||
{
|
|
||||||
0
|
|
||||||
} else if order.side == Side::Bid {
|
|
||||||
// ignores open asks
|
// ignores open asks
|
||||||
(effective_pos + pp.bids_base_lots)
|
msg!(
|
||||||
.min(0)
|
"reduce only: effective base position incl open bids is {} lots",
|
||||||
.abs()
|
effective_pos + pp.bids_base_lots
|
||||||
.min(order.max_base_lots)
|
);
|
||||||
|
(effective_pos + pp.bids_base_lots).min(0).abs()
|
||||||
} else {
|
} else {
|
||||||
// ignores open bids
|
// ignores open bids
|
||||||
(effective_pos - pp.asks_base_lots)
|
msg!(
|
||||||
.max(0)
|
"reduce only: effective base position incl open asks is {} lots",
|
||||||
.min(order.max_base_lots)
|
effective_pos - pp.asks_base_lots
|
||||||
}
|
);
|
||||||
|
(effective_pos - pp.asks_base_lots).max(0)
|
||||||
|
};
|
||||||
|
msg!(
|
||||||
|
"max allowed {:?}: {} base lots",
|
||||||
|
order.side,
|
||||||
|
allowed_base_lots
|
||||||
|
);
|
||||||
|
allowed_base_lots.min(order.max_base_lots)
|
||||||
} else {
|
} else {
|
||||||
order.max_base_lots
|
order.max_base_lots
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue