尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何向最大的公开预测市场数据集贡献你的第一个Indexer?prediction-market-analysis开发者指南

如何向最大的公开预测市场数据集贡献你的第一个Indexer?prediction-market-analysis开发者指南 如何向最大的公开预测市场数据集贡献你的第一个Indexerprediction-market-analysis开发者指南【免费下载链接】prediction-market-analysisA framework for collecting and analyzing prediction market data, including the largest publicly available dataset of Polymarket and Kalshi market and trade data.项目地址: https://gitcode.com/gh_mirrors/pr/prediction-market-analysisprediction-market-analysis是一个用于收集和分析预测市场Prediction Market数据的开源框架拥有目前最大的公开Polymarket与Kalshi市场与交易数据集。它的核心由可插拔的Indexer数据索引器组成——今天我们就来一步步教你如何为它贡献你的第一个 Indexer让新数据源源不断地汇入这个数据集。项目能做什么一分钟了解这个项目提供三大能力预收集数据集Polymarket 和 Kalshi 的市场元数据 完整交易历史Parquet 格式数据采集 Indexer通过 API / 区块链接口抓取新数据支持断点续传分析框架一套脚本生成图表与统计指标覆盖胜率、校准偏差、做市商收益等Indexer 是数据集的活水来源。项目通过 src/common/indexer.py 中的Indexer基类定义统一接口并自动扫描src/indexers/ 目录发现所有实现——这意味着你贡献的新 Indexer 无需修改任何入口代码就会被交互式菜单 main.py 自动识别。第一步环境准备约5分钟⚠️ 要求 Python 3.9依赖管理使用 uv。克隆仓库并同步依赖git clone https://gitcode.com/gh_mirrors/pr/prediction-market-analysis cd prediction-market-analysis uv sync如果你希望本地跑分析脚本还可执行make setup下载并解压预收集数据集约 36GiB 压缩包下载逻辑见 scripts/download.sh。贡献 Indexer 本身不需要下载全量数据。第二步读懂 Indexer 架构核心源码只有70行打开 src/common/indexer.py你会发现接口极简子类实现一个run()方法负责拉取并存储数据构造时传入name唯一标识和description菜单中显示的描述基类的load()方法会递归扫描src/indexers/**/*.py自动收集所有非抽象子类class MyIndexer(Indexer): def __init__(self): super().__init__(namemy_indexer, description抓取某平台的新数据) def run(self) - None: # 在这里调用 API、写入 Parquet 文件 ...就这么简单。把文件放到 src/indexers/ 下比如新建一个src/indexers/myplatform/目录运行make index时它就会出现选择菜单里。第三步参考两个经典范例动手写 Indexer 前强烈建议先读这两个生产级实现 Kalshi Markets Indexer位于 src/indexers/kalshi/markets.py亮点是cursor 断点续传每批请求后把游标写入data/kalshi/.backfill_cursor中断后重跑会自动从上次位置继续。它复用 src/common/storage.py 的ParquetStorage完成去重按 ticker与分块写入每 1 万条一个markets_*.parquet文件。 Polymarket Markets Indexer位于 src/indexers/polymarket/markets.py采用offset 分页策略游标存在data/polymarket/.backfill_offset数据按 1 万条一个 chunk 直接to_parquet()落盘完成后清理游标文件。提炼出的通用套路环节最佳实践分页cursor 或 offset持久化到隐藏游标文件落盘Parquet 分块markets_{start}_{end}.parquet命名去重拉取时对比已存在的 ticker/ID跳过重复进度每批print一行方便长任务观察提交前自查清单 ✅项目使用 ruff 做代码规范、pytest 做测试测试集中在 tests/例如 test_backfill_cursor.py 专门验证断点续传逻辑。提交 PR 前执行make lint # 静态检查 格式检查 make test # 运行全部测试PR 规范详见 CONTRIBUTING.mdFork 后创建描述性分支如yourname/add-xxx-indexerCommit message 要写清改了什么、为什么改PR 描述详细说明新增内容超过一个月无活动的 PR 会被关闭记得保持活跃项目也接受分析脚本参考 docs/ANALYSIS.md、新引用文献等其他贡献类型常见问题FAQQ我的 Indexer 没有出现在make index菜单里A确认文件在src/indexers/下、类名不以_开头、且Indexer子类不是抽象类实现了run()。Indexer.load()对导入失败的模块会静默跳过先在终端python -c import src.indexers.myplatform.xxx验证一下。Q数据格式有要求吗A建议对齐 docs/SCHEMAS.md 中的 Parquet schema 约定markets 与 trades 两类并在 PR 中同步更新该文档。Q不写代码也能贡献吗A可以提 Issue 报告 bug、补充引用文献README 的 Research Citations 部分都是受欢迎的贡献类型。下一步行动克隆仓库 → 通读 src/common/indexer.py → 复制一个现有 Indexer 骨架 → 跑通make index看到自己的 Indexer 出现在菜单里 → 提交你的第一个 PR。祝你在 prediction-market-analysis 的首次贡献顺利【免费下载链接】prediction-market-analysisA framework for collecting and analyzing prediction market data, including the largest publicly available dataset of Polymarket and Kalshi market and trade data.项目地址: https://gitcode.com/gh_mirrors/pr/prediction-market-analysis创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表