qPACE
The Quant SDK for Python · JavaScript · Rust
From research to production - all in one toolkit.qPACE: The all-in-one quantitative toolkit powered by Rust - usable from Python, Node.js, and the browser.
-
Cross‑language, cross‑platform - high‑performance Rust core with the fully typed API for Python, Node.js (NAPI), and Browser (WebAssembly).
-
Extremely fast backtesting engine - millions of bars per second. Export exact trades back to Pine for one‑click visual validation.
-
Technical Analysis - more than 30 indicators fully compliant with TradingView results, written in Pine and compiled using our compiler.
-
Data layer - resampling/aggregation, zipping/unzipping, reading/writing from CSV/Parquet, and more.
-
Cross-ecosystem - interoperable with Pandas, Polars, and more.
-
CLI + upcoming UI
Quick Links
Installation
Python
pip install qpace
JavaScript
npm install qpace
Quick Example
Python
import qpace as qp
ohlcv = qp.Ohlcv.read_csv("btc.csv")
ctx = qp.Ctx(ohlcv, qp.Sym.BTC_USD())
rsi = qp.ta.rsi(ctx.copy(), ohlcv.close, 14)
Node.js
import * as qp from "qpace/node";
const ohlcv = qp.Ohlcv.readCsv("btc.csv");
const ctx = new qp.Ctx(ohlcv, qp.Sym.BTC_USD());
const rsi = qp.ta.rsi(ctx.copy(), ohlcv.close, 14);
Pine from Python/JavaScript
We designed and developed in-house Pine Script compiler that takes your original Pine Script code and compiles it to efficient rust code that is later exposed to Python, Node.js and Web/WASM with type hints. Easy interface and practically no hustle from your side. Our compiler supports any technical analysis indicator and strategy, while having extreme performance.
- bot automation
- machine learning
- backtesting
- parameter optimization
- and much more
script.pine
//@version=5
library("MyLibrary")
export custom_ma(series float src, int length) =>
ta.ema(ta.change(src) * volume, length)
Python:
import qpace as qp
import my_library as pine
ctx = qp.Ctx(ohlcv, qp.Sym.BTC_USD())
custom_ma = pine.script.custom_ma(ctx.copy(), ohlcv.close, 14)
print(custom_ma) # [1.0, 2.0, ...]
Node.js:
import * as qp from "qpace/node";
import * as pine from "my_library";
const ctx = new qp.Ctx(ohlcv, qp.Sym.BTC_USD());
const customMa = pine.script.custom_ma(ctx.copy(), ohlcv.close, 14);
console.log(customMa); // [1.0, 2.0, ...]
Suite
qPACE Suite: Free collection of the best indicators and strategies (separate package to qpace).
Python:
pip install qpace_suite
JavaScript:
npm install @qpace/suite
Jdehorty
- Machine Learning: Lorentzian Classification
- WaveTrend 3D
- Nadaraya-Watson: Envelope
- MLExtensions
- KernelFunctions
AlgoAlpha
- Adaptive Schaff Trend Cycle (STC)
- Amazing Oscillator
- Donchian Trend Ranges
- Exponential Trend
- Supertrended RSI
- Triple Smoothed Signals
TA
Built-in TA functions.
import qpace as qp
rsi = qp.ta.rsi(ctx.copy(), src=ohlcv.close, length=14)
import * as qp from "qpace/node";
const rsi = qp.ta.rsi(ctx.copy(), ohlcv.close, 14);
Every TA indicator was compiled using Pine to Python/JavaScript compiler.
Momentum (17)
- Awesome Oscillator AO
- Absolute Price Oscillator APO
- Balance of Power BOP
- Commodity Channel Index CCI
- Coppock Curve
- KST Oscillator KST
- Moving Average Convergence Divergence MACD
- Momentum MOM
- Price Oscillator PO
- Rate of Change ROC
- Relative Strength Index RSI
- Relative Vigor Index RVGI
- Stochastic RSI STOCHRSI
- Trix TRIX
- True Strength Index TSI
- Ultimate Oscillator UO
- Williams %R W%R
Overlap (11)
- Double Exponential MA DEMA
- Exponential MA EMA
- Fibonacci Weighted MA FMWA
- Hull MA HMA
- Linear Weighted MA LWMA
- Relative MA RMA
- Simple MA SMA
- Symmetrically Weighted MA SWMA
- Triple Exponential MA TEMA
- Volume-Weighted MA VWMA
- Weighted MA WMA
Trend (8)
- Advance/Decline Ratio ADR
- Aroon AROON
- Bull/Bear Power BBP
- Chande-Kroll Stop CKS
- Choppiness Index CHOP
- Detrended Price Oscillator DPO
- Supertrend ST
- Vortex Indicator VI
Volatility (7)
- Average True Range ATR
- Bollinger Bands BB
- Bollinger %B %B
- Bollinger Width BBW
- Donchian Channel DC
- Relative Volatility Index RVI
- True Range TR
Volume (6)
- Accumulation/Distribution (Williams) ACCDIST
- Chaikin Money Flow CMF
- Elder’s Force Index EFI
- Ease of Movement EOM
- Money Flow Index MFI
- Volume Oscillator VO
Statistics (1)
- Standard Deviation STD
Utilities & Helpers (11)
- Bars Since
- Change
- Cross
- Cross-Over
- Cross-Under
- Cumulative Sum CUM
- Highest
- Highest Bars
- Lowest
- Lowest Bars
- Rate of Change ROC
Community
Become a part of the qPACE community and connect with like-minded individuals who are passionate about trading, finance, and technology!
Metadata
Release files for qpace 0.2.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| qpace-0.2.9-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| qpace-0.2.9-py3-none-manylinux2014_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64 | Details |
| qpace-0.2.9-py3-none-macosx_11_0_x86_64.whl | Python 3 | none | macOS 11.0+ x86-64 | Details |
| qpace-0.2.9-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 25.3 MB
Release files / qpace-0.2.9-py3-none-win_amd64.whl
| Download URL | qpace-0.2.9-py3-none-win_amd64.whl |
|---|---|
| Size | 5.4 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
f0133fbaf1e96c76a4dfa298896383e5c6241b8ec9b117571d95828d6022ac1d
|
|
BLAKE2b-256 checksum How to use checksums |
010ad4068a83ec80c83f45f78d2dc78b26378959c375b3195b18c72ec82ffba3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.18
|
Release files / qpace-0.2.9-py3-none-manylinux2014_x86_64.whl
| Download URL | qpace-0.2.9-py3-none-manylinux2014_x86_64.whl |
|---|---|
| Size | 7.4 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
2609731f59e0c09834ea501b4cd3b0b1916643eb88c5675443b73b22d3debc36
|
|
BLAKE2b-256 checksum How to use checksums |
584153bdab4137587030399a18248bd464cd0ab40249a8e94a603d89fb096cd7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.18
|
Release files / qpace-0.2.9-py3-none-macosx_11_0_x86_64.whl
| Download URL | qpace-0.2.9-py3-none-macosx_11_0_x86_64.whl |
|---|---|
| Size | 6.7 MB |
| Tags | Python 3 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
ec754d9f845822da93119b38049d1a8ad3490ee12a89de5d40fc14856bb9acb1
|
|
BLAKE2b-256 checksum How to use checksums |
38b1425fc8adc0d8f2b82a02244e71f7f34de722a7b2afcf055d2a39115a1e8c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.18
|
Release files / qpace-0.2.9-py3-none-macosx_11_0_arm64.whl
| Download URL | qpace-0.2.9-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.9 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
5f558a5698cda6ff8befd90bf26cd6cb4578f37a2614c167f4f089a8108d0fcd
|
|
BLAKE2b-256 checksum How to use checksums |
202beca34705628fae3d94855c30ccc6682c9ae30d550f4cad26286510b93411
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.18
|