Hello,

When I place a futures limit post-only order in cross-margin-mode, I want to calculate in advance if my margin is enough to execute the order (since changing from market orders to limit orders I often get “Margin is insufficient.”). I tried to understand the calculations mainly from these pages:

Let’s start with my confusions:

- I understand that the main check is cost <= available_balance and this only applies to “orders that open a position” as Binance defines it:

- Is there a way to
**stream**(not REST API) the available_balance? - I found different calculations for the available_balance. Which is correct?

Available Balance = Wallet Balance - Initial Margin + Unrealized PNL or

Available for Order = max(0, crossWalletBalance + ∑cross Unrealized P&L - (∑cross initial margin + ∑isolated open order initial margin)) - What is the formula for initial_margin (with leverage 1)?

abs(position_size)*mark_price or abs(position_size)*limit_order_price

- The formula for cost Cost = Initial Margin + Open Loss seems not right in all possible scenarios:

- scenario 1: I am holding 0 BTCUSDT and post a limit buy order of 1 BTCUSDT at 10’000USD. For this scenario the formula is right
- scenario 2: I am holding -1 BTCUSDT with notional 10’000USD (mark price 10’000USD) and post a limit buy order 1.5 BTCUSDT at 10’000USD. According to the formula I need 15’000USD margin for the order. According to my logic, I have already allocated 10’000USD margin to the short position, close it and open a long position of 0.5 BTCUSDT worth 5’000USD. The margin needed would be 5’000USD. Where is my confusion?

- There is also the formula Margin Requirement = Max(Abs(Position Notional Value** + Bid Order Value***), Abs(Position Notional Value - Ask Order Value)) / Leverage

- Let’s assume scenario 2 from above: According to this formula margin_requirement = max(abs(-10’000 + 1.5*10’000), abs(-10’000 - 0))/1 = 10’000USD. Again another value
- What is correct?

I hope, somebody can clarify my confusions. Thanks!