1.1 关于我
在全身心投入这款量化交易系统的研发之前,我混迹于知乎和公众号,专注于信号处理与深度学习算法的分享与探讨。后来在研究算法的过程中,产生了新的想法,即将这些年在信号处理和深度学习领域积累的思维与方法,跨界应用于充满挑战与机遇的股票市场和量化交易中。
当前教程是看海,也就是我搭建的唯一官方教程,后续教程都是在此处最先更新。
为了方便和大家交流,我在以下平台都开设了账号,欢迎关注:
一直以来,我都致力于为大家提供一款免费开源的量化交易系统。可以说,这是用爱发电的产物。目前,系统开发和维护的微薄收入主要来源于通过我推荐渠道开户的朋友们所带来的些许返佣,以及热心用户的慷慨打赏。如果您觉得这款系统对您有所帮助,不妨请作者喝杯咖啡,您的这份支持,是我持续更新与完善的最大动力!
1.2 我为什么要做这样一款量化交易系统?
市面上的量化工具不少,为何还要”重复造轮子”?核心在于对现有工具的些许不满,以及一些亟待实现的功能与理念。
回测系统是量化交易的基石,它允许策略在历史数据中”演练”,评估可行性。然而,不少现有工具,如QMT,虽具备回测功能,但在策略开发的灵活性上(如Python第三方库的调用)存在限制,这束缚了AI等前沿算法的应用。KHQuant的初衷便是打破这些枷锁,赋予开发者最大的策略实现自由度,让Python的强大生态充分助力创新。
关键考量:
- 策略安全与本地运行:策略是核心资产。KHQuant基于MiniQMT开发,确保策略代码和数据在本地运行,保障安全与隐私,同时在处理大规模数据或复杂模型时更具性能与成本优势。
- 打造趁手的”兵器”:工具应保证专业性的同时,追求高效易用。作为一名长期从事信号处理与机器学习算法研究的开发者,深谙此道。KHQuant力求成为一款称手好用的工具,让用户能更专注于策略研究本身。
- 填补MiniQMT生态空白:目前市场缺乏针对MiniQMT完善易用的回测与模拟平台。KHQuant愿做”第一个吃螃蟹的人”,为MiniQMT用户和量化爱好者提供新选择。
KHQuant的核心设计原则:
- 模块低耦合——提升灵活性与可维护性:
借鉴”乐高积木”的理念,KHQuant追求UI、数据、策略与核心框架的分离。如此,各模块可独立升级、替换,避免”牵一发而动全身”,保证系统未来的迭代与扩展能力。 - 策略高内聚——聚焦策略,提升效率:
使用者应专注于策略逻辑。KHQuant致力于提供稳定的底层支撑和清晰的接口规范,目标是实现策略文件在回测、模拟、实盘间无缝切换,并共享统一的图形化配置界面,最大程度减轻用户负担。未来,甚至期望通过标准化的接口,结合大语言模型辅助策略生成。
💡 一言以蔽之:KHQuant并非追求”大而全”,而是力求在图形化、本地化、灵活性和实用性这些核心痛点上做到”精而深”,为个人投资者提供一款免费、强大且称手的量化研究利器。
1.3 看海量化系统:特点与比较
为了让大家更清晰地理解KHQuant的定位,这里通过一个简明扼要的表格来对比其与市面上其他主流类型量化工具的特点:
特性维度 | 看海量化交易系统 (KHQuant) | 国内券商平台 (如:QMT自带, 通达信) | 开源回测框架 (如:Backtrader, vn.py) | 在线量化平台 (如:聚宽, BigQuant) |
---|---|---|---|---|
系统设计侧重 | GUI友好,深度集成MiniQMT,策略数据本地化,Python策略,A股优化 | 账户直连,行情交易便捷,低成本 | 高度灵活定制,免费开源,社区支持 | 云端运行,提供数据,学习资源丰富 |
系统当前局限 | 生态初期,功能待完善,依赖MiniQMT,个人维护 | 策略自由度低,回测功能较弱 | 上手门槛高,通常无GUI,需自行解决数据/接口 | 核心代码/数据不可控,高级功能收费 |
目标用户画像 | 注重易用性的个人量化爱好者,希望数据策略本地化 | 普通交易者,编程能力要求不高 | 编程能力强的开发者,需深度定制 | 量化初学者,偏好云端服务 |
策略编程 | Python | 平台特定语言或脚本 | Python | Python为主 |
数据获取 | 依赖MiniQMT提供 | 提供多品种行情数据 | 用户自行解决 | 平台提供常用数据 |
界面形态 | PyQt5构建的桌面GUI | 标准的行情交易软件界面 | 通常无GUI,需自行绘图 | Web界面,图表友好 |
使用成本 | 免费 | 开户后免费使用 | 免费 | 免费入门,增值服务收费 |
简单来说,KHQuant致力于为A股个人投资者,提供一个在图形化、本地化、简单实用方面表现出色的量化工具。它或许并非完美无瑕,但会持续打磨与进化,力求帮助每一位使用者更高效地进行策略研究与交易实践。
选择”看海量化交易系统”,将能深入体验到以下几点核心优势所带来的便利与价值:
🎨 完全开源免费,拥抱社区共建生态:
KHQuant 不仅仅是一款工具,更是一个开放的平台。系统源代码完全公开透明,允许自由探索其实现细节,根据自身需求进行个性化修改,甚至参与到项目的共建中。这种开放性,确保了对工具的完全掌控,而不必担心任何”黑箱”操作或潜在的隐性成本。这完全是”用爱发电”的产物,旨在为国内量化爱好者提供一个纯粹、强大的免费选项。
🛡️ 数据与策略本地化部署,安全与隐私尽在掌握:
在量化交易领域,数据和策略无疑是核心资产。KHQuant 坚持将所有策略代码、历史数据、回测结果以及交易记录等敏感信息完全存储于本地计算机。这意味着使用者对其知识产权和交易活动拥有绝对的控制权,无需担心因依赖第三方云平台而可能带来的数据泄露、策略被窥探或服务中断的风险。智慧成果得以自主守护。
⚙️ 可视化便捷操作与Python代码灵活驱动,双引擎满足多层次需求:
系统精心设计了用户友好的图形化界面(GUI),使得许多常规操作,如参数配置、回测设置、股票池管理等,都可以通过简单的鼠标点击完成,极大降低了上手门槛,即使是编程经验较少的用户也能快速入门。同时,对于追求极致灵活性和复杂逻辑实现的专业开发者,KHQuant 提供了纯粹的Python策略编写环境,允许充分利用Python的强大表达能力和丰富的第三方库,构建高度定制化的交易系统。
🧠 拥抱AI浪潮,为大模型赋能量化策略,拓展智能边界:
人工智能飞速发展的时代,大语言模型(LLM)的能力令人瞩目。KHQuant 在设计之初便充分考虑了与AI技术的结合潜力。其清晰的模块划分、标准化的策略接口以及开放的Python环境,都为大模型在量化策略中的应用提供了便利。可以尝试使用大模型辅助进行策略逻辑的构思、代码片段的生成,甚至在未来,期望能实现更深度的融合,让AI成为策略研究与开发过程中的得力助手。
🔗 深度整合MiniQMT,共享成熟稳定的交易执行:
KHQuant 的行情获取深度依赖于券商的MiniQMT系统。这意味着可以直接受益于券商提供的成熟、稳定、合规的行情服务,从而能够更专注于策略本身的研发与优化。
🎯 专注A股优化,更懂本土化交易者的实战需求:
与其他通用型或主要面向海外市场的量化平台不同,KHQuant 在设计和功能实现上,充分考虑了A股市场的独特性。例如,针对A股的交易规则(如T+1制度、涨跌停限制)、常用的技术指标偏好、数据特点等都进行了细致的适配和优化,力求为国内投资者提供一个更接地气、更符合实战需求的量化工具。
🚀 极致策略自由度,释放Python生态的无限潜能:
许多量化平台会对可使用的Python第三方库施加诸多限制,这无疑束缚了策略的创新空间。KHQuant 则致力于打破这些”枷锁”,允许在策略中无拘无束地引入和使用Python生态中几乎所有的公开库。无论是用于高级数据分析的Pandas、NumPy、SciPy,还是用于机器学习的Scikit-learn、TensorFlow、PyTorch,亦或是其他专业领域的强大工具,只要认为对策略有益,都可以自由集成,从而将最前沿的技术和算法应用于量化实践中。
1.4 使用”看海量化交易平台”的背景知识清单
为了帮助不同需求的用户更好地使用”看海量化交易平台”,这里梳理了一份背景知识清单,分为入门、进阶和高级三个层次。您可以根据自己的目标和现有基础,按图索骥,逐步提升。
1.4.1 入门:编写开环策略实现回测
此阶段的目标是能够使用已经打包好的”看海量化平台”,编写并运行开环策略(即策略逻辑相对简单,不涉及复杂的模型训练和动态调优),并对策略进行历史回测,分析回测结果。
掌握程度 | 技能 | 说明 |
---|---|---|
必备 | Python编程基础(含Pandas/NumPy库) | 理解Python核心语法、控制流、函数,并掌握Pandas进行数据处理及NumPy进行数值计算的基本操作。 |
必备 | 基本的金融市场知识 | 了解股票、K线、交易规则、常用技术指标(如均线、MACD、布林带等)的基本概念。 |
必备 | 理解回测报告中的关键指标 | 如收益率、最大回撤、夏普比率等。 |
必备 | 代码编辑器/IDE的使用 | 熟练使用至少一种代码编辑工具(如VS Code, PyCharm等)进行策略脚本的编写与管理。 |
1.4.2 进阶:编写需模型训练的闭环策略实现回测
此阶段的目标是能够在入门基础上,进一步编写包含机器学习、深度学习等模型训练的闭环策略。这类策略通常需要根据市场反馈动态调整模型参数或交易逻辑。
掌握程度 | 技能 | 说明 |
---|---|---|
必备 | 扎实的Python编程能力 | 包括面向对象编程(OOP)思想、模块化编程等。 |
必备 | Pandas/NumPy高级应用 | 能够进行更复杂的数据转换、特征工程、性能优化等。 |
必备 | 机器学习/深度学习基础理论 | 理解常见的监督学习、无监督学习算法原理,如线性回归、逻辑回归、决策树、SVM、神经网络等。 |
建议掌握 | TensorFlow/PyTorch等深度学习框架(至少一种) | 如果策略涉及深度学习模型,需要掌握至少一个主流框架的使用。 |
建议掌握 | 特征工程方法 | 如何从原始数据中提取、构建对模型有效的特征。 |
建议掌握 | 模型评估与调优技巧 | 了解过拟合、欠拟合,掌握交叉验证、网格搜索等模型调优方法。 |
1.4.3 高级:使用开源代码,定制化修改平台
此阶段的目标是具备深入理解并修改”看海量化平台”源代码的能力,根据自身特殊需求进行二次开发和功能定制。
掌握程度 | 技能 | 说明 |
---|---|---|
必备 | 精通Python高级编程 | 深入理解Python的内部机制,如装饰器、生成器、元类、异步编程等。 |
必备 | PyQt5 GUI编程框架 | 深入理解PyQt5的事件循环、布局管理、信号与槽机制、自定义控件等。 |
必备 | 深入理解xtquant 库 (MiniQMT接口) |
掌握MiniQMT的核心API调用,包括行情订阅、交易指令发送、账户信息查询等。 |
必备 | 软件架构设计能力 | 能够理解和设计模块化、可扩展、可维护的软件系统,理解KHQuant的现有架构。 |
必备 | Git版本控制 | 熟练使用Git进行代码版本管理与协作。 |
必备 | 量化交易系统核心组件的理解 | 深入理解事件驱动、行情处理、订单管理、风险控制、绩效计算等核心模块的原理与实现。 |
建议掌握 | Python多线程/异步编程 | 用于优化GUI响应、处理耗时操作等,提高平台性能和用户体验。 |
建议掌握 | 事件驱动编程模型 | 深入理解事件驱动架构,有助于更好地理解和修改平台的核心逻辑。 |
✨ 小贴士:对于绝大多数希望进行策略回测和研究的用户来说,达到”入门”级别并逐步熟悉平台功能,就已经能够满足大部分需求。”看海量化平台”也会持续推出更多策略示例和教程,帮助大家更好地理解和应用。
1.5 “看海量化交易系统”适合做什么?
“看海量化交易系统”以其灵活性和易用性,能够很好地支持多种类型的中低频量化交易策略的研发与实践。以下是一些典型的适用场景:
✅ 各类因子选股与轮动策略 这是量化投资中最主流的应用之一。KHQuant为此提供了完整的解决方案:你可以轻松地整合财务、行情等多种数据源,利用内置函数或Pandas等强大工具进行计算,构建出自定义的alpha因子。系统支持你对全市场或特定股票池的股票进行多因子打分、排序,并根据排名自动生成调仓信号。无论是定期的月度轮动,还是基于动态阈值的非周期性调整,回测引擎都能精确模拟,帮助你检验因子有效性。
✅ 趋势跟踪与技术指标策略 对于经典的趋势跟踪或摆动择时策略,KHQuant同样得心应手。需要说明的是,目前系统本身并未内置集成具体的指标函数,但这正是其开放性的体现。你可以非常方便地引入TA-Lib
等成熟、强大的第三方技术指标库,计算如均线、MACD、RSI等上百种指标。在未来,我也会根据大家的需求,逐步在框架中补充一些最常用或前沿的指标,作为内置工具函数提供给大家。
✅ 事件驱动型策略 市场的波动往往由特定事件催化。KHQuant的开放式设计允许你将外部事件数据(例如,财报公布日、股东增持公告、行业政策变动等)轻松整合进回测流程。你可以将这些事件信息整理成CSV等格式文件,在策略中读取并与行情数据对齐,从而构建出在关键事件发生前后进行布局或退出的交易模型,让你的策略能更好地捕捉信息驱动的行情。
✅ 机器学习与AI辅助策略(中低频) 将AI技术融入量化交易是未来的大势所趋。KHQuant为你铺平了道路:你可以在系统之外,使用Scikit-learn
、PyTorch
等熟悉的框架训练你的预测模型。值得一提的是,KHQuant的数据下载模块支持将所有数据显式地保存为通用的CSV格式,这为模型训练提供了干净、易于读取的数据基础。训练完成后,你可以在策略中轻松加载训练好的模型,并调用它进行实时预测,将AI的分析结果无缝转化为交易信号。
✅ 时间序列预测与高级AI模型 除了经典的机器学习分类或回归模型,KHQuant同样支持更前沿的时间序列预测模型。你可以利用ARIMA
、Prophet
等统计模型,或者LSTM
、Transformer
等深度学习模型,对股价序列的未来走势进行预测。通过框架的灵活性,你可以自定义数据预处理、模型加载和预测的整个流程,将复杂的AI预测逻辑集成到你的交易策略中。
✅ 自定义指数构建与增强 如果你不满足于跟踪市场上的主流指数,完全可以创建属于自己的”自定义指数”。在KHQuant中,你可以根据特定的投资理念(如高股息、硬科技)或行业偏好,筛选出一篮子股票,定义它们的权重分配方式(如等权、市值加权),从而构建一个自定义指数。然后,你可以回测这个指数的历史表现,甚至在此基础上进行Alpha增强,开发超越基准的策略。
✅ 量化知识学习与策略思想验证 对于量化初学者或希望快速验证交易想法的朋友来说,KHQuant是一个理想的”实验室”。它提供了友好的图形用户界面,回测结果的可视化图表让你能直观地看到策略净值、持仓变化和关键绩效指标。策略逻辑则使用简洁的Python编写,大大降低了入门门槛。一个新想法,可能只需要几十行代码就能得到初步验证,极大地加速了从学习到实践的过程。
总而言之,只要策略的执行频率和对延迟的要求不是极端严苛,KHQuant 都能提供一个强大而便捷的本地化解决方案。
1.6 “看海量化交易系统”不适合做什么?
⚠️ 请注意:任何工具都有其专注的领域和能力边界。”看海量化交易系统”也不例外。为了帮助大家做出更合理的预期和决策,我必须坦诚地告诉大家,在以下一些方面,KHQuant可能并非最佳选择。清晰地了解这些局限性,是合理运用一个工具的前提。
❌ 高频交易(HFT)与超低延迟策略 这是KHQuant最明确的能力边界。原因有三:
- 数据层面:MiniQMT提供的Tick数据通常是3秒快照,而非逐笔成交数据,这对于需要微秒级行情精度的典型高频策略来说,信息颗粒度不足。
- 执行层面:系统本身(Python语言特性、多层架构)以及通过MiniQMT的交易链路,都无法满足高频交易所要求的亚毫秒级执行延迟。
- 技术栈:专业的高频交易通常需要C++等高性能语言、FPGA硬件加速以及专用的低延迟交易接口和托管服务。
❌ 依赖极久远历史数据的细颗粒度回测
- MiniQMT数据限制:券商版MiniQMT对历史数据的下载范围有限制。通常情况下,Tick数据可能只能获取最近一个月左右,1分钟和5分钟K线数据可能为最近一年左右,日线数据则相对完整。这意味着,如果策略需要回测数年前的分钟级甚至Tick级行情,系统可能无法直接提供足够的数据支撑。(有实力的可以开通研投版QMT,这样就有全部的数据了)
❌ 对多市场、多资产的复杂联动套利(超出MiniQMT范围)
- 虽然可以通过Python的灵活性尝试对接其他数据源或接口,但KHQuant的核心优化和原生支持是围绕MiniQMT所能覆盖的A股市场(股票、ETF、部分期货期权等)。对于需要复杂跨市场(如全球市场)、跨资产类别(如外汇、加密货币)进行高精度、低延迟联动的套利策略,可能需要更专业的、针对性的平台,或者基于本系统的开源代码自行改造,引入更多数据源。
❌ 非Windows操作系统的原生流畅运行
- 关于Linux:虽然迅投官方的
xtquant
库支持在Linux上运行,但这仅限于收费的”研投版”账户。这与KHQuant”免费、开源”的初衷相悖,因此系统没有特别针对Linux进行适配和测试。 - 关于macOS:目前完全不支持。
- 因此,KHQuant的主要开发、测试和稳定运行环境是Windows。在其他操作系统上尝试运行(如通过Wine)可能会遇到兼容性障碍。