You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

76 lines
2.0 KiB

"""
CTA 1-day return prediction experiments.
This module provides dataset loading and experiment utilities for
CTA (Commodity Trading Advisor) 1-day return prediction.
Example:
>>> from alpha_lab.cta_1d import CTA1DLoader
>>>
>>> loader = CTA1DLoader(
... return_type='o2c_twap1min',
... normalization='dual',
... feature_sets=['alpha158', 'hffactor']
... )
>>> dataset = loader.load(dt_range=['2020-01-01', '2023-12-31'])
>>>
>>> # Define train/test split
>>> dataset = dataset.with_segments({
... 'train': ('2020-01-01', '2022-12-31'),
... 'test': ('2023-01-01', '2023-12-31')
... })
>>>
>>> # Extract training data
>>> X_train, y_train, w_train = dataset.split('train').to_numpy()
Training:
>>> from alpha_lab.cta_1d import train_model, TrainConfig
>>>
>>> config = TrainConfig(
... dt_range=['2020-01-01', '2023-12-31'],
... feature_sets=['alpha158'],
... normalization='dual'
... )
>>> model, metrics = train_model(config, output_dir='results/exp01')
Backtesting:
>>> from alpha_lab.cta_1d import run_backtest, BacktestConfig
>>>
>>> config = BacktestConfig(
... model_path='results/exp01/model.json',
... dt_range=['2023-01-01', '2023-12-31'],
... feature_sets=['alpha158']
... )
>>> results = run_backtest(config)
"""
# Re-export all public APIs from src submodules
from .src import (
CTA1DLoader,
get_blend_weights,
describe_blend_config,
BLEND_CONFIGS,
)
try:
from .src import train_model, TrainConfig
from .src import run_backtest, BacktestConfig
__all__ = [
'CTA1DLoader',
'get_blend_weights',
'describe_blend_config',
'BLEND_CONFIGS',
'train_model',
'TrainConfig',
'run_backtest',
'BacktestConfig',
]
except ImportError:
# xgboost or sklearn not installed
__all__ = [
'CTA1DLoader',
'get_blend_weights',
'describe_blend_config',
'BLEND_CONFIGS',
]