import ccxt # 使用您的配置 CONFIG = { 'apiKey': 'rFdbMs40biKImtwGnQ', 'secret': 'JOuEiGT1uCX9l2qbn9uZuZrVFraAZAA59mqY', 'verbose': False, 'enableRateLimit': True, 'enableDemoTrading': True, # 'defaultType': 'swap', # 'swap', 'future', 'option', 'spot' # 'options': { # 'defaultType': 'swap', # 使用合约交易 # 'fetchMarkets': { # 'types': ['linear'], # }, # 'defaultSubType': 'linear', # 'linear', 'inverse' # }, } def place_market_order(symbol, side, amount): """ 在Bybit下市价单 Args: symbol: 交易对,例如 'BTC/USDT' side: 方向 'buy' 或 'sell' amount: 数量 """ try: # 创建交易所实例 exchange = ccxt.bybit({ 'apiKey': CONFIG['apiKey'], 'secret': CONFIG['secret'], 'sandbox': False, # 使用实盘,如果是测试网改为 True 'verbose': CONFIG['verbose'], 'enableRateLimit': CONFIG['enableRateLimit'], }) exchange.enable_demo_trading(True) # 模拟交易 exchange.set_position_mode(True) # 设置双向持仓 # 下市价单 order = exchange.create_order( symbol=symbol, type='market', side=side, amount=amount, params={ 'timeInForce': 'FOK', # 对于市价单,FOK可能不适用 'positionIdx': 1 # 0: 单向模式 } # 额外参数 ) print("订单创建成功!") print(f"订单ID: {order['id']}") print(f"状态: {order['status']}") print(f"数量: {order['amount']}") print(f"成交数量: {order['filled']}") return order except Exception as e: print(f"下单失败: {e}") return None # 使用示例 if __name__ == "__main__": # 示例:市价买入 0.001 BTC symbol = 'BTC/USDT:USDT' side = 'buy' # 'buy' 或 'sell' amount = 0.001 order_result = place_market_order(symbol, side, amount) if order_result: print("\n订单详情:") print(order_result) # for key, value in order_result.items(): # print(f"{key}: {value}")