3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 JoinQuant(聚宽)平台中,send_message 函数在模拟交易(即你提到的“永久交易位”)中是绝对有用且专门为此设计的。根据官方 API 文档,send_message 是“聚宽官网实时运行模拟交易专用API”。
如果你一直没有收到消息,通常不是因为该函数被禁用,而是由于以下几个常见限制或配置问题导致的。请逐一排查:
send_message)每个账号每天最多只能发送 5 条。如果超出这个数量,消息会发送失败(如果需要更多条数,可以使用平台积分兑换)。send_message 的 5 条限制是分开计算的。\r)和换行(\n)**等特殊字符,否则会导致发送失败。send_message 只能在聚宽官网的实时运行模拟交易中使用。如果你是在“回测”环境中运行,该函数会被直接忽略,且没有任何报错提示。正如你猜测的,这也可能与运行时间或代码逻辑有关:
send_message 的函数是否真的被执行了。例如,如果你把它放在 handle_data 中,但加上了严格的买入/卖出条件,可能条件一直未满足。run_daily(func, time='xx:xx'),请确保时间设置正确,并且模拟交易在那个时间点处于正常运行状态。建议你写一个最简单的测试策略,挂在模拟交易中测试一下:
def initialize(context):
# 设置在每天开盘前 09:00 运行测试函数
run_daily(test_msg, time='09:00')
def test_msg(context):
# 打印日志,确认函数确实被执行了
log.info("准备发送微信消息...")
# 发送最简单的纯文本,不带任何换行符
success = send_message("这是一条来自模拟交易的测试消息")
# send_message 会返回 True 或 False,可以通过日志查看是否发送成功
if success:
log.info("消息发送成功!")
else:
log.error("消息发送失败,请检查条数限制或字符格式!")
总结:send_message 在模拟盘中完全可用。请重点检查是否包含换行符、是否超过每日 5 条限制以及微信绑定是否有效。同时,利用 send_message 的返回值(True/False)和 log.info 可以在模拟交易的日志中快速定位问题。