Skip to main content

📊 The Quant SDK for Python and Javascript. Written in Rust.

Project description

qPACE banner

qPACE

The Quant SDK for Python · JavaScript · Rust

From research to production - all in one toolkit.

PyPI NPM Discord

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

indicator plot

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

Get started

Compiler gif

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

AlgoAlpha

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);

Roadmap

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!

Join Discord

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

qpace-0.2.7-py3-none-win_amd64.whl (5.4 MB view details)

Uploaded Python 3Windows x86-64

qpace-0.2.7-py3-none-manylinux2014_x86_64.whl (7.3 MB view details)

Uploaded Python 3

qpace-0.2.7-py3-none-macosx_11_0_x86_64.whl (6.6 MB view details)

Uploaded Python 3macOS 11.0+ x86-64

qpace-0.2.7-py3-none-macosx_11_0_arm64.whl (5.8 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file qpace-0.2.7-py3-none-win_amd64.whl.

File metadata

  • Download URL: qpace-0.2.7-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.1.0 CPython/3.10.18

File hashes

Hashes for qpace-0.2.7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 21b9959a2e41d3e0995d6abf147a71feca65680f96836ed430e3b7b25c7680b3
MD5 a58b58219c14f7aadf9fd51a9039e590
BLAKE2b-256 a3cd67ee3e77dba5ac6bb109f02b24d53adf5b71ed6a02bc70d34d95d1345aeb

See more details on using hashes here.

File details

Details for the file qpace-0.2.7-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qpace-0.2.7-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f11c5e7da98386fffb6cf95dc5fb2c630c4d846a09e54496d5eaa0cf0274bdb
MD5 74fb88e4841ab5cdbc7397bea8f24aff
BLAKE2b-256 edb930642ce52cc92d26fd0ff5e8ff1a1f908ef5e0cfc8e4f4050e46030e3818

See more details on using hashes here.

File details

Details for the file qpace-0.2.7-py3-none-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for qpace-0.2.7-py3-none-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 19965859adf357db75da252955f7474b4a69efc24a79560e96f9edd8a8705071
MD5 2b0e73042492ad4019f5391079369d79
BLAKE2b-256 62bc33f78b5da1fb95177b8f35cb0d400cb84cf608dcf2887b3bab9ba8b08ed2

See more details on using hashes here.

File details

Details for the file qpace-0.2.7-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: qpace-0.2.7-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for qpace-0.2.7-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18e8dc4b5b486676d3bc349111a613543cbfc8bba99c67c87ab1b23618dbf651
MD5 594f675c1cf718e7247496555f68ef0d
BLAKE2b-256 6aa0ebb1f33eb2a87a3f35a43dc35eaa4f63056e56432b91fda88f274cd11446

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page