factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
빠른 스트리밍 시계열 알고리즘
Fast streaming timeseries algorithms
데이터TypeScript · PythonGitHub @screamer-labs직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A fast C++ library for researching and trading time series: rolling statistics, technical indicators, filters, order-flow measures, costed backtests of single assets, portfolios, and pairs, and significance tests. One C++ core, two languages: a Python API and a JavaScript/WebAssembly build.
Screamer runs in Python and in JavaScript. Both bind the same C++ engine, so results agree to within floating-point rounding, and seeded randomization gives identical draws in both.
Python 3.12 or newer.
pip install screamer
The wheel is self-contained (a single abi3 wheel per platform, no build step and no runtime dependencies). To build from source, see the Install screamer page.
Fit a quadratic to each sliding window of 50 values, take its slope at the latest value, then the sign of the slope to get the trend direction:
import numpy as np
from screamer import RollingPoly2, Sign
data = np.cumsum(np.random.normal(size=300))
slope = RollingPoly2(window_size=50, derivative_order=1)
sign = Sign()
trend = sign(slope(data)) # the same calls work on a live stream, one value at a time
Node 18 or newer, or Chrome 95, Firefox 100 or Safari 15.2 or newer. The WebAssembly module uses native WebAssembly exceptions, which older browsers lack.
npm install @screamer-labs/screamer
The package is self-contained: the WebAssembly module is embedded, so there is no
separate asset to configure. The WASM loads once via await ready(), then you
call operators directly:
import { ready, RollingPoly2, Sign } from "@screamer-labs/screamer";
await ready();
const data = Float64Array.from({ length: 300 }, () => Math.random());
const slope = RollingPoly2(50, 1); // window_size, derivative_order
const sign = Sign();
const trend = sign(slope(data)); // a number, a Float64Array, an iterable, or an async stream
Operators compose into pipelines:
import { ready, Input, Pipeline, RollingMean, Diff } from "@screamer-labs/screamer";
await ready();
const x = Input("x");
const y = Diff(1)(RollingMean(3)(x)); // compose operators into a graph
const p = new Pipeline([x], [y]);
p(data); // bind data at call time; p.live() streams
js/README.md for install and the API. JavaScript
API reference and guide: screamer-labs.github.io/screamer.python -m screamer.docs search <keywords> and show <Name> describe
every function of the installed version, and pip install "screamer[mcp]" adds an MCP
server. See Using screamer with AI agents.Contributions are welcome. See CONTRIBUTING.md for how to set up a development environment, build the extension, run the tests, and open a pull request. By participating you agree to abide by our Code of Conduct.
Screamer is released under the MIT License. See LICENSE.