Superalgos / 数据挖掘
Superalgos 数据挖掘:交易机器人的行情数据是怎么挖出来的
在 Superalgos 里,策略不是自己去交易所拉行情再顺手算指标,而是先由数据挖掘任务把行情加工成可复用的「数据产品」:Sensor Bot 负责采集、Indicator Bot 负责在这批采集结果上加工,产物落盘并被策略、图表空间与回测共用。理解这一层,才能明白为什么它的数据要提前「挖」,以及为什么换策略不必重挖一遍。
数据挖掘在 Superalgos 里是什么位置
先分清每一层「负责什么、不负责什么」,后面看目录与命令时就不会混淆:数据挖掘是上游加工层,交易决策在它下游。
| 分层 | 负责什么 | 不负责什么 | 下游 / 消费者 | 核对依据 |
|---|---|---|---|---|
| 数据挖掘(Data-Mining) | 把交易所行情加工成可复用的加工结果,供其他环节反复使用 | 不发订单、不做买卖判断 | 交易策略、图表空间、回测 | 官方 Projects 目录里 Data-Mining 是 25 个项目之一 |
| 行情采集(Sensor Bot 层) | 按标的与时间框架持续采集行情并写入平台 | 不计算指标,不生成判断 | 指标加工环节 | 平台 bot 链的入口环节(README 与子文档) |
| 指标加工(Indicator Bot 层) | 在已采集的行情上加工出指标类产物 | 不决定何时买卖、不管理订单 | 策略、图表空间、回测 | 平台 bot 链的第二环(README 与子文档) |
| 数据产品 | 可被引用的加工产物,一次加工多次消费 | 不是策略本身,也不是订单 | 策略、回测、图表空间、机器学习相关项目 | 由上述两层产出,具体命名以应用内文档为准 |
| 任务调度层(Tasks / Task Server) | 把挖掘、回测、交易等任务跑起来并记录状态 | 不定义策略逻辑,不产生行情数据 | 各项目的任务 | 官方 Logging 文档把 Tasks 与应用并列;Task Server 见网络与信号文档 |
| 交易机器人(Trading Bot 层) | 消费数据产品并形成交易决策 | 不负责采集与加工原始行情 | 交易所接口 | 与数据挖掘是上下游关系,边界见机器人网络页 |
| 图表空间(Charting) | 把行情与产物画出来给人看 | 不参与自动决策 | 使用者自己 | 官方仓库简介写明平台含集成图表系统 |
数据管道怎么走:从交易所行情到可复用的数据产品
下表把这条管道拆成六个环节,每一环都写清「产物是什么」与「怎么核对它有没有跑通」。
| 环节 | 做什么 | 产物 | 怎么核对是否跑通 | 注意点 |
|---|---|---|---|---|
| ① 数据源接入 | 经平台自带的交易所接口层取行情(依赖里含 ccxt) | 可供采集使用的行情来源 | 确认平台已启动、目标市场可选 | 具体支持哪些交易所以官方文档与运行时实际可选列表为准 |
| ② 行情采集(Sensor Bot) | 按标的与时间框架持续采集 | 行情数据被写入数据目录 | 看数据目录是否在增长、日志里是否有采集相关记录 | 采集是持续过程,不是跑一次就结束 |
| ③ 指标加工(Indicator Bot) | 在已采集行情上计算指标类产物 | 指标产物 | 看指标相关产物是否生成、图表空间能否加载 | 指标口径由对应数据挖掘项目决定,不是通用公式库 |
| ④ 落盘 | 把采集与加工结果持久化到数据目录 | 磁盘上的数据文件 | 查看数据目录占用与文件时间戳 | 容器路线必须先把数据目录挂成卷,否则重启即丢 |
| ⑤ 产品化 | 让加工结果成为可被别的模块引用的产物 | 可引用的数据产品 | 策略或图表能引用到对应产物 | 命名与结构由应用内文档定义,本文不臆造具体名称 |
| ⑥ 消费 | 策略、回测、图表空间按需读取 | 交易决策、回测结果、图表 | 策略能跑起来、图表能画出、回测能出结果 | 这一环已属下游,出现问题时先回查 ②–④ 是否正常 |
数据产品被谁消费、各自需要什么前提
同一批挖出来的数据会被多个环节复用,但每个消费者对「数据是否就绪」的要求并不一样。
| 消费者 | 拿数据产品做什么 | 需要什么前提 | 注意点 / 判据 |
|---|---|---|---|
| 交易策略 | 作为策略条件与事件的输入,形成交易决策 | 所需数据产品已挖出且能被引用 | 策略只是消费者;数据没就绪时,问题多半不在策略代码 |
| 回测 | 在历史数据上复现策略行为 | 历史区间已挖出并可复现 | 回测结论只代表历史,不构成收益预期 |
| 图表空间 | 把行情与产物画成可交互的图表 | 对应数据已就绪 | 图表是查看层,不参与自动决策 |
| 机器学习相关项目 | 用数据训练 / 测试模型,产出预测类产物 | 按该项目自己的要求准备数据与运行环境 | 以 Bitcoin Factory 为例,它的测试与预测依赖网络节点与测试服务器协作,参与前需先做教程并创建用户档案 |
| 其他数据挖掘项目 | 把上一层产物作为下一层加工的输入 | 上游产物已生成 | 层与层之间有依赖顺序,顺序错了会一直等不到输入 |
| 人工查看 / 导出 | 直接查看或把数据带走做外部处理 | 能找到对应数据目录 | 外部工具处理前先确认字段含义,口径以应用内文档为准 |
实际操作顺序是什么:从启动平台到数据可用
下面每一步都给出可核对的预期结果。命令来自官方 README,具体任务入口名称以应用内文档为准。
确认平台已经正常运行
先按安装页把环境装好,用
node platform启动;内存 8 GB 及以下加minMemo,无界面服务器加noBrowser。预期:终端显示服务已启动,浏览器能打开默认 34248 端口的界面。选定项目与工作区
可以在启动时直接指定,例如
node platform Foundations Blank-Template;也可以在界面里切换。预期:界面加载出你预期的项目与工作区,而不是空白模板。先把内置教程过一遍
官方把教程列为必经路径,并说明前三课大约要 2–3 小时;数据挖掘正是教程覆盖的核心动作之一。预期:你至少知道在界面里从哪里开始一个挖掘任务,而不是只会在命令行敲命令。
选定标的与时间框架后开始采集
确定要挖哪些市场、哪些时间框架,然后运行对应的挖掘任务。预期:数据目录出现新增文件、日志里出现采集相关记录(日志位置见排错页)。
确认产物落盘并能被引用
检查数据目录有内容、图表空间能加载对应数据。预期:策略或图表能引用到该产物;若引用不到,按上一节的排查顺序倒着查。
再去看回测与策略
数据就绪后再进入策略与回测环节,避免「策略写好了但没有数据可用」的空转。预期:回测能跑出结果,且结果标明区间与标的。
产物放在哪、要吃多少资源
这一节决定你的磁盘规划、备份策略与容器挂载方式。目录名来自官方 Docker 文档的卷清单与官方 Logging 文档。
| 目录 / 资源项 | 放什么 | 容器路线要不要挂卷 | 注意点 |
|---|---|---|---|
My-Data-Storage | 平台的数据存储(挖出来的数据落在这一层) | 要挂,否则重启丢数据 | 建议按时间做增量备份,别只备份最后一次 |
My-Workspaces | 你的工作区(含项目与配置) | 要挂 | 换机器迁移时数据目录与工作区目录都要带上 |
My-Log-Files | 日志:<应用名>/{error,combined}/<日期>.log | 要挂(排错时需要) | 可用 logLevel 参数调整详细度,排查完记得调回去 |
My-Network-Nodes-Data | 网络节点的数据(跑网络节点时才有内容) | 跑节点就要挂 | 不跑网络节点时可以留空 |
My-Social-Trading-Data | 社交交易相关数据 | 用到社交交易时挂 | 相关前置与信号流程见信号网络页 |
| 仓库与依赖的磁盘占用 | 源码仓库约 1.18 GB,加依赖与运行数据更多 | — | 官方建议装在盘根目录或路径较短的目录,某些系统对长路径不友好 |
| 内存 | 内存 8 GB 及以下用 minMemo;仅 1 GB 的机器官方提示已接近跑不动 | — | 挖数据的成本主要在长期运行与磁盘,不在单次命令 |
My-Data-Storage,容器一重启挖出来的数据就没了——这是最常见的返工原因。目录权限不对时保存工作区会报错,需要调整目录属主或用户组。数据就绪之后:图表、回测与机器学习怎么接上
数据挖掘本身不是目的,它服务的是下面这几件事。看清关系能避免把问题归错层。
| 下游场景 | 和数据挖掘的关系 | 数据没就绪时的典型现象 | 该往哪查 |
|---|---|---|---|
| 图表空间看盘 | 直接读取行情与产物绘图 | 图表空白或加载不出数据 | 先查采集与落盘,再查图表侧配置 |
| 策略回测 | 用历史区间复现策略行为 | 回测无结果或提示缺数据 | 确认该标的与周期是否已挖出 |
| 策略实盘 | 实盘同样消费数据产品 | 策略能启动但不产生决策 | 确认数据在持续更新,且凭据与任务引用正常 |
| 机器学习项目(如 Bitcoin Factory) | 用数据训练测试模型,产出预测类产物回到平台 | 测试任务拿不到数据或一直等待 | 该项目的网络节点与测试服务器是否就绪,见机器学习页 |
| 交易信号分发 | 信号网络消费平台内的结果再对外分发 | 对方收不到信号 | 先确认本地链路正常,再看网络与签名配置,见信号网络页 |
| 长期运行 / 生产节点 | 低功耗机器上持续采集与加工 | 跑一段时间后变慢或中断 | 检查磁盘余量与内存模式是否与硬件匹配 |
数据挖掘常见问题
本文对数据挖掘的描述来自官方仓库目录、README 与子 README;本站未做实机安装与运行验证,产物名称、目录位置与界面入口一律以官方文档与应用内文档为准。
数据挖掘和交易机器人是什么关系?
是上下游:数据挖掘在上游,把交易所行情加工成可复用的产物;交易机器人在下游,消费这些产物形成交易决策。所以「机器人不动作」很多时候不是策略代码的问题,而是上游数据没就绪——排查时应该先看数据,再看策略。
为什么不能像写脚本那样,取一次行情算一次指标?
可以那样写,但代价是每换一个策略就要把行情与指标重算一遍,而且不同策略之间的口径容易不一致。Superalgos 把加工环节独立成数据挖掘项目、把结果落成可复用产物,就是为了让多个策略、回测与图表共用同一批加工结果。具体机制与命名以官方文档为准。
挖出来的数据放在哪里?重装会不会丢?
平台把数据、工作区与日志分别放在自己的目录里(官方 Docker 文档列出了 My-Data-Storage、My-Workspaces、My-Log-Files 等卷目录)。开发者路径下它们就在安装目录内,删目录即彻底移除;容器路径下必须先把这些目录挂成卷,否则容器重启数据就没了。打包版的数据放在用户文档目录的 Superalgos_Data 下。
挖数据要多少磁盘和内存?
仓库源码本身约 1.18 GB,依赖与后续数据另算;数据挖掘是持续写盘的环节,所以磁盘余量比单次命令的峰值更重要。内存方面,官方建议 8 GB 及以下用 minMemo 参数启动,并提示只有 1 GB 内存的机器已经接近跑不动。具体占用与你的标的数量、时间框架数量直接相关。
要先学完教程才能挖数据吗?
官方把内置交互教程列为必经路径,并说明前三课大约需要 2–3 小时;数据挖掘正是教程覆盖的核心动作之一。跳过教程直接照抄命令,通常会在「任务在哪启动、产物在哪确认」这两步卡住,反而更慢。确切课程内容以应用内教程为准。
不装这套环境,能直接拿到加密货币行情做研究吗?
可以走免部署的技能路线:本机已核验的 akshare-finance 能取加密货币行情、quant-analyst 提供回测与风险指标方法论、chart-image 负责出图。但它不是 Superalgos 的数据挖掘替代品——技能路线没有数据管线、没有任务调度,也不产出可被策略引用的数据产品;两者无已证实集成,入口在顶部导航「对比」。
挖好的数据能直接给别的工具用吗?
数据以文件形式落盘,理论上可以被外部工具读取;但字段含义、复权口径与时间对齐规则需要先搞清楚,否则算出来的结论不可比。本文不臆造字段清单,具体结构请以应用内文档与你实际生成的文件为准。
数据挖掘的结果能当作交易依据吗?
不能。挖出来的只是行情加工产物,是否有效取决于你的策略与验证过程,而历史表现不代表未来结果。本站不提供任何收益预期、胜率、买卖点或资金建议;实盘风险与合规要求请自行确认。