0

我是一个寻求帮助的完整的菜鸟程序员。我刚刚学习 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 的工作方式,或者这只是我的代码中的一个明显错误。任何帮助,将不胜感激。理想情况下,我将能够每隔几秒钟启动一次命令,每次都会发送我更新的期货头寸的消息!

4

0 回答 0