|
|
@@ -509,7 +509,9 @@ class ArbitrageProcess:
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
# 判斷快速二賣條件
|
|
|
- diff = int(to_token_amount_human - self.exchange_sell_amount)
|
|
|
+ diff = to_token_amount_human - self.exchange_sell_amount
|
|
|
+ diff = diff.quantize(self.coin_asset_precision, rounding=ROUND_DOWN)
|
|
|
+
|
|
|
value = diff * self.sell_price
|
|
|
value = value.quantize(Decimal('1e-4'), rounding=ROUND_DOWN)
|
|
|
if value > 2:
|
|
|
@@ -517,11 +519,20 @@ class ArbitrageProcess:
|
|
|
logger.info(msg)
|
|
|
add_state_flow_entry(self.process_item, self.current_state, msg, "success")
|
|
|
|
|
|
+ # 初始化 quantity 变量
|
|
|
+ quantity_for_api = None
|
|
|
+ # 用求余法判断是否是整数
|
|
|
+ if diff % 1 == 0:
|
|
|
+ # 如果是整数,转换为 int 类型。某些API可能只接受整数交易对的整数数量
|
|
|
+ quantity_for_api = int(diff)
|
|
|
+ else:
|
|
|
+ # 如果是非整数,转换为 float 类型。这是最常见的API数量类型
|
|
|
+ quantity_for_api = float(diff)
|
|
|
order_params = {
|
|
|
"symbol": self.symbol.replace('_', ''),
|
|
|
"side": "SELL",
|
|
|
"type": "MARKET",
|
|
|
- "quantity": int(diff),
|
|
|
+ "quantity": quantity_for_api,
|
|
|
}
|
|
|
order_params_formated = pformat(order_params, indent=2)
|
|
|
exchange_sell_order = mexc.trade.post_order(order_params)
|