量化策略——准备5 策略调参配置文件读写、日志的保存

文章目录

  • 配置文件的读写
    • 配置程序读写示例程序
  • 日志记录

配置文件的读写

一般咱们做项目用yaml写配置,但是回测的时候起始很多时候是通过控制代码来控制传递的参数,而不是通过文件作为中介来控制参数,所以我们这里的配置思路是:

  1. 配置是一个字典格式
  2. 通过npy文件来控制具体的配置,调参程序写入npy文件
  3. 回测程序依次读取npy文件,作为不同的参数

这样就会方便很多,同时回测与参数生成分离开,方便更复杂的框架

配置程序读写示例程序

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")

这样就可以实现,不论怎么运行当前文件,都会实现日志的写入

你可能感兴趣的:(python)