如何使用Jupyter NoteBook进行IB查询和交易以及使用算法交易
发表于:2025-11-20 作者:千家信息网编辑
千家信息网最后更新 2025年11月20日,这篇文章主要介绍如何使用Jupyter NoteBook进行IB查询和交易以及使用算法交易,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Script_engine的大多操作都是
千家信息网最后更新 2025年11月20日如何使用Jupyter NoteBook进行IB查询和交易以及使用算法交易
这篇文章主要介绍如何使用Jupyter NoteBook进行IB查询和交易以及使用算法交易,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Script_engine的大多操作都是针对main_engine的封装,类似的逻辑,其他交易相关App,也可以用类似方法调用,真的很方便,比起之前调试来说。其实算法交易调用也很直接,直接传入algo setting 的dict就可以。
应为Jupyter NoteBook代码不好贴,我这里又改写会直接python code。在启动tws登录后,可以直接运行。
另外IB接口的返回信息采用一个中wrapper机制,有点类似Spring的反转调用,可以理解为本地返回方法是被IBapi调用的写入。
from vnpy.app.script_trader import init_cli_tradingfrom vnpy.gateway.ib import IbGatewayfrom time import sleep# 连接到服务器setting = { "TWS地址": "127.0.0.1", "TWS端口": 7497, "客户号":5 #每个链接用一个独立的链接号,一个IBAPI支持32个来同时链接}engine = init_cli_trading([IbGateway]) #返回Script_engine 示例,并且给main_engine注册了gatewayengine.connect_gateway(setting, "IB") #链接# 查询资金 - 自动sleep(10)print(engine.get_all_accounts(use_df = True))# 查询持仓print(engine.get_all_positions(use_df = True))# 订阅行情from vnpy.trader.constant import Exchangefrom vnpy.trader.object import SubscribeRequest# 从我测试直接用Script_engine有问题,IB的品种太多,get_all_contracts命令不行,需要指定具体后才可以,这里使用main_engine订阅req1 = SubscribeRequest("152791428",Exchange.SEHK) #创建行情订阅,腾讯req2 = SubscribeRequest("332623976",Exchange.SEHK) #创建行情订阅,美团req3 = SubscribeRequest("12087792",Exchange.IDEALPRO) #创建行情订阅,美团engine.main_engine.subscribe(req1,"IB")engine.main_engine.subscribe(req2,"IB")engine.main_engine.subscribe(req3,"IB")# 返回行情sleep(10)print(engine.get_all_contracts(use_df = True)) #返回所有已经订阅的contactprint(engine.get_contract("152791428.SEHK",use_df = True)) #返回单个订阅的contactprint(engine.get_ticks(["152791428.SEHK","332623976.SEHK"],use_df = True)) #返回订阅的tick# 委托下单,返回订单号from vnpy.trader.constant import OrderTypevt_orderid = engine.buy(vt_symbol = "12087792.IDEALPRO",price = 1.20, volume = 50000, order_type = OrderType.LIMIT)print(vt_orderid)# 按照订单号查询委托状态,这里也可以用get_orders, 查询订单号队列sleep(10)print(engine.get_order(vt_orderid)) #print(engine.get_trades(vt_orderid, use_df= True))# 再次查询持仓print(engine.get_all_positions(use_df = True))# 使用算法交易引擎from vnpy.app.algo_trading import AlgoTradingAppengine.main_engine.add_app(AlgoTradingApp) #加入appAlgoInstance = engine.main_engine.get_engine("AlgoTrading") #为了方便,这里直接用返回的AlgoInstance# 创建算法交易的要执行交易内容, 这个可以复制 algo_trading_setting.json的内容,这里这里策略是,100秒内每隔10秒下单一次,每次购买10000AlgotradingDict1 = { "template_name": "TwapAlgo", "vt_symbol": "12087792.IDEALPRO", "direction": "多", "price": 1.0985, "volume": 10000.0, "time": 100, "interval": 10, "offset": "" }AlgoInstance.start_algo(setting = AlgotradingDict1)# 再次查询持仓print(engine.get_all_positions(use_df = True))以上是"如何使用Jupyter NoteBook进行IB查询和交易以及使用算法交易"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
交易
查询
订阅
算法
行情
内容
链接
订单
订单号
再次
方法
篇文章
委托
不行
不好
代码
价值
兴趣
单个
同时
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
盐城软件开发价钱
网络安全相关培训就业待遇
服务器登录帐号
上海供应链管理软件开发商
根服务器枯竭的替代方案
大航海时代5网页服务器端
山东项目软件开发定做
2019网络技术真题
全国扫码支付软件开发
计算机网络技术专业的爱好
山东正规软件开发供应商
重庆互联网科技学校
数据库error1055
江苏知名服务器应用范围
软件开发与调试
花呗提额服务器调整要多久
服务器管理器角色无法打开
云用户实例服务器释放后
吉林网络安全工程信息推荐
系统自动创建的数据库有哪些
宿迁配方管理软件开发
渗透网络安全培训
软件开发毕业设计三项文档
软件开发项目工作周报
十四五网络安全工作
数据库表导出到文本文件
网络安全未来的核心资产
百度地图能不能导出数据库
互联网平安金融科技
肇庆西餐桌上点餐软件开发