如何解决内联 Telegram Bot 发送我的开放币安期货头寸,但我的头寸数据在第一个命令启动后没有更新?
我是一个完整的菜鸟程序员,正在寻求帮助。我刚刚学习 Python 大约一个星期了,并且一直专注于 Binance 和 Telegram API。我使用的包是 python-binance 和 pyTelegramBotAPI。 我只是想学习 python 和这两个 API,所以我认为一个有趣的小项目是制作一个机器人,它将我所有的未平仓期货头寸作为短信发送给我:
from binance.client import Client
import telebot
from telebot import types
import config
client = Client(config.API_PUBLIC,config.API_SECRET)
bot = telebot.TeleBot(config.TEL_API)
bot.send_message(chat_id='xxx',text='Bot has successfully started')
def getPositions():
futures_account = client.futures_account()
string_positions = ''
for position in futures_account['positions']:
if float(position['initialMargin']) > 0:
string_positions += str(position['symbol'] + ': ' + position['unrealizedProfit'] + 'USDT\n')
else:
pass
@bot.inline_handler(lambda query: query.query == 'sendPositions')
def sendPositions(inline_query):
futures_positions = types.InlineQueryResultArticle(
id='1',title='sendPositions',input_message_content=types.InputTextMessageContent(str(getPositions()))
)
bot.answer_inline_query(inline_query.id,[futures_positions])
if __name__ == '__main__':
bot.infinity_polling()
这个机器人完全按照我的意愿去做,但只是在我第一次使用命令发送消息时。如果我只是让机器人运行(就像你一样),那么每隔一次我在第一次之后发送命令时,消息总是相同的。如果我不改变我的期货头寸的任何内容(即让它们运行一段时间),那么在第一个命令启动后消息将过期。 我不知道这是 Binance API 的工作方式,还是我的代码中的一个明显错误。任何帮助,将不胜感激。 理想情况下,我能够每隔几秒钟启动一次命令,每次发送我更新的期货头寸的消息!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。