3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant (聚宽) 平台上,处理动态日期和查询函数用法是非常基础且重要的技能。针对您的问题,以下是详细的解答:
在量化策略的回测或模拟交易中,您不能使用硬编码的日期(如 '2017-01-04'),也不能简单地使用 Python 的 datetime.date.today()(因为回测时“今天”是指回测到达的那个历史日期)。
您需要使用聚宽提供的全局上下文对象 context 来获取动态的逻辑时间:
context.current_dt(返回 datetime.datetime 对象)或 context.current_dt.strftime('%Y-%m-%d')(返回字符串)。context.previous_date(返回 datetime.date 对象)。代码示例:
from jqlib.technical_analysis import *
def handle_data(context, data):
security_list1 = ['000001.XSHE']
# 1. 使用“今天”(当前回测/模拟的逻辑日期)
today_str = context.current_dt.strftime('%Y-%m-%d')
BIAS11, BIAS12, BIAS13 = BIAS(security_list1, check_date=today_str, N1=6, N2=12, N3=24)
# 2. 使用“昨天”(前一个交易日)
yesterday = context.previous_date
BIAS11_y, BIAS12_y, BIAS13_y = BIAS(security_list1, check_date=yesterday, N1=6, N2=12, N3=24)
log.info("今天的BIAS11:", BIAS11)
log.info("昨天的BIAS11:", BIAS11_y)
JoinQuant 提供了类似于 MATLAB doc 的查询方式,主要有以下两种途径:
? 快捷查询(最推荐)如果您在聚宽的 Jupyter Notebook 研究环境中,可以直接在函数名后面加上问号 ? 并运行,系统会弹出该函数的详细 Docstring(文档字符串),包括公式、输入参数、输出格式等。
操作示例:
在研究环境的 Cell 中输入并运行:
from jqlib.technical_analysis import *
BIAS?
输出结果示例:
Signature: BIAS(security_list, check_date, N1=6, N2=12, N3=24)
Docstring:
计算公式:
BIAS=(收盘价-收盘价的N日简单平均)/收盘价的N日简单平均*100
输入:
security_list:股票列表
check_date:要查询数据的日期
N1:统计的天数 N1
N2:统计的天数 N2
N3:统计的天数 N3
输出:
乖离率的值。
输出结果类型:
字典(dict):键(key)为股票代码,值(value)为数据。
聚宽官网顶部导航栏有 “API文档” 专区。这是最全面、最权威的参考手册。文档按照功能模块(如:策略设置、数据获取、交易函数、技术分析指标等)进行了详细分类,并附带了大量的代码示例。
Ctrl + F 或 Cmd + F)直接搜索函数名(如 BIAS),快速定位到该函数的参数说明和返回值解释。context.current_dt 和 context.previous_date。函数名? 查阅,或直接翻阅官网 API 文档。