update
This commit is contained in:
parent
2d50d9a990
commit
b8213a714c
65
backend/close_other_symbols.py
Normal file
65
backend/close_other_symbols.py
Normal file
@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
关闭非 BTCUSDT/ETHUSDT 的订单
|
||||
"""
|
||||
import sys
|
||||
import os
|
||||
|
||||
# 添加项目路径
|
||||
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
from app.services.paper_trading_service import get_paper_trading_service
|
||||
from app.services.binance_service import binance_service
|
||||
|
||||
def main():
|
||||
# 允许的交易对
|
||||
allowed_symbols = {'BTCUSDT', 'ETHUSDT'}
|
||||
|
||||
service = get_paper_trading_service()
|
||||
active_orders = service.get_active_orders()
|
||||
|
||||
print(f"当前活跃订单数: {len(active_orders)}")
|
||||
|
||||
# 找出需要平仓的订单
|
||||
orders_to_close = [
|
||||
order for order in active_orders
|
||||
if order.get('symbol') not in allowed_symbols
|
||||
]
|
||||
|
||||
if not orders_to_close:
|
||||
print("没有需要平仓的订单")
|
||||
return
|
||||
|
||||
print(f"\n需要平仓的订单数: {len(orders_to_close)}")
|
||||
|
||||
for order in orders_to_close:
|
||||
symbol = order.get('symbol')
|
||||
order_id = order.get('order_id')
|
||||
side = order.get('side')
|
||||
entry_price = order.get('entry_price', 0)
|
||||
|
||||
# 获取当前价格
|
||||
current_price = binance_service.get_current_price(symbol)
|
||||
|
||||
if not current_price:
|
||||
# 如果无法获取价格,使用入场价平仓(盈亏为0)
|
||||
print(f"无法获取 {symbol} 价格,使用入场价平仓")
|
||||
current_price = entry_price
|
||||
|
||||
print(f"\n平仓订单: {order_id[:12]}...")
|
||||
print(f" 交易对: {symbol}")
|
||||
print(f" 方向: {side}")
|
||||
print(f" 入场价: ${entry_price:,.2f}")
|
||||
print(f" 平仓价: ${current_price:,.2f}")
|
||||
|
||||
result = service.close_order_manual(order_id, current_price)
|
||||
|
||||
if result:
|
||||
print(f" 结果: 平仓成功,盈亏 {result.get('pnl_percent', 0):.2f}%")
|
||||
else:
|
||||
print(f" 结果: 平仓失败")
|
||||
|
||||
print("\n完成!")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Loading…
Reference in New Issue
Block a user