In realen Transaktionen müssen wir manchmal die Transaktionsergebnisse des Roboters an WeChat, E-Mail, SMS usw. senden, um den Handelsstatus des FMZ Quant-Roboters rechtzeitig zu erfahren. Es gibt jedoch täglich Hunderte verschiedener Arten von Informationen, die ihn für diese Informationen unempfindlich machen, was zu einem Versagen der rechtzeitigen Sammlung wichtiger Informationen führt. Daher implementiert dieser Artikel die Push-Nachricht des Roboters, indem er die Dingding-Gruppenoberfläche anruft.
Der Dingding-Gruppenroboter ist eine erweiterte Erweiterungsfunktion. Solange es ein Dingding-Konto gibt, können Sie ihn verwenden. Er kann die Informationen von Drittanbietern in die Dingding-Gruppe zusammenfassen, um eine automatische Informationssynchronisierung zu erreichen. Er unterstützt den benutzerdefinierten Zugriff auf das Webhook-Protokoll und sammelt die Erinnerung, Warnung und andere Informationen in die Dingding-Gruppe über den FMZ Quant-Roboter. Drei Nachrichtenformate und fünf Nachrichtenarten werden unterstützt: Text, Link und Markdown. Die gleiche Nachricht kann auch an mehrere Dingding-Gruppen gleichzeitig gesendet werden. Siehe offiziellen Link:https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup
Jeder angepasste Roboter, der in der Dingding-Gruppe erstellt wurde, erzeugt eine einzigartige Hook-Adresse, die als WebHook-Adresse bezeichnet wird. Die Dingding-Gruppe erhält eine Nachricht, indem sie eine Nachricht an die WebHook-Adresse drückt. Nehmen wir zum Beispiel die PC-Version von Dingding. Klicken Sie zunächst auf das
Klicken Sie auf den Avatar, wählen Sie Robot Management aus, wählen Sie dann Custom aus und klicken Sie auf Add.
Wenn es nur zur Erinnerung oder Alarmierung verwendet wird, wählen Sie das benutzerdefinierte Schlüsselwort aus. Das Schlüsselwort, das wir hier definieren, ist
Nachdem wir die Webhook-Adresse erhalten haben, können wir die Informationen an die Dingding-Gruppe senden, indem wir eine HTTP-POST-Anfrage an die Adresse in der FMZ Quant-Strategie senden.
import requests
import json
from datetime import datetime, timedelta, timezone
# Output information to Dingding group
def msg(text):
token ="0303627a118e739e628bcde104e19cf5463f61a4a127e4f2376e6a8aa1156ef1"
headers = {'Content-Type': 'application/json;charset=utf-8'} # Request header
api_url = f"https://oapi.dingtalk.com/robot/send?access_token={token}"
json_text = {
"msgtype": "text", # Message type
"text": {
"content": text
}
}
# Send and print messages
Log(requests.post(api_url, json.dumps(json_text), headers=headers).content)
# Test functions
def onTick():
arr = ['BTC', 'ETH', 'XRP', 'BCH', 'LTC'] # Mainstream digital currencies
# Get the time of East Zone 8
bj_dt = str(datetime.now().astimezone(timezone(timedelta(hours=8))))
bj_dt = bj_dt.split('.')[0] # Time of processing
text = f'{bj_dt}\n' # Define information content
for i in arr: # Loop mainstream digital currency array
exchange.IO("currency", f"{i}_USDT") # Switch trading pairs
ticker = exchange.GetTicker().Last # Get the latest price
if i == 'LTC':
full = ' :'
else:
full = ':'
text = text + f"{i}/USDT{full}${ticker}\n" # Processing information content
msg(text) # Call msg function to output information
# Strategy entrance
def main():
while True: # Enter infinite loop
onTick() # Execute onTick function
Sleep(1000 * 60) # Sleep for one minute
Wenn ein benutzerdefinierter Roboter Informationen synchronisiert, kann er die Mobiltelefonnummer auf @ mehrere Mitglieder in der Gruppe setzen. Wenn das Gruppenmitglied die Nachricht erhält, wird eine @ Nachricht Erinnerung angezeigt. Die Erinnerung wird auch dann benachrichtigt, wenn die No Disturb Session eingestellt ist.
# Output information to Dingding group
def msg(text):
token = "0303627a118e739e628bcde104e19cf5463f61a4a127e4f2376e6a8aa1156ef1"
headers = {'Content-Type': 'application/json;charset=utf-8'} # Request header
api_url = f"https://oapi.dingtalk.com/robot/send?access_token={token}"
json_text = {
"msgtype": "text", # Message type
"text": {
"content": text
},
"at": {
"atMobiles": [
"16666666666", # Phone number of the @
"18888888888" # Phone number of the @
],
"isAtAll": False # Not @ Everyone
}
}
# Send and print messages
Log(requests.post(api_url, json.dumps(json_text), headers=headers).content)
In dem obigen Code haben wir einen Fall geschrieben, um den Preis der Mainstream-Digitalwährung jede Minute zu erhalten und diese Informationen an die Dingding-Gruppe zu schicken: