JMoock 发布于2025-04-22
回复 32
浏览 3562
107
#一、首先说明一点,本策略是原主的,我没有改动策略代码逻辑,我只添加了钉钉信息推送功能
> 克隆自聚宽文章:https://www.joinquant.com/post/55088
> 标题:2025清明节福利【偷鸡摸狗跑路】
> 作者:MarioC
#二、如何通过 Requests 向钉钉发送个人信息
要通过 Python 的 requests 库向钉钉发送个人信息,你需要使用钉钉的自定义机器人 Webhook 功能。以下是完整的实现步骤:
##1. 创建钉钉自定义机器人
在钉钉群中点击右上角的设置按钮
选择"智能群助手" → "添加机器人" → "自定义"
设置机器人名称和安全设置(建议使用"加签"方式更安全)
记下 Webhook URL 和加签密钥(如果有)
##2. 使用 Python 发送消息
基本文本消息示例 :
import requests
import json
import time
import hmac
import hashlib
import base64
import urllib.parse
def send_dingtalk_message(webhook, secret, personal_info):
"""
发送个人信息到钉钉机器人
:param webhook: 钉钉机器人Webhook地址
:param secret: 加签密钥(如果没有设置为None)
:param personal_info: 要发送的个人信息字典
"""
# 构造消息内容
message = {
"msgtype": "text",
"text": {
"content": f"个人信息通知:\n{json.dumps(personal_info, indent=2, ensure_ascii=False)}"
},
"at": {
"isAtAll": False # 不@所有人,如果需要@特定人,可以设置atMobiles
}
}
# 如果有加签,计算签名
if secret:
timestamp = str(round(time.time() * 1000))
secret_enc = secret.encode('utf-8')
string_to_sign = f"{timestamp}\n{secret}"
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
# 将签名和时间戳添加到URL
webhook = f"{webhook}×tamp={timestamp}&sign={sign}"
# 发送请求
headers = {'Content-Type': 'application/json'}
response = requests.post(webhook, headers=headers, data=json.dumps(message))
return response.json()
##3. 使用示例
if __name__ == "__main__":
webhook_url = "https://oapi.dingtalk.com/robot/send? access_token=your_access_token"
secret_key = "your_secret_key" # 如果没有加签,设置为None
personal_info = {
"name": "张三",
"age": 30,
"department": "技术部",
"position": "高级工程师",
"contact": "zhangsan@example.com",
"remark": "这是测试个人信息"
}
result = send_dingtalk_message(webhook_url, secret_key, personal_info)
print(result)
##3. 注意事项
钉钉对接口有流量限制,如果是用于回测接收消息完全足够;此外记得在钉钉“关键词”那里加上特定关键词,因为钉钉会通过关键词接收信息,我的关键词是“策略总结报告”
#三、截图样例
###回测推送信息截图和钉钉配置页面




评论
谢谢分享 ,不知道操作,直接复制粘贴嘛?
2025-04-22
@wanling268 如果你会编程,看上面的方法就行了,实现需要做一下修改,不需要克隆。
2025-04-23
点赞,咱们一起为广大股民不被割韭菜而努力
2025-04-23
@JMoock 俺不会 编程哦,麻烦老师详细说说需要修改哪里?谢谢
2025-04-23
@wanling268 你可以克隆代码,把374行的webhook_url变量换成自己的钉钉url地址,然后再把推送函数419行的注释"#"删掉就可以了
2025-04-23
@JMoock 为啥我试了 钉钉群收不到消息
2025-04-24
@小徐 注意设置关键词,它会通过关键词推送的。它是一直发布订阅模式,
2025-04-24
@JMoock 关键词我随便设置成“哈哈”,两个字。你说的通过关键字推送啥意思
2025-04-24
@小徐 在代码内设置好自己的url,然后在设置关键词,关键字设置好注意要保存和发布
2025-04-24
@JMoock 代码里设置好url和加签的那一串密钥了,聚宽代码里还要输入关键词吗?在哪里输入
2025-04-24
@小徐 你设置成'哈哈',那你推送的信息内必须包含'哈哈'才行
2025-04-24
@JMoock 奥,这样呀,我再试试,大佬,不懂再问你,谢谢
2025-04-24
@小徐 简单点说就是两边需要有同样的词汇。例如的关键词设置成“哈哈”,你发送的信息内不包含“哈哈”,它会拒绝推送
2025-04-24
@JMoock "content": f"个人信息通知:\n{json.dumps(personal_info, indent=2, ensure_ascii=False)}\n哈哈"
这样算是发送的信息里有“哈哈”了吧 但是回测时钉钉还收不到消息?
大佬可以加个V吗 xiaoxuboby
2025-04-24
模拟盘收不到,回测的时候可以收到,这是为什么呢?我模拟盘是会员实时的那种
2025-08-25
@zjhh 不应该,检查一下代码是否一致,还有检查一下日志,这玩意很简单
2025-08-25