Futu Quantitative Trading API
Project description
Futu API
简介
Futu API开源项目可以满足使用Futu API进行量化投资的需求, 并提供包括Python、Json/Protobuf协议的行情及交易接口。
安装
pip install futu-api
注: 本API支持Python2.7/Python3.x。
快速上手
# 导入futu-api
import futu as ft
# 实例化行情上下文对象
quote_ctx = ft.OpenQuoteContext(host="127.0.0.1", port=11111)
# 上下文控制
quote_ctx.start() # 开启异步数据接收
quote_ctx.set_handler(ft.TickerHandlerBase()) # 设置用于异步处理数据的回调对象(可派生支持自定义)
# 低频数据接口
market = ft.Market.HK
code = 'HK.00123'
code_list = [code]
plate = 'HK.BK1107'
print(quote_ctx.request_trading_days(market, start=None, end=None)) # 获取交易日
print(quote_ctx.get_stock_basicinfo(market, stock_type=ft.SecurityType.STOCK)) # 获取股票信息
print(quote_ctx.get_market_snapshot(code_list)) # 获取市场快照
print(quote_ctx.get_plate_list(market, ft.Plate.ALL)) # 获取板块集合下的子板块列表
print(quote_ctx.get_plate_stock(plate)) # 获取板块下的股票列表
# 高频数据接口
quote_ctx.subscribe(code, [ft.SubType.QUOTE, ft.SubType.TICKER, ft.SubType.K_DAY, ft.SubType.ORDER_BOOK, ft.SubType.RT_DATA, ft.SubType.BROKER])
print(quote_ctx.get_stock_quote(code)) # 获取报价
print(quote_ctx.get_rt_ticker(code)) # 获取逐笔
print(quote_ctx.get_cur_kline(code, num=100, ktype=ft.KLType.K_DAY)) #获取当前K线
print(quote_ctx.get_order_book(code)) # 获取摆盘
print(quote_ctx.get_rt_data(code)) # 获取分时数据
print(quote_ctx.get_broker_queue(code)) # 获取经纪队列
# 停止异步数据接收
quote_ctx.stop()
# 关闭对象
quote_ctx.close()
# 实例化港股交易上下文对象
trade_hk_ctx = ft.OpenSecTradeContext(host="127.0.0.1", port=11111)
# 交易接口列表
print(trade_hk_ctx.unlock_trade(password='123456')) # 解锁接口
print(trade_hk_ctx.accinfo_query(trd_env=ft.TrdEnv.SIMULATE)) # 查询账户信息
print(trade_hk_ctx.place_order(price=1.1, qty=2000, code=code, trd_side=ft.TrdSide.BUY, order_type=ft.OrderType.NORMAL, trd_env=ft.TrdEnv.SIMULATE)) # 下单接口
print(trade_hk_ctx.order_list_query(trd_env=ft.TrdEnv.SIMULATE)) # 查询订单列表
print(trade_hk_ctx.position_list_query(trd_env=ft.TrdEnv.SIMULATE)) # 查询持仓列表
trade_hk_ctx.close()
示例策略
- 示例策略文件位于目录: (futu-api包安装目录)/py-futu-api/examples 下,用户可参考实例策略来学习API的使用。
调试开关和推送记录
- set_futu_debug_model函数可以打开或关闭调试级别的log记录。
- 如果打开记录,则会记录info级别的log并且记录所有逐笔、摆盘、券商经纪的推送记录,以便于后面排查,文件记录在%appdata%(%HOME%)\com.futunn.FutuOpenD\Log下面
- tools\analysis下面会有对逐笔、摆盘、券商经纪的推送记录的分析脚本,与我们联系,拿到原始交易所数据后,可以载入比对(beta功能)
组织结构
.
├── futu
│ ├── __init__.py
│ ├── VERSION.txt
│ ├── common #主要框架代码
│ │ ├── __init__.py
│ │ ├── callback_executor.py
│ │ ├── comm_add_path.py
│ │ ├── conn_key.txt
│ │ ├── conn_mng.py
│ │ ├── constant.py
│ │ ├── err.py
│ │ ├── ft_logger.py
│ │ ├── handler_context.py
│ │ ├── network_manager.py
│ │ ├── open_context_base.py
│ │ ├── pbjson.py
│ │ ├── sys_config.py
│ │ ├── utils.py
│ │ └── pb #Protobuf协议定义及生成文件
│ │ ├── __init__.py
│ │ ├── *.proto
│ │ └── *_pb2.py
│ ├── examples #示例demo
│ │ ├── __init__.py
│ │ ├── get_mkt_snapshot_demo.py
│ │ ├── macd_strategy.py
│ │ ├── quote_and_trade_demo.py
│ │ ├── quote_push.py
│ │ ├── simple_filter_demo.py
│ │ └── stocksell_demo.py
│ ├── quote #行情相关接口代码
│ │ ├── __init__.py
│ │ ├── head.html
│ │ ├── open_quote_context.py
│ │ ├── quote_get_warrant.py
│ │ ├── quote_query.py
│ │ ├── quote_response_handler.py
│ │ ├── quote_stockfilter_info.py
│ │ └── quote_tool.py
│ ├── trade #交易相关接口代码
│ │ ├── __init__.py
│ │ ├── open_trade_context.py
│ │ ├── trade_query.py
│ │ └── trade_response_handler.py
│ └── tools #工具及代码生成脚本
│ ├── __init__.py
│ ├── auto_generate.py
│ ├── generate_code.py
│ ├── load_template.py
│ └── analysis
│ ├── broker_analysis.py
│ ├── orderbook_analysis.py
│ └── ticker_analysis.py
├── requirements.txt
└── setup.py
使用须知
- python脚本运行前,需先启动FutuOpenD网关客户端
API与FutuOpenD网关客户端的架构
使用说明
- 有任何问题可以到 issues 处提出,我们会及时进行解答。
- 使用新版本时请先仔细阅读接口文档,大部分问题都可以在接口文档中找到你想要的答案。
- 欢迎大家提出建议、也可以提出各种需求,我们一定会尽量满足大家的需求。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
futu_api-10.3.6308.tar.gz
(6.2 MB
view details)
File details
Details for the file futu_api-10.3.6308.tar.gz.
File metadata
- Download URL: futu_api-10.3.6308.tar.gz
- Upload date:
- Size: 6.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8922ae6c247468bdca4dfa40e0b602988d2f79a935c1c9a98e0a96fc5303444
|
|
| MD5 |
ce16dce36fa956ad6e8c93d78a9af146
|
|
| BLAKE2b-256 |
cdd28210a51f9775e5910a2a088471a86f81385d90aa22b5e9448d1eb18dd5e4
|