Trong các giao dịch thực tế, để biết tình trạng giao dịch của robot FMZ Quant trong thời gian, đôi khi chúng ta cần gửi kết quả giao dịch được thực hiện bởi robot đến WeChat, email, SMS, v.v. Tuy nhiên, có hàng trăm loại thông tin khác nhau mỗi ngày, làm cho nó không nhạy cảm với thông tin này, dẫn đến sự thất bại trong việc thu thập kịp thời thông tin quan trọng. Do đó, bài viết này thực hiện tin nhắn đẩy robot bằng cách gọi giao diện nhóm Dingding.
Robot nhóm Dingding là một chức năng mở rộng tiên tiến. Miễn là có tài khoản Dingding, bạn có thể sử dụng nó. Nó có thể tổng hợp thông tin của bên thứ ba vào nhóm Dingding để đạt được đồng bộ hóa thông tin tự động. Nó hỗ trợ truy cập tùy chỉnh của giao thức Webhook, và tổng hợp lời nhắc, cảnh báo và thông tin khác vào nhóm Dingding thông qua robot FMZ Quant. Ba định dạng tin nhắn và năm loại tin nhắn được hỗ trợ: văn bản, liên kết và giảm giá. Xem liên kết chính thức:https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup
Mỗi robot tùy chỉnh được tạo trong nhóm Dingding sẽ tạo ra một địa chỉ hook độc đáo, được gọi là địa chỉ WebHook. Nhóm Dingding sẽ nhận được một tin nhắn bằng cách đẩy một tin nhắn đến địa chỉ WebHook. Hãy lấy phiên bản PC của Dingding làm ví dụ. Đầu tiên, bấm dấu
Nhấp vào avatar, chọn Quản lý Robot, sau đó chọn Tùy chỉnh, và nhấp vào Thêm. Tên robot tùy chỉnh:
Nếu nó chỉ được sử dụng để nhắc nhở hoặc cảnh báo, hãy chọn từ khóa được xác định bởi người dùng. Từ khóa chúng tôi xác định ở đây là
Sau khi lấy địa chỉ Webhook, chúng ta có thể gửi thông tin đến nhóm Dingding bằng cách gửi yêu cầu HTTP POST đến địa chỉ trong chiến lược FMZ Quant. Lưu ý rằng mã hóa tập hợp ký tự phải được đặt thành UTF-8 khi yêu cầu POST được bắt đầu.
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
Khi một robot tùy chỉnh đồng bộ hóa thông tin, nó có thể đặt số điện thoại di động thành @ nhiều thành viên trong nhóm. Khi thành viên nhóm nhận tin nhắn, sẽ có một lời nhắc tin nhắn @. Lời nhắc vẫn sẽ được thông báo ngay cả khi No Disturb Session được đặt.
# 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)
Trong mã trên, chúng tôi đã viết một trường hợp để có được giá của tiền kỹ thuật số chính thống mỗi một phút và đẩy thông tin này đến nhóm Dingding: