如何使用Jupyter NoteBook进行IB查询和交易以及使用算法交易
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍如何使用Jupyter NoteBook进行IB查询和交易以及使用算法交易,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Script_engine的大多操作都是
千家信息网最后更新 2025年01月23日如何使用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安全错误
数据库的锁怎样保障安全
护苗 网络安全课讲话稿
关于网络安全的句子有哪些
网络技术招生名额
上海hp服务器阵列卡品牌
网络安全指示语
服务器怎么用输入法
威纶触摸屏数据库的建立
湖南百信云龙服务器单价
公司网络安全保卫部职责
数据库父子节点层级顺序
网络安全说的HW是啥
战争雷霆国服无法连接至服务器
远程到服务器
计算机网络技术哪里可以学
宁波安卓软件开发周期
数据库文件分离后还原不了
绝地求生台服服务器地址
清华同方软件开发 待遇
防沉迷网络安全教育心得
控规数据库建设技术要求
软件开发项目管理日报表
flash更新服务器
电视上你的网络无法连接到服务器
车载网络技术的理解
百万级别数据库插入
奇迹显示和服务器连接中断
移动互联网和软件开发与测试
人人参与画好网络安全同心圆
怎么把服务器锁起来
网络技术部任职计划和设想