Personal project to build a quant investment platform while testing out some newer tools/libraries.
- dagster for data ingesting, pipelines, job scheduling
- ibis with duckdb backend for data querying
- store data in parquet
- Mantle: core data access
- Markets: a collection of tradeable futures markets
- Market: entries of Markets
- some metadata is lazy-loaded
- Contract: the discrete futures contract
- Market: entries of Markets
- FactorModel: factor model instance (SignalModel)
- ModelDefinition:
- contains necessary information to build the model
- types:
- AlphaModel
- RiskModel
- ModelDefinition:
- Optimizer:
- set up a generic problem and solve it
- Strategy:
- given a model, initial holdings, get optimal portfolio + trades
- Simulation:
- backtest of a Strategy.
- Portfolio:
- collection/time series of holdings.
- perform various analytics via standard interface.
- Futures+Forwards
- Trend
- price trend
- fundamental trend
- Carry
- Trend
- Crypto
- Fundamental L/S
- Equities
- Fundamental L/S
curl -LsSf https://astral.sh/uv/install.sh | sh
brew install ta-lib
source ~/.local/bin/env
uv sync
source .venv/bin/activate
https://github.com/TA-Lib/ta-lib-python
from tecton.dal.mantle import Mantle
Mantle.select(Mantle.Tables.futures.cont, start, end, columns=[])
- copy raw data files
- implement S3 and local storage options
- add data checks for partitions
- return data sorted...
- store model definition in yaml
- build factor-forecast signal pipeline
- calc/store vol
- try using garch model for vol
- calculate market and asset correlations
- lookback capability
- yamls live close to code (instead of having a central "config" dir)