一般咱们做项目用yaml写配置,但是回测的时候起始很多时候是通过控制代码来控制传递的参数,而不是通过文件作为中介来控制参数,所以我们这里的配置思路是:
这样就会方便很多,同时回测与参数生成分离开,方便更复杂的框架
import numpy as np
# 写入配置
config = {
"start_dt": "2020-01-01",
"end_dt": "2022-01-01",
} # 假如这是个需要滚动测算的配置文件
np.save('strategy_config.npy', config) # 注意带上后缀名
# 读取配置
load_config = np.load("strategy_config.npy", allow_pickle=True).item()
print(load_config)
日志的存放目录相对固定,但是由于python被其他文件调用的时候,当前的工作路径会变,因此为了确保能够正常写入文件,使用当前文件相对于存放日志的目录的位置来定位具体的路径:
parent = os.path.dirname(os.path.realpath(__file__)) # 当前文件的所在路径
log_file_path = os.path.join(parent, "../logs/my_log_{time:YYYY-MM-DD}.log")
假设../logs
是存放日志的路径,my_log_{time:YYYY-MM-DD}.log
是文件名,我们使用loguru来控制日志的记录
from loguru import logger
import os
# 确定目录
parent = os.path.dirname(os.path.realpath(__file__))
log_file_path = os.path.join(parent, "../logs/my_log_{time:YYYY-MM-DD}.log")
logger.add(log_file_path, encoding="utf-8", retention="10 day", enqueue=True, mode='a')
logger.debug("DEBUG")
这样就可以实现,不论怎么运行当前文件,都会实现日志的写入