量化策略——准备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")

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆萌的代Ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值