RTTA

增量式、因果技术分析文档

pyrtta 是一个基于 C++23 和 nanobind 的低延迟库,用于逐笔技术分析、在线变化检测、市场状态监控和研究信号。Python 导入包名为 rtta

RTTA 的设计目标,是尽量避免在无意中使用未来数据。每种算法都是有状态的因果对象:调用者每次通过 update(...)advance(...) 输入一个 tick,对象只能根据已经见过的数据作出反应。这套接口适用于实时系统、交互式研究,以及必须在下一条观测到达前作出下单决策的市场模拟器。

范围

当前的基准测试注册表包含 188 种算法:

安装

pip install pyrtta

用法

import rtta

rsi = rtta.RSI()

for close in close_stream:
    value = rsi.update(close)
    if value > 70.0:
        reduce_position()

如果只需要推进状态,而不需要为当前 tick 创建 Python 结果对象,请使用 advance(...)

ema = rtta.EMA(window=30.0)

for close in warmup_ticks:
    ema.advance(close)

current = ema.update(next_close)

大多数指标提供以下方法:

多输出指标返回不可变的 C++ 结果结构体,其字段只读。若指标包含命名字段,还会提供 update_upper(...)last_upper() 等标量便捷方法。

基准测试

延迟结果见独立的基准测试页面。该页面记录了当前 Intel、Apple Silicon 和龙芯测试所使用的 CPU 与运行时环境。

开发

本项目使用 scikit-build-core 和 CMake 构建为基于 C++23 的 nanobind 扩展。

poetry install --with build,dev,docs --no-root
poetry run python -m pip install --no-build-isolation -e .
poetry run pytest

构建静态 HTML 文档:

poetry run python tools/build_html_docs.py

构建 wheel:

poetry run python -m build --wheel

引用

如果在研究、基准测试或公开发表的工作中使用 RTTA,请按以下格式引用:

@misc{deprince2026pyrtta,
  author       = {DePrince, Adam},
  title        = {{pyrtta}: Low Latency Incremental Technical Analysis},
  year         = {2026},
  version      = {0.2.2},
  howpublished = {\url{https://github.com/adamdeprince/rtta}},
  note         = {Python package name: pyrtta; import package name: rtta}
}

同一条目也收录在 CITATION.bib 中。