-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
I don't understand your math.
my vision for calculating the balance is this:
if action == 2: # buy
buy_order_size = order_size
next_state.allocation_percentage = last_state.allocation_percentage + (1 - last_state.allocation_percentage) * buy_order_size
asset = last_state.balance * buy_order_size / last_state.close
next_state.assets = last_state.assets + asset
balance = last_state.balance * buy_order_size
next_state.balance = last_state.balance - balance - (balance * self.fee_ratio)
elif action == 1: # sell
sell_order_size = order_size
next_state.allocation_percentage = last_state.allocation_percentage - last_state.allocation_percentage * sell_order_size
balance = last_state.assets * sell_order_size * last_state.close
next_state.balance = last_state.balance + balance - (balance * self.fee_ratio)
next_state.assets = last_state.assets - last_state.assets * sell_order_size
maybe this is valid only for BTCUSDT on binance
after all, the exchange receives a percentage of all transactions, and in your code only a percentage of transactions is taken away, and not the purchase/sale cost
it is logical to assume that the transaction will be profitable if the sell_price / buy_price - 1 > fee_ratio
Metadata
Metadata
Assignees
Labels
No labels