📊 The Quant SDK for Python and Javascript. Written in Rust.
Project description
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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qpace-0.2.9-py3-none-win_amd64.whl.
File metadata
- Download URL: qpace-0.2.9-py3-none-win_amd64.whl
- Upload date:
- Size: 5.4 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0133fbaf1e96c76a4dfa298896383e5c6241b8ec9b117571d95828d6022ac1d
|
|
| MD5 |
b40c5cba257487ec75f290487abf425a
|
|
| BLAKE2b-256 |
010ad4068a83ec80c83f45f78d2dc78b26378959c375b3195b18c72ec82ffba3
|
File details
Details for the file qpace-0.2.9-py3-none-manylinux2014_x86_64.whl.
File metadata
- Download URL: qpace-0.2.9-py3-none-manylinux2014_x86_64.whl
- Upload date:
- Size: 7.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2609731f59e0c09834ea501b4cd3b0b1916643eb88c5675443b73b22d3debc36
|
|
| MD5 |
4ccb5bff332d9bdcd4f7cfd1fd5d4552
|
|
| BLAKE2b-256 |
584153bdab4137587030399a18248bd464cd0ab40249a8e94a603d89fb096cd7
|
File details
Details for the file qpace-0.2.9-py3-none-macosx_11_0_x86_64.whl.
File metadata
- Download URL: qpace-0.2.9-py3-none-macosx_11_0_x86_64.whl
- Upload date:
- Size: 6.7 MB
- Tags: Python 3, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec754d9f845822da93119b38049d1a8ad3490ee12a89de5d40fc14856bb9acb1
|
|
| MD5 |
d1fbb711f00cf2969d3dd5dd82411caa
|
|
| BLAKE2b-256 |
38b1425fc8adc0d8f2b82a02244e71f7f34de722a7b2afcf055d2a39115a1e8c
|
File details
Details for the file qpace-0.2.9-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: qpace-0.2.9-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 5.9 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f558a5698cda6ff8befd90bf26cd6cb4578f37a2614c167f4f089a8108d0fcd
|
|
| MD5 |
0381ef80d846599e083f93520c8d3e7a
|
|
| BLAKE2b-256 |
202beca34705628fae3d94855c30ccc6682c9ae30d550f4cad26286510b93411
|