3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在聚宽(JoinQuant)的模拟交易中,可以使用 send_message 函数向绑定的微信发送自定义消息。
以下是实现该功能的具体步骤和代码示例。
send_message API:在策略代码中调用此函数。这个示例策略会在每天收盘后(15:30),获取当前的总资产和累计收益率,并发送到你的微信。
# -*- coding: utf-8 -*-
def initialize(context):
# 开启真实价格模式(模拟盘建议开启)
set_option('use_real_price', True)
# 设定每天收盘后 15:30 执行发送消息的函数
run_daily(send_daily_report, '15:30')
def send_daily_report(context):
# 获取账户总资产
total_value = context.portfolio.total_value
# 获取累计收益率 (小数形式,如 0.05 代表 5%)
returns = context.portfolio.returns
# 获取可用资金
cash = context.portfolio.available_cash
# 格式化消息内容
# 注意:消息内容不能包含回车和换行符,长度不能超过200个字符
msg = "【收盘播报】总资产:%.2f, 可用现金:%.2f, 累计收益:%.2f%%" % (
total_value,
cash,
returns * 100
)
# 发送消息
# send_message 返回 True 表示发送成功,False 表示失败
ret = send_message(msg)
if ret:
log.info("微信消息发送成功: " + msg)
else:
log.warn("微信消息发送失败")
# 必须实现的空函数,保持策略结构完整
def handle_data(context, data):
pass
\r)和换行(\n)**等特殊字符,否则会导致发送失败。send_message 只能在 聚宽官网的实时运行模拟交易 中使用。Q: 为什么我在回测中看不到微信消息?
A: send_message 函数仅在**模拟交易(实盘模拟)**中生效,回测环境下该函数会被系统忽略,不会触发发送动作。
Q: 发送的消息可以换行吗?
A: 不可以。根据API限制,自定义消息不能包含回车或换行符,否则会发送失败。建议使用逗号或空格分隔不同指标。
Q: 每天可以发送多少条自定义消息?
A: 默认情况下,每个账号每天最多发送 5 条自定义消息。如果策略交易频繁,建议仅在收盘后汇总发送,而不是每笔交易都发送自定义消息(每笔交易的系统下单通知是自动发送的,不占用这5条额度)。