内联 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...