Futu Algorithmic Trading Solution (Python) 使用教程
1. 项目介绍
Futu Algorithmic Trading Solution (Python)
是一个基于富途OpenAPI开发的量化交易程序。该项目旨在为香港股票市场的用户提供一个全面的量化交易解决方案,支持FutuNiuNiu和FutuMooMoo用户。项目的主要功能包括历史K线数据下载、回测交易策略、实时低延迟交易、高级股票筛选器以及即将推出的GUI支持。
2. 项目快速启动
2.1 安装依赖
首先,确保你已经安装了conda
环境管理工具。然后,使用以下命令安装项目的依赖:
conda env create -f environment.yml
2.2 安装FutuOpenD
根据你的操作系统(Windows/MacOS/CentOS/Ubuntu),从以下链接下载并安装FutuOpenD:
https://www.futunn.com/download/OpenAPI
确保你至少有一个LV1的订阅级别,以便获取所需的行情数据。
2.3 配置文件
在项目根目录下创建一个config.ini
文件,并根据以下模板进行配置:
[FutuOpenD Config]
Host = <OpenD Host>
Port = <OpenD Port>
WebSocketPort = <OpenD WebSocketPort>
WebSocketKey = <OpenD WebSocketKey>
TrdEnv = <SIMULATE or REAL>
[FutuOpenD Credential]
Username = <Futu Login Username>
Password_md5 = <Futu Login Password Md5 Value>
[FutuOpenD DataFormat]
HistoryDataFormat = ["code", "time_key", "open", "close", "high", "low", "pe_ratio", "turnover_rate", "volume", "turnover", "change_rate", "last_close"]
SubscribedDataFormat = None
[TradePreference]
LotSizeMultiplier = <# of Stocks to Buy per Signal>
MaxPercPerAsset = <Maximum % of Capital Allocated per Asset>
StockList = <Subscribed Stocks in List Format>
[Backtesting Commission HK]
FixedCharge = <Fixed Transaction Fee and Tax in HKD - 15.5>
PercCharge = <Percentage Transaction Fee in % - 0.1097>
[Email]
Port = <Server SMTP Setting>
SmtpServer = <Server SMTP Setting>
Sender = <Sender Email Address - account1@example.com>
Login = <Sender Email Address - account1@example.com>
Password = <Sender Email Password>
SubscriptionList = ["account1@example.com", "account2@example.com"]
[TuShare Credential]
token = 2134342ABC2D03780772038A7816
2.4 下载历史数据
使用以下命令下载历史K线数据:
python main_backend.py --force_update
2.5 执行算法交易
使用以下命令执行预定义的交易策略:
python main_backend.py --strategy MACD_Cross
3. 应用案例和最佳实践
3.1 回测交易策略
用户可以使用Pyfolio
等工具对历史数据进行回测,生成总结报告和可视化结果。对于更高级的用户,可以使用Amibroker等商业解决方案进行回测。
3.2 实时交易
项目支持实时低延迟交易,用户可以根据自己的偏好为每个股票指定交易策略。例如,使用MACD、KDJ和收盘价三个技术指标来决定买入或卖出订单。
3.3 高级股票筛选器
用户可以使用自定义的股票筛选策略筛选高质量的股票,并通过邮件订阅功能通知朋友。
4. 典型生态项目
4.1 Pyfolio
Pyfolio
是一个用于金融时间序列分析和回测的Python库,可以与Futu Algorithmic Trading Solution
结合使用,进行策略回测和性能分析。
4.2 Amibroker
Amibroker
是一个专业的量化交易平台,支持复杂的策略回测和优化,适合高级用户使用。
4.3 TuShare
TuShare
是一个用于获取中国股票市场数据的Python库,可以与Futu Algorithmic Trading Solution
结合使用,获取更多的市场数据。
通过以上步骤,你可以快速启动并使用Futu Algorithmic Trading Solution (Python)
进行量化交易。