Um über den Handelsstatus des Inventor Quant Robot bei realen Transaktionen auf dem Laufenden zu bleiben, müssen wir die vom Roboter ausgeführten Handelsergebnisse manchmal an WeChat, E-Mail, Textnachrichten usw. senden. Da die Menschen jedoch täglich Hunderte von Nachrichten unterschiedlicher Art erhalten, reagieren sie nicht mehr sensibel auf diese Nachrichten, was dazu führt, dass sie wichtige Nachrichten nicht rechtzeitig abrufen können. Daher implementiert dieser Artikel den Roboter-Nachrichten-Push durch Aufrufen der DingTalk-Gruppenschnittstelle.
Der DingTalk-Gruppenroboter ist eine erweiterte Funktion. Solange Sie ein DingTalk-Konto haben, können Sie ihn verwenden. Es kann Informationen von Drittanbietern in der DingTalk-Gruppe aggregieren und eine automatische Synchronisierung von Informationen realisieren. Es unterstützt den benutzerdefinierten Zugriff auf das Webhook-Protokoll und aggregiert Erinnerungen, Alarme und andere Informationen über den Inventor Quantitative Robot in der DingTalk-Gruppe. Unterstützt drei Nachrichtenformate: Text, Link und Markdown sowie fünf Nachrichtentypen. Die gleiche Nachricht kann auch gleichzeitig an mehrere DingTalk-Gruppen gesendet werden. Siehe den offiziellen Link: https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup
Schritt 1: Erstellen Sie eine DingTalk-Gruppe
Jedes Mal, wenn ein benutzerdefinierter Roboter in einer DingTalk-Gruppe erstellt wird, wird eine eindeutige Hook-Adresse generiert, die wir als WebHook-Adresse bezeichnen. Durch das Senden von Nachrichten an die WebHook-Adresse empfängt die DingTalk-Gruppe die Nachrichten. Nehmen wir als Beispiel DingTalk auf dem PC. Klicken Sie zunächst auf das „+“-Zeichen in der oberen linken Ecke, um einen Gruppenchat zu starten. Wenn Sie nur selbst Nachrichten erhalten möchten, können Sie nach dem Zufallsprinzip zwei Personen hinzufügen und sie dann rauswerfen. Füllen Sie im Gruppennamen: „FMZ Robot“ und wählen Sie „Normal“ als Gruppentyp. Einfach gruppieren.
Schritt 2: DingTalk-Gruppenroboter hinzufügen
Klicken Sie auf Ihren Avatar, wählen Sie „Roboterverwaltung“, wählen Sie dann „Anpassen“ und klicken Sie auf „Hinzufügen“. Passen Sie den Roboternamen „FMZ“ an und fügen Sie ihn der gerade erstellten DingTalk-Gruppe hinzu. Der Roboter unterstützt drei Sicherheitseinstellungen:
Nachdem wir die Webhook-Adresse erhalten haben, können wir in der Inventor Quantitative Strategy eine HTTP-POST-Anfrage an diese Adresse initiieren, um Informationen an diese DingTalk-Gruppe zu senden. Zu beachten ist, dass beim Auslösen eines POST Requests die Zeichensatzkodierung auf UTF-8 eingestellt sein muss.
import requests
import json
from datetime import datetime, timedelta, timezone
# 向钉钉群输出信息
def msg(text):
token ="0303627a118e739e628bcde104e19cf5463f61a4a127e4f2376e6a8aa1156ef1"
headers = {'Content-Type': 'application/json;charset=utf-8'} # 请求头
api_url = f"https://oapi.dingtalk.com/robot/send?access_token={token}"
json_text = {
"msgtype": "text", # 信息格式
"text": {
"content": text
}
}
# 发送并打印信息
Log(requests.post(api_url, json.dumps(json_text), headers=headers).content)
# 测试函数
def onTick():
arr = ['BTC', 'ETH', 'XRP', 'BCH', 'LTC'] # 主流数字货币
# 获取东八区时间
bj_dt = str(datetime.now().astimezone(timezone(timedelta(hours=8))))
bj_dt = bj_dt.split('.')[0] # 处理时间
text = f'{bj_dt}\n' # 定义信息内容
for i in arr: # 循环主流数字货币数组
exchange.IO("currency", f"{i}_USDT") # 切换交易对
ticker = exchange.GetTicker().Last # 获取最新价格
if i == 'LTC':
full = ' :'
else:
full = ':'
text = text + f"{i}/USDT{full}${ticker}\n" # 处理信息内容
msg(text) # 调用msg函数,输出信息
# 策略入口
def main():
while True: # 进入无线循环
onTick() # 执行onTick函数
Sleep(1000 * 60) # 休眠一分钟
Wenn Sie Roboter zum Synchronisieren von Informationen anpassen, können Sie die Mobiltelefonnummern mehrerer Gruppenmitglieder festlegen. Wenn die Mitglieder der @-Gruppe die Nachricht erhalten, werden sie durch die @-Nachricht daran erinnert, auch wenn die „Nicht stören“-Sitzung eingestellt ist.
# 向钉钉群输出信息
def msg(text):
token = "0303627a118e739e628bcde104e19cf5463f61a4a127e4f2376e6a8aa1156ef1"
headers = {'Content-Type': 'application/json;charset=utf-8'} # 请求头
api_url = f"https://oapi.dingtalk.com/robot/send?access_token={token}"
json_text = {
"msgtype": "text", # 信息格式
"text": {
"content": text
},
"at": {
"atMobiles": [
"16666666666", # 被@的手机号码
"18888888888" # 被@的手机号码
],
"isAtAll": False # 不@所有人
}
}
# 发送并打印信息
Log(requests.post(api_url, json.dumps(json_text), headers=headers).content)
Im obigen Code haben wir einen Fall geschrieben, um jede Minute die Preise der gängigen digitalen Währungen abzurufen und diese Informationen an die DingTalk-Gruppe zu senden: