En las transacciones reales, para conocer el estado de negociación del robot FMZ Quant a tiempo, a veces necesitamos enviar los resultados de las transacciones ejecutadas por el robot a WeChat, correo electrónico, SMS, etc. Sin embargo, hay cientos de tipos diferentes de información todos los días, lo que lo hace insensible a esta información, lo que lleva al fracaso de la recopilación oportuna de información importante.
El robot de grupo de Dingding es una función de extensión avanzada. Siempre y cuando haya una cuenta de Dingding, puede usarlo. Puede agregar la información de terceros en el grupo de Dingding para lograr la sincronización automática de la información. Soporta el acceso personalizado del protocolo Webhook, y agrega el recordatorio, la alerta y otra información en el grupo de Dingding a través del robot FMZ Quant. Se admiten tres formatos de mensaje y cinco tipos de mensaje: texto, enlace y reducción de marca. Consulte el enlace oficial:https://ding-doc.dingtalk.com/doc#/serverapi2/ye8tup
Cada robot personalizado creado en el grupo Dingding generará una dirección de gancho única, que se llama dirección WebHook. El grupo Dingding recibirá un mensaje al enviar un mensaje a la dirección WebHook. Tomemos la versión para PC de Dingding como ejemplo. Primero, haga clic en el signo
Haga clic en el avatar, seleccione Gestión de robots, luego seleccione Personalización y haga clic en Agregar.
Si solo se utiliza para recordatorios o alertas, seleccione la palabra clave definida por el usuario. La palabra clave que definimos aquí es
Después de obtener la dirección Webhook, podemos enviar la información al grupo Dingding enviando una solicitud HTTP POST a la dirección en la estrategia FMZ Quant.
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
Cuando un robot personalizado sincroniza información, puede establecer el número de teléfono móvil en @ varios miembros del grupo. Cuando el miembro del grupo recibe el mensaje, habrá un recordatorio de mensaje @. El recordatorio aún se notificará incluso si se establece la sesión de No molestar.
# 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)
En el código anterior, escribimos un caso para obtener el precio de la moneda digital principal cada minuto y enviar esta información al grupo Dingding: