摘要: vn.py连接富途OpenAPI需申请权限,配置网关加载FutuGateway,实现下单、撤单及行情订阅。注意交易时段、风控和网络延迟。关键词:vn.py

准备工作

要连接富途交易接口,先得在富途开放平台注册开发者账号,创建应用获取AppID、SecretKey和Uid。这些凭证用于身份验证,确保交易安全。确保你的富途账号已开通美股交易权限,并完成相应的资金和风控设置。

安装必要库

vn.py通过FutuGateway模块支持富途接口,需要安装vnpyvnpy_futu。使用pip命令:


pip install vnpy

pip install vnpy_futu

安装完成后,检查版本兼容性,确保vn.py版本在2.0以上,因为FutuGateway基于新版API开发。

配置连接参数

在vn.py中,连接富途需要配置GatewaySettings,包括AppID、SecretKey、Uid以及服务器地址。富途OpenAPI提供了仿真和实盘两种环境,实盘地址为wss://openapi.futunn.com,仿真为wss://openapi-sim.futunn.com。将配置写入JSON文件或直接在代码中设置。

vn.py怎么连接富途交易接口做美股实盘?

初始化vn.py引擎

使用vnpy的EventEngine和MainEngine,加载FutuGateway。示例代码:


from vnpy.event import EventEngine

from vnpy.trader.engine import MainEngine

from vnpy.trader.setting import SETTING_FILENAME

from vnpy_futu import FutuGateway

SETTING_FILENAME = 'connect_futu.json'

event_engine = EventEngine()

main_engine = MainEngine(event_engine)

main_engine.add_gateway(FutuGateway)

然后调用connect方法传入设置字典。

连接与认证

启动引擎后,调用main_engine.connect(settings, gateway_name='FUTU'),引擎会发送认证请求。认证成功后,会收到on_login回调,此时可以开始交易。注意,认证过程中需保持网络通畅,避免超时。

订阅行情

通过main_engine.subscribe(req, gateway_name)订阅股票行情。请求中需设置symbol(如US.AAPL)和exchange(如NASDAQ)。订阅后,实时行情会通过on_tick回调推送。

下单交易

使用main_engine.send_order发送订单,需要构造OrderRequest,包含symbol、exchange、direction、offset、price和volume。富途支持美股市价单和限价单。示例:


from vnpy.trader.object import OrderRequest, Direction, Offset

req = OrderRequest(

    symbol='US.AAPL',

    exchange='NASDAQ',

    direction=Direction.LONG,

    offset=Offset.OPEN,

    price=150.0,

    volume=100,

    type=OrderType.LIMIT

)

orderid = main_engine.send_order(req, gateway_name='FUTU')

发送后,可以通过on_orderon_trade回调跟踪状态。

撤单操作

撤销订单时,调用main_engine.cancel_order,传入CancelRequest,包含orderid和symbol等。撤单请求会返回成功与否。

查询账户和持仓

调用main_engine.query_accountmain_engine.query_position获取账户资金和持仓信息。这些数据通过on_accounton_position回调更新。

风险管理

实盘交易中,必须严格控制风险。设置单笔止损、每日最大亏损和仓位限制。在策略中利用vn.py的风控组件,如RiskManager,实现事前风控。注意富途的交易规则,美股交易时段为美东时间9:30-16:00,冬令时与夏令时需调整。

实盘注意事项

  • 网络延迟:确保服务器与富途OpenAPI之间的网络连接稳定,最好使用低延迟线路。

  • API限频:富途OpenAPI有调用频率限制,需合理设计请求,避免触发限频。

  • 数据准确性:行情数据来自富途,可能与其他来源略有差异,需注意。

  • 接口变更:富途API可能更新,需关注官方文档,及时调整代码。

常见问题

  • 连接失败:检查AppID和SecretKey是否正确,网络是否通畅。

  • 订单不成交:确认美股交易时段,检查价格限制(如涨跌幅限制)。

  • 数据缺失:确保订阅了正确的symbol和exchange,且权限足够。

策略集成

将FutuGateway接入vn.py后,可以结合内置CTA策略引擎或自研策略。在策略中通过on_tick获取行情,调用send_order下单,实现自动交易。建议先在仿真环境测试策略,再投入实盘。

日志与监控

vn.py提供日志系统,配置日志级别,记录连接、下单、错误等信息。利用main_engine.write_log输出关键步骤,便于排查问题。定期检查日志,监控系统运行状态。

性能优化

对于高频交易,需优化数据接收与处理速度。使用异步编程,避免阻塞。vn.py的事件引擎已基于异步,但策略逻辑应避免耗时操作,使用队列等机制解耦。

安全考虑

保管好AppID和SecretKey,不要硬编码在代码中。使用环境变量或加密配置。避免在日志中打印敏感信息。

后续维护

实盘运行后,需定期检查策略表现,根据市场变化调整参数。关注富途API更新,及时升级vnpy_futu库。

通过上述步骤,你可以成功使用vn.py连接富途交易接口进行美股实盘交易。重要的是,在实盘前做足测试,熟悉API特性,并制定完善的风控措施。祝交易顺利。