API Reference¶
This reference is organized by stable import surface and by conceptual family.
Recommended Imports¶
| Use case | Import surface |
|---|---|
| Notebook and exploratory work | ml4t.models |
| Structural model protocols | ml4t.models.api |
| Batch and result contracts | ml4t.models.types |
| Config objects | ml4t.models.configs |
| Cross-library handoff | ml4t.models.integration |
Package Root¶
The package root re-exports the main model classes, configs, batches, results, and integration helpers.
models
¶
Public package surface for ml4t-models.
AssetMapper
¶
Bases: Protocol
Protocol for mapping factor forecasts back to asset forecasts.
AssetPredictionModel
¶
Bases: Protocol
Protocol for direct asset-level predictive models.
FactorForecaster
¶
Bases: Protocol
Protocol for factor-premium forecasters.
LatentFactorModel
¶
Bases: Protocol
Protocol for structural latent-factor estimators.
PortfolioModel
¶
Bases: Protocol
Protocol for end-to-end portfolio learners.
PortfolioPostprocessor
¶
Bases: Protocol
Protocol for portfolio-weight post-processing hooks.
StochasticDiscountFactorEstimator
¶
Bases: Protocol
Protocol for stochastic discount factor models with weight-native outputs.
SAEModel
¶
Bases: BaseAssetPredictionModel[SAEConfig]
Checkpointed supervised autoencoder for direct asset prediction.
Source code in src/ml4t/models/asset_prediction/sae.py
AR1ForecasterConfig
dataclass
¶
Bases: BaseModelConfig
Config for per-factor AR(1) forecasts.
CAEConfig
dataclass
¶
CAEConfig(
seed=42,
device="cpu",
dtype="float64",
n_factors=5,
task_type="regression",
hidden_units=(32,),
n_ensemble=1,
n_epochs=50,
checkpoint_interval=5,
checkpoint_epochs=(),
default_checkpoint=None,
lr=0.001,
lambda_l1=0.0001,
batch_size=10000,
)
Bases: LatentFactorConfig
Config for conditional autoencoders.
DeepPortfolioConfig
dataclass
¶
DeepPortfolioConfig(
seed=42,
device="cpu",
dtype="float64",
turnover_penalty=0.0,
dropout=0.1,
asset_embedding_dim=8,
group_embedding_dim=4,
use_group_embedding=False,
use_cost_in_context=False,
vvsn_hidden_dim=64,
batch_size=16,
learning_rate=0.0001,
weight_decay=0.0001,
max_grad_norm=1.0,
annualization_factor=252.0,
sharpe_eps=1e-08,
gamma_cost=0.5,
softmin_tau=0.2,
softmin_lambda=0.1,
burn_in=0,
max_iters=200,
eval_every=10,
metric_ema_alpha=0.45,
metric_min_delta=0.001,
early_stopping_patience=20,
early_stopping_burn_in_iters=20,
checkpoint_every=10,
checkpoint_steps=(),
default_checkpoint=None,
d_model=64,
n_heads=2,
lstm_layers=1,
temporal_mha_layers=1,
cross_attention_heads=2,
cross_attention_lag=1,
macro_gnn_heads=2,
adapter_hidden_mult=2,
)
Bases: PortfolioConfig
Config for DeePM-style end-to-end portfolio learners.
EWMABaseForecasterConfig
dataclass
¶
Bases: BaseModelConfig
Config for EWMA factor-premium forecasts.
ExpandingMeanForecasterConfig
dataclass
¶
Bases: BaseModelConfig
Config for the historical-mean factor-premium baseline.
IPCAConfig
dataclass
¶
IPCAConfig(
seed=42,
device="cpu",
dtype="float64",
n_factors=5,
max_iter=10000,
tol=1e-06,
factor_ridge=1e-06,
gamma_ridge=1e-06,
)
Bases: LatentFactorConfig
Config for IPCA.
LinearPortfolioConfig
dataclass
¶
LinearPortfolioConfig(
seed=42,
device="cpu",
dtype="float64",
turnover_penalty=0.0,
dropout=0.1,
asset_embedding_dim=8,
group_embedding_dim=4,
use_group_embedding=False,
use_cost_in_context=False,
vvsn_hidden_dim=64,
batch_size=16,
learning_rate=0.0001,
weight_decay=0.0001,
max_grad_norm=1.0,
annualization_factor=252.0,
sharpe_eps=1e-08,
gamma_cost=0.5,
softmin_tau=0.2,
softmin_lambda=0.1,
burn_in=0,
max_iters=200,
eval_every=10,
metric_ema_alpha=0.45,
metric_min_delta=0.001,
early_stopping_patience=20,
early_stopping_burn_in_iters=20,
checkpoint_every=10,
checkpoint_steps=(),
default_checkpoint=None,
ridge_alpha=0.0001,
fit_intercept=True,
gross_exposure=1.0,
net_exposure=0.0,
max_abs_weight=None,
)
Bases: PortfolioConfig
Config for a pooled linear feature portfolio baseline.
LSTMPortfolioConfig
dataclass
¶
LSTMPortfolioConfig(
seed=42,
device="cpu",
dtype="float64",
turnover_penalty=0.0,
dropout=0.1,
asset_embedding_dim=8,
group_embedding_dim=4,
use_group_embedding=False,
use_cost_in_context=False,
vvsn_hidden_dim=64,
batch_size=16,
learning_rate=0.0001,
weight_decay=0.0001,
max_grad_norm=1.0,
annualization_factor=252.0,
sharpe_eps=1e-08,
gamma_cost=0.5,
softmin_tau=0.2,
softmin_lambda=0.1,
burn_in=0,
max_iters=200,
eval_every=10,
metric_ema_alpha=0.45,
metric_min_delta=0.001,
early_stopping_patience=20,
early_stopping_burn_in_iters=20,
checkpoint_every=10,
checkpoint_steps=(),
default_checkpoint=None,
hidden_size=64,
n_layers=1,
)
Bases: PortfolioConfig
Starter config for a sequence-based portfolio learner.
PCAConfig
dataclass
¶
Bases: LatentFactorConfig
Config for PCA and related persistent-panel baselines.
RPPCAConfig
dataclass
¶
RPPCAConfig(
seed=42,
device="cpu",
dtype="float64",
n_factors=5,
gamma=0.0,
base_moment="second_moment",
scale_by_asset_volatility=False,
normalize_loadings="unit_length",
orthogonalize_factors=False,
)
Bases: LatentFactorConfig
Config for risk-premium-aware PCA.
SAEConfig
dataclass
¶
SAEConfig(
seed=42,
device="cpu",
dtype="float64",
task_type="regression",
bottleneck_dim=96,
aux_hidden_dim=96,
main_hidden_units=(896, 448, 448, 256),
dropout_rates=None,
noise_std=0.035,
alpha=1.0,
aux_weight=1.0,
n_epochs=50,
batch_size=None,
checkpoint_interval=5,
checkpoint_epochs=(),
default_checkpoint=None,
lr=0.0001,
)
Bases: AssetPredictionConfig
Config for supervised autoencoder predictors.
StochasticDiscountFactorConfig
dataclass
¶
StochasticDiscountFactorConfig(
seed=42,
device="cpu",
dtype="float64",
state_dim_sdf=4,
state_dim_moment=32,
hidden_dim=64,
n_instruments=8,
dropout=0.05,
n_epochs_unc=256,
n_epochs_moment=64,
n_epochs_cond=1024,
checkpoint_interval=None,
checkpoint_epochs=(),
default_checkpoint=None,
beta_state_dim=4,
beta_hidden_dim=64,
beta_n_epochs=256,
beta_checkpoint_interval=None,
beta_checkpoint_epochs=(),
beta_default_checkpoint=None,
beta_lr=0.001,
burn_in_epochs=0,
lr=0.001,
weight_decay=0.0,
)
Bases: BaseModelConfig
Config for stochastic discount factor networks.
AR1FactorForecaster
¶
Bases: BaseFactorForecaster[AR1ForecasterConfig]
Forecast factor premia with independent AR(1) models.
Source code in src/ml4t/models/forecasters/ar.py
EWMABaseFactorForecaster
¶
Bases: BaseFactorForecaster[EWMABaseForecasterConfig]
Forecast factor premia with exponentially weighted moving averages.
Source code in src/ml4t/models/forecasters/ewma.py
ExpandingMeanFactorForecaster
¶
Bases: BaseFactorForecaster[ExpandingMeanForecasterConfig]
Forecast factor premia with the training-sample mean.
Source code in src/ml4t/models/forecasters/mean.py
BacktestDataFeedInputs
dataclass
¶
BacktestDataFeedInputs(
feed_spec,
prices_frame=None,
prices_path=None,
signals=None,
context=None,
metadata=dict(),
)
Structured handoff payload for ml4t.backtest.DataFeed.
to_datafeed_kwargs
¶
Return kwargs compatible with ml4t.backtest.DataFeed.
Source code in src/ml4t/models/integration/backtest.py
ContextFrame
dataclass
¶
PredictionsFrame
dataclass
¶
ResolvedDatasetSchema
dataclass
¶
Resolved timestamp/entity column contract for a tabular dataset.
ResultsFrame
dataclass
¶
Tabular model results with optional export helpers.
to_dicts
¶
to_columnar
¶
Return the frame as columnar Python lists.
Source code in src/ml4t/models/integration/surfaces.py
to_polars
¶
write_parquet
¶
Write the frame to parquet when Polars is installed.
Source code in src/ml4t/models/integration/surfaces.py
SignalsFrame
dataclass
¶
WeightsFrame
dataclass
¶
CAEModel
¶
Bases: BaseLatentFactorModel[CAEConfig]
Conditional autoencoder with checkpoint-aware structural extraction.
Source code in src/ml4t/models/latent_factors/cae.py
IPCAModel
¶
Bases: BaseLatentFactorModel[IPCAConfig]
Instrumented PCA structural extractor for ragged cross-sections.
Source code in src/ml4t/models/latent_factors/ipca.py
PCAModel
¶
Bases: BaseLatentFactorModel[PCAConfig]
Persistent-panel PCA structural extractor.
Source code in src/ml4t/models/latent_factors/pca.py
RPPCAModel
¶
Bases: BaseLatentFactorModel[RPPCAConfig]
Persistent-panel RP-PCA structural extractor.
Source code in src/ml4t/models/latent_factors/rp_pca.py
BetaLambdaMapper
¶
LatentFactorForecastPipeline
¶
Compose structural extraction, factor forecasting, and asset mapping.
Source code in src/ml4t/models/pipelines.py
PipelineFitResult
dataclass
¶
Fit summaries for each stage of a latent-factor pipeline.
PortfolioAllocationPipeline
¶
Compose a portfolio model with optional weight post-processing hooks.
Source code in src/ml4t/models/pipelines.py
PortfolioPipelineFitResult
dataclass
¶
Fit summaries for a portfolio-allocation pipeline.
LinearStochasticDiscountFactorReturnMapper
¶
Bases: FitObservable
Map stochastic discount factor weights to expected returns via a fitted linear projection.
Source code in src/ml4t/models/stochastic_discount_factor/mapper.py
StochasticDiscountFactorBetaNetworkHead
¶
Bases: FitObservable
Paper-faithful beta-network predictive head for stochastic discount factor models.
Source code in src/ml4t/models/stochastic_discount_factor/mapper.py
StochasticDiscountFactorModel
¶
Bases: BaseStochasticDiscountFactorModel
Stochastic discount factor model with weight-native structural outputs.
Source code in src/ml4t/models/stochastic_discount_factor/model.py
AssetForecastResult
dataclass
¶
Asset-level expected-return forecasts.
AssetSignalResult
dataclass
¶
Asset-level predictive signals.
AssetWeightsResult
dataclass
¶
Cross-sectional asset-weight output indexed by date and asset.
CrossSectionBatch
dataclass
¶
CrossSectionBatch(
characteristics,
returns=None,
factor_returns=None,
context_features=None,
timestamps=(),
asset_ids=(),
mask=None,
metadata=dict(),
)
Dated observed cross-sections with a date-local slot axis.
FactorForecastResult
dataclass
¶
Forecast of latent factor premia.
FitRunRecord
dataclass
¶
FitRunRecord(
schema_version,
package_version,
model_name,
config,
seed,
resolved_device,
resolved_dtype,
input_dimensions,
input_sha256,
stopping_reason,
skipped_updates,
elapsed_seconds,
error_type=None,
)
Versioned, redacted execution context for one fit attempt.
FitSummary
dataclass
¶
FitSummary(
converged,
train_metrics=dict(),
val_metrics=dict(),
best_epoch=None,
history=(),
notes=(),
run_record=None,
)
Fit outcome for a model or forecaster.
LatentFactorPrediction
dataclass
¶
Full prediction bundle from a latent-factor pipeline.
LatentFactorState
dataclass
¶
LatentFactorState(
asset_betas,
factor_returns=None,
checkpoint_epoch=None,
timestamps=(),
asset_ids=(),
metadata=dict(),
)
Structural latent-factor state extracted from a batch.
PersistentPanelBatch
dataclass
¶
PersistentPanelBatch(
returns=None,
characteristics=None,
timestamps=(),
asset_ids=(),
metadata=dict(),
)
Stable-entity panel for models such as PCA and RP-PCA.
PortfolioPrediction
dataclass
¶
Full prediction bundle from a portfolio-allocation pipeline.
PortfolioSequenceBatch
dataclass
¶
PortfolioSequenceBatch(
features,
returns=None,
vol_scale=None,
prev_weights=None,
mask=None,
group_ids=None,
costs=None,
adjacency_mask=None,
timestamps=(),
asset_ids=(),
metadata=dict(),
)
Sequence batch for end-to-end portfolio learners.
PortfolioWeightsResult
dataclass
¶
PortfolioWeightsResult(
weights,
checkpoint_step=None,
timestamps=(),
asset_ids=(),
metadata=dict(),
)
Portfolio-weight output for end-to-end allocators.
StochasticDiscountFactorState
dataclass
¶
StochasticDiscountFactorState(
asset_weights,
sdf_values=None,
checkpoint_epoch=None,
timestamps=(),
asset_ids=(),
metadata=dict(),
)
Structural state extracted from a stochastic discount factor model.
backtest_datafeed_inputs
¶
backtest_datafeed_inputs(
*,
prices_frame=None,
prices_path=None,
signals=None,
context=None,
schema=None,
timestamp_col=None,
entity_col=None,
price_col=None,
open_col=None,
high_col=None,
low_col=None,
close_col=None,
volume_col=None,
bid_col=None,
ask_col=None,
mid_col=None,
bid_size_col=None,
ask_size_col=None,
calendar=None,
timezone=None,
data_frequency=None,
bar_type=None,
timestamp_semantics=None,
session_start_time=None,
metadata=None,
)
Build a structured DataFeed handoff from model outputs and market-data metadata.
Source code in src/ml4t/models/integration/backtest.py
backtest_inputs_from_asset_forecast
¶
backtest_inputs_from_asset_forecast(
forecast,
*,
prices_frame=None,
prices_path=None,
schema=None,
context=None,
timestamp_col=None,
entity_col=None,
price_col=None,
open_col=None,
high_col=None,
low_col=None,
close_col=None,
volume_col=None,
bid_col=None,
ask_col=None,
mid_col=None,
bid_size_col=None,
ask_size_col=None,
calendar=None,
timezone=None,
data_frequency=None,
bar_type=None,
timestamp_semantics=None,
session_start_time=None,
constants=None,
metadata=None,
)
Build DataFeed inputs directly from an asset-forecast result.
Source code in src/ml4t/models/integration/backtest.py
backtest_inputs_from_asset_signal
¶
backtest_inputs_from_asset_signal(
signal,
*,
prices_frame=None,
prices_path=None,
schema=None,
context=None,
timestamp_col=None,
entity_col=None,
price_col=None,
open_col=None,
high_col=None,
low_col=None,
close_col=None,
volume_col=None,
bid_col=None,
ask_col=None,
mid_col=None,
bid_size_col=None,
ask_size_col=None,
calendar=None,
timezone=None,
data_frequency=None,
bar_type=None,
timestamp_semantics=None,
session_start_time=None,
constants=None,
metadata=None,
)
Build DataFeed inputs directly from an asset-signal result.
Source code in src/ml4t/models/integration/backtest.py
backtest_inputs_from_weights
¶
backtest_inputs_from_weights(
weights,
*,
prices_frame=None,
prices_path=None,
schema=None,
as_context=False,
context_prefix="w_",
timestamp_col=None,
entity_col=None,
price_col=None,
open_col=None,
high_col=None,
low_col=None,
close_col=None,
volume_col=None,
bid_col=None,
ask_col=None,
mid_col=None,
bid_size_col=None,
ask_size_col=None,
calendar=None,
timezone=None,
data_frequency=None,
bar_type=None,
timestamp_semantics=None,
session_start_time=None,
constants=None,
metadata=None,
)
Build DataFeed inputs directly from target-weight outputs.
Source code in src/ml4t/models/integration/backtest.py
context_frame_from_weights
¶
Convert asset weights to a wide context frame for backtest strategies.
Source code in src/ml4t/models/integration/surfaces.py
cross_section_batch_from_long_frame
¶
cross_section_batch_from_long_frame(
frame,
*,
schema=None,
feature_cols,
return_col=None,
context_cols=(),
timestamp_col=None,
entity_col=None,
metadata=None,
)
Build a ragged cross-sectional batch from a long-format frame.
Source code in src/ml4t/models/integration/data.py
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 | |
persistent_panel_batch_from_long_frame
¶
persistent_panel_batch_from_long_frame(
frame,
*,
schema=None,
return_col=None,
feature_cols=(),
timestamp_col=None,
entity_col=None,
metadata=None,
)
Build a persistent panel batch from a long-format frame.
Source code in src/ml4t/models/integration/data.py
predictions_frame_from_asset_forecast
¶
Convert asset expected returns to a diagnostic-ready predictions frame.
Source code in src/ml4t/models/integration/surfaces.py
predictions_frame_from_asset_signal
¶
Convert asset-level signals to a diagnostic-ready predictions frame.
Source code in src/ml4t/models/integration/surfaces.py
resolve_dataset_schema
¶
resolve_dataset_schema(
frame,
*,
schema=None,
timestamp_col=None,
entity_col=None,
timestamp_candidates=(
"timestamp",
"datetime",
"date",
"time",
),
entity_candidates=(
"asset",
"symbol",
"ticker",
"instrument",
"security",
),
)
Resolve timestamp and entity columns from explicit names or ML4T-style metadata.
Source code in src/ml4t/models/integration/data.py
resolve_feed_spec_mapping
¶
resolve_feed_spec_mapping(
frame=None,
*,
schema=None,
timestamp_col=None,
entity_col=None,
price_col=None,
open_col=None,
high_col=None,
low_col=None,
close_col=None,
volume_col=None,
bid_col=None,
ask_col=None,
mid_col=None,
bid_size_col=None,
ask_size_col=None,
calendar=None,
timezone=None,
data_frequency=None,
bar_type=None,
timestamp_semantics=None,
session_start_time=None,
)
Resolve a FeedSpec-compatible mapping from schema metadata and overrides.
Source code in src/ml4t/models/integration/backtest.py
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | |
signals_frame_from_asset_weights
¶
Convert cross-sectional asset weights to a diagnostic-ready signals frame.
Source code in src/ml4t/models/integration/surfaces.py
signals_frame_from_portfolio_weights
¶
Convert portfolio weights to a diagnostic-ready signals frame.
Source code in src/ml4t/models/integration/surfaces.py
weights_frame_from_asset_weights
¶
Convert cross-sectional asset weights to a backtest-ready weights frame.
Source code in src/ml4t/models/integration/surfaces.py
weights_frame_from_portfolio_weights
¶
Convert portfolio weights to a backtest-ready weights frame.
Source code in src/ml4t/models/integration/surfaces.py
write_backtest_frames
¶
Atomically replace one complete generation of backtest frame artifacts.
Source code in src/ml4t/models/integration/surfaces.py
Protocols¶
api
¶
Public protocols for ml4t-models.
LatentFactorModel
¶
Bases: Protocol
Protocol for structural latent-factor estimators.
FactorForecaster
¶
Bases: Protocol
Protocol for factor-premium forecasters.
AssetMapper
¶
Bases: Protocol
Protocol for mapping factor forecasts back to asset forecasts.
AssetPredictionModel
¶
Bases: Protocol
Protocol for direct asset-level predictive models.
StochasticDiscountFactorEstimator
¶
Bases: Protocol
Protocol for stochastic discount factor models with weight-native outputs.
PortfolioModel
¶
Bases: Protocol
Protocol for end-to-end portfolio learners.
PortfolioPostprocessor
¶
Bases: Protocol
Protocol for portfolio-weight post-processing hooks.
Typed Contracts¶
types
¶
Typed batches and result objects for ml4t-models.
PersistentPanelBatch
dataclass
¶
PersistentPanelBatch(
returns=None,
characteristics=None,
timestamps=(),
asset_ids=(),
metadata=dict(),
)
Stable-entity panel for models such as PCA and RP-PCA.
CrossSectionBatch
dataclass
¶
CrossSectionBatch(
characteristics,
returns=None,
factor_returns=None,
context_features=None,
timestamps=(),
asset_ids=(),
mask=None,
metadata=dict(),
)
Dated observed cross-sections with a date-local slot axis.
PortfolioSequenceBatch
dataclass
¶
PortfolioSequenceBatch(
features,
returns=None,
vol_scale=None,
prev_weights=None,
mask=None,
group_ids=None,
costs=None,
adjacency_mask=None,
timestamps=(),
asset_ids=(),
metadata=dict(),
)
Sequence batch for end-to-end portfolio learners.
FitSummary
dataclass
¶
FitSummary(
converged,
train_metrics=dict(),
val_metrics=dict(),
best_epoch=None,
history=(),
notes=(),
run_record=None,
)
Fit outcome for a model or forecaster.
LatentFactorState
dataclass
¶
LatentFactorState(
asset_betas,
factor_returns=None,
checkpoint_epoch=None,
timestamps=(),
asset_ids=(),
metadata=dict(),
)
Structural latent-factor state extracted from a batch.
FactorForecastResult
dataclass
¶
Forecast of latent factor premia.
AssetForecastResult
dataclass
¶
Asset-level expected-return forecasts.
AssetSignalResult
dataclass
¶
Asset-level predictive signals.
AssetWeightsResult
dataclass
¶
Cross-sectional asset-weight output indexed by date and asset.
StochasticDiscountFactorState
dataclass
¶
StochasticDiscountFactorState(
asset_weights,
sdf_values=None,
checkpoint_epoch=None,
timestamps=(),
asset_ids=(),
metadata=dict(),
)
Structural state extracted from a stochastic discount factor model.
PortfolioWeightsResult
dataclass
¶
PortfolioWeightsResult(
weights,
checkpoint_step=None,
timestamps=(),
asset_ids=(),
metadata=dict(),
)
Portfolio-weight output for end-to-end allocators.
LatentFactorPrediction
dataclass
¶
Full prediction bundle from a latent-factor pipeline.
PortfolioPrediction
dataclass
¶
Full prediction bundle from a portfolio-allocation pipeline.
Configs¶
configs
¶
Public config dataclasses.
SAEConfig
dataclass
¶
SAEConfig(
seed=42,
device="cpu",
dtype="float64",
task_type="regression",
bottleneck_dim=96,
aux_hidden_dim=96,
main_hidden_units=(896, 448, 448, 256),
dropout_rates=None,
noise_std=0.035,
alpha=1.0,
aux_weight=1.0,
n_epochs=50,
batch_size=None,
checkpoint_interval=5,
checkpoint_epochs=(),
default_checkpoint=None,
lr=0.0001,
)
Bases: AssetPredictionConfig
Config for supervised autoencoder predictors.
AR1ForecasterConfig
dataclass
¶
Bases: BaseModelConfig
Config for per-factor AR(1) forecasts.
EWMABaseForecasterConfig
dataclass
¶
Bases: BaseModelConfig
Config for EWMA factor-premium forecasts.
ExpandingMeanForecasterConfig
dataclass
¶
Bases: BaseModelConfig
Config for the historical-mean factor-premium baseline.
CAEConfig
dataclass
¶
CAEConfig(
seed=42,
device="cpu",
dtype="float64",
n_factors=5,
task_type="regression",
hidden_units=(32,),
n_ensemble=1,
n_epochs=50,
checkpoint_interval=5,
checkpoint_epochs=(),
default_checkpoint=None,
lr=0.001,
lambda_l1=0.0001,
batch_size=10000,
)
Bases: LatentFactorConfig
Config for conditional autoencoders.
IPCAConfig
dataclass
¶
IPCAConfig(
seed=42,
device="cpu",
dtype="float64",
n_factors=5,
max_iter=10000,
tol=1e-06,
factor_ridge=1e-06,
gamma_ridge=1e-06,
)
Bases: LatentFactorConfig
Config for IPCA.
PCAConfig
dataclass
¶
Bases: LatentFactorConfig
Config for PCA and related persistent-panel baselines.
RPPCAConfig
dataclass
¶
RPPCAConfig(
seed=42,
device="cpu",
dtype="float64",
n_factors=5,
gamma=0.0,
base_moment="second_moment",
scale_by_asset_volatility=False,
normalize_loadings="unit_length",
orthogonalize_factors=False,
)
Bases: LatentFactorConfig
Config for risk-premium-aware PCA.
StochasticDiscountFactorConfig
dataclass
¶
StochasticDiscountFactorConfig(
seed=42,
device="cpu",
dtype="float64",
state_dim_sdf=4,
state_dim_moment=32,
hidden_dim=64,
n_instruments=8,
dropout=0.05,
n_epochs_unc=256,
n_epochs_moment=64,
n_epochs_cond=1024,
checkpoint_interval=None,
checkpoint_epochs=(),
default_checkpoint=None,
beta_state_dim=4,
beta_hidden_dim=64,
beta_n_epochs=256,
beta_checkpoint_interval=None,
beta_checkpoint_epochs=(),
beta_default_checkpoint=None,
beta_lr=0.001,
burn_in_epochs=0,
lr=0.001,
weight_decay=0.0,
)
Bases: BaseModelConfig
Config for stochastic discount factor networks.
DeepPortfolioConfig
dataclass
¶
DeepPortfolioConfig(
seed=42,
device="cpu",
dtype="float64",
turnover_penalty=0.0,
dropout=0.1,
asset_embedding_dim=8,
group_embedding_dim=4,
use_group_embedding=False,
use_cost_in_context=False,
vvsn_hidden_dim=64,
batch_size=16,
learning_rate=0.0001,
weight_decay=0.0001,
max_grad_norm=1.0,
annualization_factor=252.0,
sharpe_eps=1e-08,
gamma_cost=0.5,
softmin_tau=0.2,
softmin_lambda=0.1,
burn_in=0,
max_iters=200,
eval_every=10,
metric_ema_alpha=0.45,
metric_min_delta=0.001,
early_stopping_patience=20,
early_stopping_burn_in_iters=20,
checkpoint_every=10,
checkpoint_steps=(),
default_checkpoint=None,
d_model=64,
n_heads=2,
lstm_layers=1,
temporal_mha_layers=1,
cross_attention_heads=2,
cross_attention_lag=1,
macro_gnn_heads=2,
adapter_hidden_mult=2,
)
Bases: PortfolioConfig
Config for DeePM-style end-to-end portfolio learners.
LinearPortfolioConfig
dataclass
¶
LinearPortfolioConfig(
seed=42,
device="cpu",
dtype="float64",
turnover_penalty=0.0,
dropout=0.1,
asset_embedding_dim=8,
group_embedding_dim=4,
use_group_embedding=False,
use_cost_in_context=False,
vvsn_hidden_dim=64,
batch_size=16,
learning_rate=0.0001,
weight_decay=0.0001,
max_grad_norm=1.0,
annualization_factor=252.0,
sharpe_eps=1e-08,
gamma_cost=0.5,
softmin_tau=0.2,
softmin_lambda=0.1,
burn_in=0,
max_iters=200,
eval_every=10,
metric_ema_alpha=0.45,
metric_min_delta=0.001,
early_stopping_patience=20,
early_stopping_burn_in_iters=20,
checkpoint_every=10,
checkpoint_steps=(),
default_checkpoint=None,
ridge_alpha=0.0001,
fit_intercept=True,
gross_exposure=1.0,
net_exposure=0.0,
max_abs_weight=None,
)
Bases: PortfolioConfig
Config for a pooled linear feature portfolio baseline.
LSTMPortfolioConfig
dataclass
¶
LSTMPortfolioConfig(
seed=42,
device="cpu",
dtype="float64",
turnover_penalty=0.0,
dropout=0.1,
asset_embedding_dim=8,
group_embedding_dim=4,
use_group_embedding=False,
use_cost_in_context=False,
vvsn_hidden_dim=64,
batch_size=16,
learning_rate=0.0001,
weight_decay=0.0001,
max_grad_norm=1.0,
annualization_factor=252.0,
sharpe_eps=1e-08,
gamma_cost=0.5,
softmin_tau=0.2,
softmin_lambda=0.1,
burn_in=0,
max_iters=200,
eval_every=10,
metric_ema_alpha=0.45,
metric_min_delta=0.001,
early_stopping_patience=20,
early_stopping_burn_in_iters=20,
checkpoint_every=10,
checkpoint_steps=(),
default_checkpoint=None,
hidden_size=64,
n_layers=1,
)
Bases: PortfolioConfig
Starter config for a sequence-based portfolio learner.
Pipelines¶
pipelines
¶
Composable pipelines for finance-native model workflows.
LatentFactorForecastPipeline
¶
Compose structural extraction, factor forecasting, and asset mapping.
Source code in src/ml4t/models/pipelines.py
PipelineFitResult
dataclass
¶
Fit summaries for each stage of a latent-factor pipeline.
PortfolioAllocationPipeline
¶
Compose a portfolio model with optional weight post-processing hooks.
Source code in src/ml4t/models/pipelines.py
PortfolioPipelineFitResult
dataclass
¶
Fit summaries for a portfolio-allocation pipeline.
Stability¶
The API Stability page defines the public
surface intended to remain stable through the 0.1 beta series.
Integration¶
integration
¶
Integration helpers for cross-library data contracts.
BacktestDataFeedInputs
dataclass
¶
BacktestDataFeedInputs(
feed_spec,
prices_frame=None,
prices_path=None,
signals=None,
context=None,
metadata=dict(),
)
Structured handoff payload for ml4t.backtest.DataFeed.
to_datafeed_kwargs
¶
Return kwargs compatible with ml4t.backtest.DataFeed.
Source code in src/ml4t/models/integration/backtest.py
ResolvedDatasetSchema
dataclass
¶
Resolved timestamp/entity column contract for a tabular dataset.
ContextFrame
dataclass
¶
PredictionsFrame
dataclass
¶
ResultsFrame
dataclass
¶
Tabular model results with optional export helpers.
to_dicts
¶
to_columnar
¶
Return the frame as columnar Python lists.
Source code in src/ml4t/models/integration/surfaces.py
to_polars
¶
write_parquet
¶
Write the frame to parquet when Polars is installed.
Source code in src/ml4t/models/integration/surfaces.py
SignalsFrame
dataclass
¶
WeightsFrame
dataclass
¶
backtest_datafeed_inputs
¶
backtest_datafeed_inputs(
*,
prices_frame=None,
prices_path=None,
signals=None,
context=None,
schema=None,
timestamp_col=None,
entity_col=None,
price_col=None,
open_col=None,
high_col=None,
low_col=None,
close_col=None,
volume_col=None,
bid_col=None,
ask_col=None,
mid_col=None,
bid_size_col=None,
ask_size_col=None,
calendar=None,
timezone=None,
data_frequency=None,
bar_type=None,
timestamp_semantics=None,
session_start_time=None,
metadata=None,
)
Build a structured DataFeed handoff from model outputs and market-data metadata.
Source code in src/ml4t/models/integration/backtest.py
backtest_inputs_from_asset_forecast
¶
backtest_inputs_from_asset_forecast(
forecast,
*,
prices_frame=None,
prices_path=None,
schema=None,
context=None,
timestamp_col=None,
entity_col=None,
price_col=None,
open_col=None,
high_col=None,
low_col=None,
close_col=None,
volume_col=None,
bid_col=None,
ask_col=None,
mid_col=None,
bid_size_col=None,
ask_size_col=None,
calendar=None,
timezone=None,
data_frequency=None,
bar_type=None,
timestamp_semantics=None,
session_start_time=None,
constants=None,
metadata=None,
)
Build DataFeed inputs directly from an asset-forecast result.
Source code in src/ml4t/models/integration/backtest.py
backtest_inputs_from_asset_signal
¶
backtest_inputs_from_asset_signal(
signal,
*,
prices_frame=None,
prices_path=None,
schema=None,
context=None,
timestamp_col=None,
entity_col=None,
price_col=None,
open_col=None,
high_col=None,
low_col=None,
close_col=None,
volume_col=None,
bid_col=None,
ask_col=None,
mid_col=None,
bid_size_col=None,
ask_size_col=None,
calendar=None,
timezone=None,
data_frequency=None,
bar_type=None,
timestamp_semantics=None,
session_start_time=None,
constants=None,
metadata=None,
)
Build DataFeed inputs directly from an asset-signal result.
Source code in src/ml4t/models/integration/backtest.py
backtest_inputs_from_weights
¶
backtest_inputs_from_weights(
weights,
*,
prices_frame=None,
prices_path=None,
schema=None,
as_context=False,
context_prefix="w_",
timestamp_col=None,
entity_col=None,
price_col=None,
open_col=None,
high_col=None,
low_col=None,
close_col=None,
volume_col=None,
bid_col=None,
ask_col=None,
mid_col=None,
bid_size_col=None,
ask_size_col=None,
calendar=None,
timezone=None,
data_frequency=None,
bar_type=None,
timestamp_semantics=None,
session_start_time=None,
constants=None,
metadata=None,
)
Build DataFeed inputs directly from target-weight outputs.
Source code in src/ml4t/models/integration/backtest.py
resolve_feed_spec_mapping
¶
resolve_feed_spec_mapping(
frame=None,
*,
schema=None,
timestamp_col=None,
entity_col=None,
price_col=None,
open_col=None,
high_col=None,
low_col=None,
close_col=None,
volume_col=None,
bid_col=None,
ask_col=None,
mid_col=None,
bid_size_col=None,
ask_size_col=None,
calendar=None,
timezone=None,
data_frequency=None,
bar_type=None,
timestamp_semantics=None,
session_start_time=None,
)
Resolve a FeedSpec-compatible mapping from schema metadata and overrides.
Source code in src/ml4t/models/integration/backtest.py
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 | |
cross_section_batch_from_long_frame
¶
cross_section_batch_from_long_frame(
frame,
*,
schema=None,
feature_cols,
return_col=None,
context_cols=(),
timestamp_col=None,
entity_col=None,
metadata=None,
)
Build a ragged cross-sectional batch from a long-format frame.
Source code in src/ml4t/models/integration/data.py
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 | |
persistent_panel_batch_from_long_frame
¶
persistent_panel_batch_from_long_frame(
frame,
*,
schema=None,
return_col=None,
feature_cols=(),
timestamp_col=None,
entity_col=None,
metadata=None,
)
Build a persistent panel batch from a long-format frame.
Source code in src/ml4t/models/integration/data.py
resolve_dataset_schema
¶
resolve_dataset_schema(
frame,
*,
schema=None,
timestamp_col=None,
entity_col=None,
timestamp_candidates=(
"timestamp",
"datetime",
"date",
"time",
),
entity_candidates=(
"asset",
"symbol",
"ticker",
"instrument",
"security",
),
)
Resolve timestamp and entity columns from explicit names or ML4T-style metadata.
Source code in src/ml4t/models/integration/data.py
context_frame_from_weights
¶
Convert asset weights to a wide context frame for backtest strategies.
Source code in src/ml4t/models/integration/surfaces.py
predictions_frame_from_asset_forecast
¶
Convert asset expected returns to a diagnostic-ready predictions frame.
Source code in src/ml4t/models/integration/surfaces.py
predictions_frame_from_asset_signal
¶
Convert asset-level signals to a diagnostic-ready predictions frame.
Source code in src/ml4t/models/integration/surfaces.py
signals_frame_from_asset_weights
¶
Convert cross-sectional asset weights to a diagnostic-ready signals frame.
Source code in src/ml4t/models/integration/surfaces.py
signals_frame_from_portfolio_weights
¶
Convert portfolio weights to a diagnostic-ready signals frame.
Source code in src/ml4t/models/integration/surfaces.py
weights_frame_from_asset_weights
¶
Convert cross-sectional asset weights to a backtest-ready weights frame.
Source code in src/ml4t/models/integration/surfaces.py
weights_frame_from_portfolio_weights
¶
Convert portfolio weights to a backtest-ready weights frame.
Source code in src/ml4t/models/integration/surfaces.py
write_backtest_frames
¶
Atomically replace one complete generation of backtest frame artifacts.
Source code in src/ml4t/models/integration/surfaces.py
Family Namespaces¶
| Namespace | Purpose |
|---|---|
ml4t.models.latent_factors |
structural latent-factor estimators |
ml4t.models.forecasters |
factor-premium forecasters |
ml4t.models.mappers |
asset-level mapping from factor forecasts |
ml4t.models.stochastic_discount_factor |
weight-native SDF estimation and return projections |
ml4t.models.asset_prediction |
direct asset-level predictors |
ml4t.models.portfolio |
end-to-end portfolio learners |