TradePose Models
Shared Pydantic contracts, enums, indicator calculations, and Polars schemas for TradePose packages.
Installation
pip install tradepose-models
Python 3.13 or newer is required.
Indicator specification
Concrete indicator models are the calculation configs. IndicatorSpec adds canonical
source provenance and resolved wire identity.
from tradepose_models.enums import Freq
from tradepose_models.indicators import ATRIndicator
from tradepose_models.strategy import IndicatorSpec, SourceDescriptor
source = SourceDescriptor(instrument="NAS100", freq=Freq.DAY_1)
atr_spec = IndicatorSpec(
source=source,
indicator=ATRIndicator(period=14, shift=1),
)
assert atr_spec.instrument == "NAS100"
assert atr_spec.indicator_id.startswith("sha256:")
assert atr_spec.column_id.startswith("ind_v1_")
assert atr_spec.public_name.startswith("NAS100@1D:ATR(period=14)")
assert atr_spec.output_ref().indicator_id == atr_spec.indicator_id
public_name is presentation metadata for logs and friendly artifact views.
column_id is the only physical DataFrame column name; col() selects that struct
column and callers then select a declared field such as .struct.field("value").
short_name and display_name() are not part of the indicator API.
Typed authoring dependencies
Client authoring dependencies use tp.input(...); resolved IndicatorOutputRef values
belong only to compiled IndicatorSpec wire data. Do not substitute readable labels
or physical ind_v1_* column identities for typed references.
from tradepose_client import authoring as tp
atr = ATRIndicator(period=14, shift=1)
atr_quantile = ATRQuantileIndicator(
atr_column=tp.input("atr"),
window=252,
quantile=0.5,
shift=0,
)
supertrend = SuperTrendIndicator(
multiplier=3.0,
volatility_column=tp.input("atr"),
shift=1,
)
For open-driven decisions, indicators reading high, low, close, or volume
require shift >= 1. A literal current-bar column="open" may use shift=0.
Core modules
tradepose_models.strategy: strategy, graph, authoring, manifest, and portfolio data contracts.tradepose_models.indicators: concrete calculation models and their output contracts.tradepose_models.enums: shared frequencies and trading enums.tradepose_models.schemas: trades and timezone-aware OHLCV schemas.tradepose_models.export: typed export request and response contracts.
Experiment catalogs, workspace lifecycle, execution, and portfolio promotion are
owned by tradepose-client; Models does not provide a Python strategy registry.
Development
From the repository python/ directory:
uv run --project packages/models pytest packages/models/tests
uv run ruff check packages/models
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 tradepose_models-2.7.2.tar.gz.
File metadata
- Download URL: tradepose_models-2.7.2.tar.gz
- Upload date:
- Size: 150.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
783b0bd5b82cf703cbb157841f702c192ed04d87d63cabf384a4901119bf5f0b
|
|
| MD5 |
8427c5503a0c2b774a79a9f6f01ee2d9
|
|
| BLAKE2b-256 |
00f5c69579305fc76b6b8023583634e345f3365001fe9f4a736669cc411e58d2
|
File details
Details for the file tradepose_models-2.7.2-py3-none-any.whl.
File metadata
- Download URL: tradepose_models-2.7.2-py3-none-any.whl
- Upload date:
- Size: 159.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
582d1d7d1ec1082fdccef4a24d7ff66ba25e5cc93ff9575d8b1c34d6346d56d4
|
|
| MD5 |
69d2648e4b7dcd713bf0734f4efd3874
|
|
| BLAKE2b-256 |
e7004334703298a6d2d8cb861a8476a39d9aa29ff3b2e1424bad419242c35679
|