fix: reserver balance algo

This commit is contained in:
2025-07-20 23:23:56 +08:00
parent 3144ff492a
commit f2e5db86e1

12
main.py
View File

@@ -301,7 +301,7 @@ class GridTradingBot:
# 下单买1 # 下单买1
if ( if (
quote_balance - self.order_amount * buy_price > self.reserve_quote quote_balance - self.order_amount * buy_price >= self.reserve_quote
and self.is_order_value_valid(buy_price) and self.is_order_value_valid(buy_price)
): ):
if order_id := self.api_place_order(buy_price, "BUY"): if order_id := self.api_place_order(buy_price, "BUY"):
@@ -316,7 +316,7 @@ class GridTradingBot:
# 下单卖1 # 下单卖1
if ( if (
base_balance - self.order_amount > self.reserve_base base_balance - self.order_amount >= self.reserve_base
and self.is_order_value_valid(sell_price) and self.is_order_value_valid(sell_price)
): ):
if order_id := self.api_place_order(sell_price, "SELL"): if order_id := self.api_place_order(sell_price, "SELL"):
@@ -354,7 +354,7 @@ class GridTradingBot:
new_buy_price = self.calculate_grid_price(lowest_buy, 1, "BUY") new_buy_price = self.calculate_grid_price(lowest_buy, 1, "BUY")
required_quote = new_buy_price * self.order_amount required_quote = new_buy_price * self.order_amount
if quote_balance - required_quote > self.reserve_quote: if quote_balance - required_quote >= self.reserve_quote:
if self.is_order_value_valid(new_buy_price): if self.is_order_value_valid(new_buy_price):
if order_id := self.api_place_order(new_buy_price, "BUY"): if order_id := self.api_place_order(new_buy_price, "BUY"):
self.active_orders[order_id] = Order( self.active_orders[order_id] = Order(
@@ -391,7 +391,7 @@ class GridTradingBot:
lowest_buy, self.grid_count, "SELL" lowest_buy, self.grid_count, "SELL"
) )
new_sell_price = self.calculate_grid_price(highest_sell, 1, "SELL") new_sell_price = self.calculate_grid_price(highest_sell, 1, "SELL")
if base_balance - self.order_amount > self.reserve_base: if base_balance - self.order_amount >= self.reserve_base:
if self.is_order_value_valid(new_sell_price): if self.is_order_value_valid(new_sell_price):
if order_id := self.api_place_order(new_sell_price, "SELL"): if order_id := self.api_place_order(new_sell_price, "SELL"):
self.active_orders[order_id] = Order( self.active_orders[order_id] = Order(
@@ -562,8 +562,8 @@ if __name__ == "__main__":
"symbol": "BTCUSDC", "symbol": "BTCUSDC",
"csv_symbol": "BTCUSDT", "csv_symbol": "BTCUSDT",
"csv_file": "output/mexc_spot_grid_trades.csv", "csv_file": "output/mexc_spot_grid_trades.csv",
"grid_percentage": 0.0002, "grid_percentage": 0.0005,
"grid_count": 4, "grid_count": 5,
"order_amount": 0.00001, "order_amount": 0.00001,
"min_order_value": 1, "min_order_value": 1,
"reserve_base": 0, "reserve_base": 0,