3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant(聚宽)平台编写量化策略时,将股票池、策略参数或配置项保存在“研究”根目录下的 JSON 文件中,可以实现策略代码与数据的解耦,提高代码的灵活性与可维护性。
read_file(path)path(字符串),相对路径,相对于私有空间根目录。注意:无法直接读取本地电脑上的文件。需先将 JSON 文件上传到官网“研究”环境的根目录或相关子目录下。
在 JoinQuant “研究”根目录下新建文件 HS300.stocks.json,内容如下:
[
"000001.XSHE",
"000002.XSHE",
"600000.XSHG",
"600519.XSHG"
]
使用 read_file 配合标准库 json 模块中的 json.loads 进行解析:
# 导入聚宽函数库与 json 模块
import json
import jqdata
def initialize(context):
# 开启动态复权模式
set_option('use_real_price', True)
# 设置基准
set_benchmark('000300.XSHG')
# 1. 读取研究根目录下的 JSON 文件
json_content = read_file('HS300.stocks.json')
# 2. 解析 JSON 数据为 Python 对象(列表)
g.stocks = json.loads(json_content)
log.info("成功加载股票池配置文件,股票列表: %s" % g.stocks)
# 3. 设置每日定时运行函数
run_daily(market_open, time='every_bar')
def market_open(context):
# 使用读取到的股票池执行交易逻辑
for stock in g.stocks:
current_data = get_current_data()
if not current_data[stock].paused:
log.info("正在检查股票: %s, 最新价: %s" % (stock, current_data[stock].last_price))
read_file 返回的内容可直接通过 json.loads(content) 解析。json.loads(content.decode('utf-8'))。'HS300.stocks.json',若位于子目录 config 下则传入 'config/HS300.stocks.json'。initialize 中将解析出的数据存入全局变量 g(例如 g.stocks),以便在模拟盘休眠重启后自动恢复。