一、概述
在量化交易这一专业领域,多种编程语言各显神通,Python、C++和Java都是其中的佼佼者。这三种语言各具特色与优势,适应了多样化的应用需求。
-
Python,简单易学且强大,使其在数据科学和量化交易领域备受青睐。
-
C++和Java,则为追求极致性能与低延迟的交易系统提供了坚实支持。
本书所探讨的交易系统,正是基于Python构建。Python的丰富第三方库、易用性,使其成为系统的不二之选。即便缺乏编程背景,读者也能通过在线学习迅速掌握Python,因此,本书将不再赘述基础编程内容。
Python环境
我们选择Anaconda作为Python的环境。Anaconda是一个专为科学计算设计的Python发行版,兼容Linux、Mac和Windows。它集成了众多科学计算和数据分析的Python包。更重要的是,Anaconda提供了便捷的包管理与环境管理功能。这意味着,无论是需要同时使用多个Python版本,还是安装各种第三方包,Anaconda都能轻松应对,使读者能够聚焦于功能开发,而非环境搭建。例如,我们需要创建python275和python397这两个版本,后续的三方库安装可以在对应环境下通过pip install进行。
Python的集成开发环境
我们选择PyCharm作为Python的集成开发环境。PyCharm是由JetBrains开发的,被广大开发者誉为最受欢迎的Python IDE之一。它集成了众多实用的功能和工具,旨在提升开发者的效率与代码质量,包括代码自动完成、调试器、版本控制工作集成、代码质量分析和重构工具等。
Python第三方库
-
Web开发:利用web.py或Flask,我们可以迅速搭建Web应用程序。同时,集成前端的js包如easyui、echart、jquery,使得开发过程更加快速,无需采用复杂的前后端分离技术。
-
数据库操作:mysql-connector-python库为MySQL数据库的操作提供了便捷。
-
数据处理:NumPy和Pandas库是数值计算和数据处理的得力助手。
-
定时调度:利用apscheduler库,轻松实现定时任务。
-
技术指标计算:Ta-lib、stockstats库为各种技术指标的计算提供了支持。
-
机器学习:scikit-learn和PyTorch库是机器学习和深度学习的利器。
-
券商库:富图牛牛futu-api包为获取行情和交易数据提供了便利。
必备软件工具
-
Nginx:它不仅是强大的反向代理工具,还确保负载均衡,使得应用能够处理大量并发请求。
-
MySQL:该数据库稳定可靠,用于安全地存储、管理与检索应用程序的关键数据。
-
Redis:通过其缓存和消息队列功能,提高应用的响应速度,并确保数据在系统中的高效流转。
-
Git:为团队提供版本控制和代码管理服务,确保代码的完整性、可追溯性,助力协作开发。
-
GitLab或Gitee代码库:提供一个可靠的在线平台,用于托管、分享与管理代码,确保代码的安全与便捷访问。
-
Chrome浏览器:凭借其强大的开发者工具,Chrome浏览器成为Web应用测试与调试的首选。
-
富图牛牛OpenD或其他终端软件:作为行情与交易网关,它提供稳定的行情数据接收与交易功能,确保我们在量化交易中的策略得以准确与实时地执行。
其他注意事项
1. 服务器选择:
为了兼顾开发与生产的需要,我们选用阿里云的ECS机器,并对其进行了特定的配置。最基本的配置:单机4核、16GB内存,并搭载Windows Server操作系统。这样的配置使得它既可以充当开发环境,也可以胜任生产环境。当然,Linux或Mac OS环境也是一个选项,但考虑到即可为生产也可做为开发机的成本,我们将选择windows系统。
2. 开发与生产环境目录的设定:
统一路径在程序中的使用是非常重要的。为此,我们需要在服务器上明确开发与生产环境的目录。具体操作为:在服务器上创建两个文件夹,分别命名为“开发环境”和“生产环境”。有了这两个文件夹,我们在程序中就可以利用绝对路径来轻松地访问或配置其中的文件。这样的操作方式,确保了目录结构的清晰,并提高了路径管理的便捷性。
C:\online -- 生产环境
├── databus -- 数据总线
├── biz_service -- 业务系统
├── front_web -- 主站web系统
├── ots_service -- 决策引擎
├── ml_service -- 机器学习
├── trade_terminal -- 交易终端
D:\workspace -- 开发环境
├── databus_dev
├── biz_service_dev
├── front_web_dev
├── ots_service_dev
├── ml_service_dev
├── trade_terminal_dev
D:\home
├── db -- 临时文件
├── logs -- 日志
D:\soft
├── nginx
├── redis
....