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
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',
|
|
]
|