не могу понять. Ты пишешь: newBalance = balance-trade["quantity"]; и записываешь newBalance в локальную переменную, но далее на запись у тебя идет глоб balance. мы же вроде операций над ней никаких не делали. что заставило static balance; изменить свое значение?
забыл написать balance = newBalance;
просто у меня там потом куча кода в зависимости от нового баланса. Обнуляются многие переменные и прочее. Так что я его просто не скопировал.
На вопрос зачем создавать отдельную переменную для нового баланса, если можно всегда работать со старым, отвечу, что иногда расчет такой не проходит, по непонятным причинам, и я обошелся малым - новой переменной.