Metadata-Version: 2.4
Name: altris
Version: 0.1.0a0
Summary: ALTRIS technical-analysis functions preview.
Author: AltrisLabs
License-Expression: Apache-2.0
Keywords: algorithmic trading,finance,indicators,quantitative research,technical analysis,trading
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Office/Business :: Financial :: Investment
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numba>=0.61
Requires-Dist: numpy>=2.0
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Provides-Extra: release
Requires-Dist: build>=1.2; extra == "release"
Requires-Dist: twine>=5; extra == "release"
Dynamic: license-file

# ALTRIS

ALTRIS is a Python technical-analysis functions preview for trading research.

This first public release intentionally focuses on `altris.functions`: a flat
formula facade for indicators, math/stat helpers, metadata, output schemas, and
small batch execution.

```python
import altris.functions as fn

close = [100.0, 101.0, 103.0, 102.0, 104.0, 105.0]

sma3 = fn.sma(close, length=3)
ema3 = fn.ema(close, length=3)
rsi3 = fn.rsi(close, length=3)
```

## Install

```powershell
pip install altris
```

This is a pre-alpha release. APIs may change while ALTRIS Core continues
development.

## Technical-Analysis Examples

Use the public functions namespace with the `fn` alias:

```python
import altris.functions as fn

open_ = [99.0, 100.5, 102.0, 101.5, 103.0, 104.5]
high = [101.0, 102.0, 104.0, 103.5, 105.0, 106.0]
low = [98.0, 100.0, 101.0, 100.5, 102.0, 103.0]
close = [100.0, 101.0, 103.0, 102.0, 104.0, 105.0]
volume = [10_000, 12_000, 15_000, 13_000, 16_000, 17_000]

bands = fn.bb(close, length=3)
macd = fn.macd(close, fast=2, slow=4, signal=2)
atr = fn.atr(high, low, close, length=3)
obv = fn.obv(close, volume)
doji = fn.doji(open_, high, low, close)
```

Multi-output formulas return small dataclasses:

```python
latest_upper_band = bands.upper[-1]
latest_macd_line = macd.macd[-1]
```

You can split those outputs into named columns:

```python
columns = fn.result_columns("bb", bands, prefix="bb3")
assert set(columns) == {"bb3_upper", "bb3_middle", "bb3_lower"}
```

## Math Functions

ALTRIS also exposes math and statistical helpers that are useful in technical
analysis research:

```python
returns = fn.percent_return(close)
mean3 = fn.mean(close, length=3)
stdev3 = fn.stdev(close, length=3)
zscore3 = fn.zscore(close, length=3)
```

## Metadata And Catalog

Every public formula has catalog metadata:

```python
import altris.functions as fn

metadata = fn.function_metadata("rsi")
print(metadata["description"])
print(metadata["outputs"])
print(metadata["behavior"]["warmup"])
```

To list available functions:

```python
names = [entry.function_name for entry in fn.catalog_entries()]
```

## Batch Execution

`fn.batch(...)` can run function requests with shared inputs and parameter grids:

```python
import altris.functions as fn

close = [100.0, 101.0, 103.0, 102.0, 104.0, 105.0]

result = fn.batch(
    ["sma", "ema"],
    inputs={"source": close},
    parameter_grid={"length": [2, 3]},
)

for record in result.records:
    print(record.key, record.values[-1])
```

## Scope

This release includes the technical-analysis functions surface only. Broader
feature materialization, strategy/backtesting, simulation, evaluation, Studio,
and app workflows are not part of this first package.

ALTRIS is research tooling. It is not financial advice, a broker, an execution
system, live order routing, or credential management software.
