This commit is contained in:
lz_db
2025-11-22 16:08:27 +08:00
parent da459da0f3
commit 8646036ca5
5 changed files with 407 additions and 0 deletions

77
test/mytest2.py Normal file
View File

@@ -0,0 +1,77 @@
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}")