从用工具到造工具
两件事:数据和策略。数据从各路接口拉进来,经过清洗、转换、入库,再交给策略模型去跑回测。这条流程他走了太多遍,熟悉到几乎不用思考。
但熟悉不等于顺畅。在他决定亲手开发 DolphinDB 第三方模块之前,每一次同花顺 iFinD 数据入库都要经历一套繁琐的链条——Python 脚本拉数据、转格式、写入 DolphinDB、再单独配定时任务。链条一长,问题就藏在每个接缝里:定时任务没触发?格式字段错位了?还是写入超时了?每次排查都要从头捋,而行情数据的时效性又容不得等待。团队里最懂业务的量化人员,有将近三成的时间就这样耗在了流程维护上。
「简化入库流程、将数据下载与定时任务统一在 DolphinDB 内完成,能大幅减少跨工具运维的人力成本,让团队更聚焦于核心的金融数据分析与交易策略研发。」
这个判断促使他迈出了从数据消费者到工具建设者的那一步。
为什么是 DolphinDB?
在决定深耕 DolphinDB 生态之前,chievan 也考察过市面上主流的时序数据库。MongoDB 是通用文档数据库,面对高频金融时序数据时力不从心;InfluxDB 的设计重心在监控场景,内置的计算函数库远不够用,复杂的策略回测很难支撑。两者的共同问题是:缺少针对金融场景的计算能力,量化分析师用起来总要另外绕路。
DolphinDB 的优势在于它把存和算放在了同一个地方。丰富的原生金融计算函数、对高频时序数据的高 IO 处理效率,再加上完善的生态对接接口,让它在证券行业的实操场景里有明显的贴合度。唯一的学习成本是自有编程语言的入门门槛,但对 chievan 来说,这在6年使用经验面前早已不是障碍。
「DolphinDB 最让我印象深刻的,是丰富的原生数据计算模块、极强的时序数据处理能力,以及出色的生态融合性。高频金融数据的读写、分析效率远超同类产品。」
从期权回测到投研平台:业务在变,痛点也在变
chievan 最初萌生开发想法,是在团队深耕 ETF 期权业务的那段时间。期权业务有它的特殊性:同一个标的对应的合约数量极多,数据接口逻辑复杂,策略回测又要求分钟级的响应速度。DolphinDB 的高 IO 效率在这里发挥了关键作用,借助实时行情流表,团队也得以高效完成 VIX 指数、隐含波动率的实时计算。
但随着业务重心逐渐转向基金评价和投研平台建设,需求的形态变了。期权时代追求的是极致速度,现在更需要的是多个数据源的稳定接入与融合——基金净值、财务指标、宏观数据,来自 iFinD、Wind、Choice 等不同渠道,如果每个数据源都靠 Python 脚本维护,运维成本会急剧叠加。开发 iFinD 模块,正是为了让 DolphinDB 真正成为投研平台统一的数据底座,而不是数据链路上一个需要人工对接的节点。
开发:踩坑、求教、打通链路
真正动手开发,chievan 才意识到金融分析师和工程师之间的距离。参数校验、并发控制、接口安全——这些工程化细节,在量化分析的日常工作里几乎用不上,但在开发一款稳定工具时,每一项都是必须过的关。
初期在接口对接上多次碰壁:iFinD 底层调用规范不熟悉,数据传输的容错性设计也踩了坑。他的应对方式是直接找人——主动向 DolphinDB 官方工程师请教开发规范,同时对接同花顺 iFinD 的工程师,逐步搞清楚接口的异常处理逻辑。AI 工具也被充分用起来,辅助代码优化、设计测试用例、加速问题排查。
「遇到技术卡点时不必闭门造车,官方技术支持和接口提供方的专业指导能大幅少走弯路。DolphinDB 的工程师不仅回复快,而且能直接给到源码级别的建议。」
最终,iFinD 接口与 DolphinDB 的对接链路打通,工具完成全流程测试并上线。
现在的同花顺 模块能做什么
安装只需一行命令,数据获取、计算、调度全在 DolphinDB 环境内完成:
// 一键安装,即装即用
installModule("iFinD")
use iFinD
// 获取访问令牌(自动刷新机制)
accToken = iFinD::getAccessToken("your_refresh_token")
// 基础数据:批量查询证券信息
tb = iFinD::thsBasicData(accToken, "600519.SH,000001.SZ", "ths_stock_short_name_stock")
// 历史序列:日频财务指标
tb = iFinD::thsDateSequence(accToken, "600519.SH", "ths_pe_ttm_stock", "100", "", "2024-01-01", "2024-12-31")
// K线数据:前复权日线
tb = iFinD::thsHistoryQuotes(accToken, "600519.SH", "open,high,low,close,volume", "CPS:2", "2024-01-01", "2024-12-31")
// 高频数据:分钟级行情
tb = iFinD::thsHighFrequency(accToken, "600519.SH", "open,high,low,close,volume", "Interval:1", "2024-03-11 09:30:00", "2024-03-11 15:00:00")
// 实时行情:盘中快照
tb = iFinD::thsRealTime(accToken, "600519.SH,601318.SH", "latest")
模块内置强类型参数校验,拦截无效请求;Token 自动刷新机制保证安全性的同时不增加使用负担;JSON 数据直接解析为 DolphinDB 表,省去格式转换环节。原来需要跨工具维护的入库流程,现在在同一个环境里闭环。
接下来要做的事
iFinD 模块目前已实现五个基础函数功能,chievan 计划近期快速完善 EDB、DP 等接口的兼容,让数据采集覆盖更广;中期会启动东方财富数据接口的适配开发。更长远的方向,是向数据库应用层延伸——MCP 搭建、数据表图谱、业务逻辑本体构建,并尝试与大模型能力对接,让金融数据的分析从"手动查询"走向"智能挖掘"。
开发者说
Q:6年深度使用,最依赖的能力是什么?
"丰富的原生计算模块和高频时序处理能力。ETF 期权策略回测对性能要求极高,DolphinDB 的高 IO效率完美适配。"
Q:为什么愿意为 DolphinDB 生态投入开发?
"DolphinDB 与金融行业工作的高契合度,功能设计深度贴合量化分析、策略回测等核心业务场景。同时,官方技术团队的专业支持让开发者与生态形成相互成就的关系——我们借助生态提升效率,生态也因我们的实践反馈持续完善。"
Q:开发过程中最大的收获?
"保持空杯心态,敢想敢试。金融人熟悉业务场景、清楚数据痛点,这是最大的优势。不必因程序开发细节望而却步,DolphinDB 有专业支持团队,加上AI工具辅助,足以弥补技术短板。"
Q:对犹豫加入生态开发的金融同行说什么?
"Keep hungry, keep foolish。 把业务痛点转化为开发方向,在生态开发中既能解决实际问题,又能实现技术能力提升,这是一场双向成长的事,大胆迈出第一步就好。"
加入生态:从"用工具"到"造工具"
DolphinDB生态正在寻找更多像 chievan 这样的金融从业者——无论你是证券分析师、量化研究员,还是数据工程师,这里都有你的舞台:
- 社区用户:免费使用 iFinD 模块,体验"一站式"金融数据接入,告别繁琐运维,把时间还给核心研究与策略创作
- 金融开发者:以自身业务痛点为起点,用技术破解行业难题,打造专属工具——既解放自己,也赋能同行,在生态共建中实现自我成长与行业共赢
- 机构用户:深度对接官方与社区力量,获取量身定制的数据解决方案,打通效率瓶颈,让技术真正成为业务增长的核心驱动力
立即行动:
- 上手体验:在 DolphinDB 模块市场搜索 "iFinD",一键安装、即装即用,亲身感受高效数据接入的便捷
- 沉淀成长:点击阅读原文,查阅开发者手册,借鉴 chievan 的开发经验,解锁插件开发技巧,积累属于自己的技术能力
- 贡献价值:把你的解决方案、开发成果提交给DolphinDB官方,上架插件市场,成为生态共建者,让你的技术惠及更多同行
从每天修管道的焦虑,到焊一根管道的从容—— chievan 的 iFinD 之旅,正是 DolphinDB 生态共建理念的最佳注脚:当熟悉业务的人开始造工具,业务与技术的边界便消失了,剩下的只有对效率的极致追求。