将程序信息推送到手机端
TqSdk 并不提供专门的服务器来推送消息,但是你可以通过其他 SDK 来做到这个效果,在发生成交或者条件满足时,进行消息推送,以钉钉为例:
from datetime import datetime, time, timedelta
import requests
from json import dumps
from tqsdk import TqApi, TqAuth, TargetPosTask
def send_msg(content):
"""钉钉消息提醒模块"""
webhook = "设置自己的钉钉 webhook"
# 钉钉安全规则将 天勤量化 设为关键字
msg = {"msgtype": "text",
"text": {"content": "{}\n{}\n".format("天勤量化\n" + content,
datetime.now().strftime("%Y-%m-%d %H:%M:%S"))}, }
headers = {"content-type": "application/json;charset=utf-8"}
body = dumps(msg)
requests.post(webhook, data=body, headers=headers)
print(content)
api = TqApi(auth=TqAuth("快期账户", "账户密码"))
quote = api.get_quote("SHFE.rb2109")
target_pos = TargetPosTask(api, "SHFE.rb2110")
send_msg("策略开始运行")
a = 0
while True:
api.wait_update()
# 通过本地变量 a 来避免多次发送钉钉消息触发流控
if quote.last_price > 5110 and a == 0:
send_msg("行情满足条件,开多头5手")
target_pos.set_target_volume(5)
a = 1
具体说明,请参考 钉钉操作手册