mirror of
https://github.com/microsoft/qlib.git
synced 2026-06-06 05:51:17 +08:00
* init commit * change the version number * rich the docs&fix cache docs * update index readme * Modify cache class name * Modify sharpe to information_ratio * Modify Group- to Group * add the description of graphical results & fix the backtest docs * fix docs in details * update docs * Update introduction.rst * Update README.md * Update introduction.rst * Update introduction.rst * Update introduction.rst * Update installation.rst * Update installation.rst * Update initialization.rst * Update getdata.rst * Update integration.rst * Update initialization.rst * Update getdata.rst * Update estimator.rst Modify some typos. * Update README.md Modify the typos. * Update initialization.rst * Update data.rst * Update report.rst * Update estimator.rst * Update cumulative_return.py * Update model.rst * Update rank_label.py * Update cumulative_return.py * Update strategy.rst * Update getdata.rst * Update backtest.rst * Update integration.rst * Update getdata.rst * Update introduction.rst * Update introduction.rst * Update README.md * Update report.rst * Update integration.rst Fix typos * Update installation.rst Fix typos * Update getdata.rst * Update initialization.rst Fix typos. * add quick start docs&fix detials * fix estimator docs & fix strategy docs * fix the cahce in data.rst * update documents * Fix Corr && Rsquare * fix data retrival example to csi300 & fix a data bug * fix filter bug * Fix data collector * Modift model args * add the log & fix README.md\quick.rst * add enviroment depend & add intoduction of qlib-server online mode * fix image center fomat & set log_only of docs is True * fix README.md format * update data preparation & readme logo image * get_data support version * Modify analysis names * Modify analysis graph * update report.rst & data.rst * commmit estimator for merge * minimal requirements * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update READEME.md * Update READEME.md * update estimator * Fix doc urls * fix get_data.py docstring * update test_get_data.py * Upate docs * Upate docs * Upate docs Co-authored-by: bxdd <bxddream@gmail.com> Co-authored-by: zhupr <zhu.pengrong@foxmail.com> Co-authored-by: Wendi Li <wendili.academic@qq.com> Co-authored-by: Dingsu Wang <dingsu.wang@gmail.com> Co-authored-by: bxdd <45119470+bxdd@users.noreply.github.com> Co-authored-by: cslwqxx <cslwqxx@users.noreply.github.com>
168 lines
5.0 KiB
Python
168 lines
5.0 KiB
Python
# Copyright (c) Microsoft Corporation.
|
|
# Licensed under the MIT License.
|
|
|
|
|
|
# REGION CONST
|
|
REG_CN = "cn"
|
|
REG_US = "US"
|
|
|
|
_default_config = {
|
|
# data provider config
|
|
"calendar_provider": "LocalCalendarProvider",
|
|
"instrument_provider": "LocalInstrumentProvider",
|
|
"feature_provider": "LocalFeatureProvider",
|
|
"expression_provider": "LocalExpressionProvider",
|
|
"dataset_provider": "LocalDatasetProvider",
|
|
"provider": "LocalProvider",
|
|
# config it in qlib.init()
|
|
"provider_uri": "",
|
|
# cache
|
|
"expression_cache": None,
|
|
"dataset_cache": None,
|
|
"calendar_cache": None,
|
|
# for simple dataset cache
|
|
"local_cache_path": None,
|
|
"kernels": 16,
|
|
# How many tasks belong to one process. Recommend 1 for high-frequency data and None for daily data.
|
|
"maxtasksperchild": None,
|
|
"default_disk_cache": 1, # 0:skip/1:use
|
|
"disable_disk_cache": False, # disable disk cache; if High-frequency data generally disable_disk_cache=True
|
|
"mem_cache_size_limit": 500,
|
|
# memory cache expire second, only in used 'DatasetURICache' and 'client D.calendar'
|
|
# default 1 hour
|
|
"mem_cache_expire": 60 * 60,
|
|
# memory cache space limit, default 5GB, only in used client
|
|
"mem_cache_space_limit": 1024 * 1024 * 1024 * 5,
|
|
# cache dir name
|
|
"dataset_cache_dir_name": "dataset_cache",
|
|
"features_cache_dir_name": "features_cache",
|
|
# redis
|
|
# in order to use cache
|
|
"redis_host": "127.0.0.1",
|
|
"redis_port": 6379,
|
|
"redis_task_db": 1,
|
|
# This value can be reset via qlib.init
|
|
"logging_level": "INFO",
|
|
# Global configuration of qlib log
|
|
# logging_level can control the logging level more finely
|
|
"logging_config": {
|
|
"version": 1,
|
|
"formatters": {
|
|
"logger_format": {
|
|
"format": "[%(process)s:%(threadName)s](%(asctime)s) %(levelname)s - %(name)s - [%(filename)s:%(lineno)d] - %(message)s"
|
|
}
|
|
},
|
|
"filters": {
|
|
"field_not_found": {
|
|
"()": "qlib.log.LogFilter",
|
|
"param": [".*?WARN: data not found for.*?"],
|
|
}
|
|
},
|
|
"handlers": {
|
|
"console": {
|
|
"class": "logging.StreamHandler",
|
|
"level": "DEBUG",
|
|
"formatter": "logger_format",
|
|
"filters": ["field_not_found"],
|
|
}
|
|
},
|
|
"loggers": {"qlib": {"level": "DEBUG", "handlers": ["console"]}},
|
|
},
|
|
}
|
|
|
|
_default_server_config = {
|
|
# data provider config
|
|
"calendar_provider": "LocalCalendarProvider",
|
|
"instrument_provider": "LocalInstrumentProvider",
|
|
"feature_provider": "LocalFeatureProvider",
|
|
"expression_provider": "LocalExpressionProvider",
|
|
"dataset_provider": "LocalDatasetProvider",
|
|
"provider": "LocalProvider",
|
|
# config it in qlib.init()
|
|
"provider_uri": "",
|
|
# redis
|
|
"redis_host": "127.0.0.1",
|
|
"redis_port": 6379,
|
|
"redis_task_db": 1,
|
|
"kernels": 64,
|
|
# cache
|
|
"expression_cache": "DiskExpressionCache",
|
|
"dataset_cache": "DiskDatasetCache",
|
|
}
|
|
|
|
_default_client_config = {
|
|
# data provider config
|
|
"calendar_provider": "LocalCalendarProvider",
|
|
"instrument_provider": "LocalInstrumentProvider",
|
|
"feature_provider": "LocalFeatureProvider",
|
|
"expression_provider": "LocalExpressionProvider",
|
|
"dataset_provider": "LocalDatasetProvider",
|
|
"provider": "LocalProvider",
|
|
# config it in user's own code
|
|
"provider_uri": "~/.qlib/qlib_data/cn_data",
|
|
# cache
|
|
# Using parameter 'remote' to announce the client is using server_cache, and the writing access will be disabled.
|
|
"expression_cache": "DiskExpressionCache",
|
|
"dataset_cache": "DiskDatasetCache",
|
|
"calendar_cache": None,
|
|
# client config
|
|
"kernels": 16,
|
|
"mount_path": "~/.qlib/qlib_data/cn_data",
|
|
"auto_mount": False, # The nfs is already mounted on our server[auto_mount: False].
|
|
# The nfs should be auto-mounted by qlib on other
|
|
# serversS(such as PAI) [auto_mount:True]
|
|
"timeout": 100,
|
|
"logging_level": "INFO",
|
|
"region": REG_CN,
|
|
}
|
|
|
|
|
|
_default_region_config = {
|
|
REG_CN: {
|
|
"trade_unit": 100,
|
|
"limit_threshold": 0.1,
|
|
"deal_price": "vwap",
|
|
},
|
|
REG_US: {
|
|
"trade_unit": 1,
|
|
"limit_threshold": None,
|
|
"deal_price": "close",
|
|
},
|
|
}
|
|
|
|
|
|
class Config:
|
|
def __getitem__(self, key):
|
|
return _default_config[key]
|
|
|
|
def __getattr__(self, attr):
|
|
try:
|
|
return _default_config[attr]
|
|
except KeyError:
|
|
return AttributeError(f"No such {attr} in _default_config")
|
|
|
|
def __setitem__(self, key, value):
|
|
_default_config[key] = value
|
|
|
|
def __setattr__(self, attr, value):
|
|
_default_config[attr] = value
|
|
|
|
def __contains__(self, item):
|
|
return item in _default_config
|
|
|
|
def __getstate__(self):
|
|
return _default_config
|
|
|
|
def __setstate__(self, state):
|
|
_default_config.update(state)
|
|
|
|
def __str__(self):
|
|
return str(_default_config)
|
|
|
|
def __repr__(self):
|
|
return str(_default_config)
|
|
|
|
|
|
# global config
|
|
C = Config()
|