mirror of
https://github.com/microsoft/qlib.git
synced 2026-06-06 05:51:17 +08:00
* Intermediate version * Fix yaml template & Successfully run rolling * Be compatible with benchmark * Get same results with previous linear model * Black formatting * Update black * Update the placeholder mechanism * Update CI * Update CI * Upgrade Black * Fix CI and simplify code * Fix CI * Move the data processing caching mechanism into utils. * Adjusting DDG-DA * Organize import
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
# Copyright (c) Microsoft Corporation.
|
|
# Licensed under the MIT License.
|
|
from pathlib import Path
|
|
from typing import Union
|
|
|
|
import fire
|
|
|
|
from qlib import auto_init
|
|
from qlib.contrib.rolling.ddgda import DDGDA
|
|
from qlib.tests.data import GetData
|
|
|
|
DIRNAME = Path(__file__).absolute().resolve().parent
|
|
BENCH_DIR = DIRNAME.parent / "baseline"
|
|
|
|
|
|
class DDGDABench(DDGDA):
|
|
# The config in the README.md
|
|
CONF_LIST = [
|
|
BENCH_DIR / "workflow_config_linear_Alpha158.yaml",
|
|
BENCH_DIR / "workflow_config_lightgbm_Alpha158.yaml",
|
|
]
|
|
|
|
DEFAULT_CONF = CONF_LIST[0] # Linear by default due to efficiency
|
|
|
|
def __init__(self, conf_path: Union[str, Path] = DEFAULT_CONF, horizon=20, **kwargs) -> None:
|
|
# This code is for being compatible with the previous old code
|
|
conf_path = Path(conf_path)
|
|
super().__init__(conf_path=conf_path, horizon=horizon, working_dir=DIRNAME, **kwargs)
|
|
|
|
for f in self.CONF_LIST:
|
|
if conf_path.samefile(f):
|
|
break
|
|
else:
|
|
self.logger.warning("Model type is not in the benchmark!")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
GetData().qlib_data(exists_skip=True)
|
|
auto_init()
|
|
fire.Fire(DDGDABench)
|