Найти в Дзене
Denis Bazarnov

Как из Квика (Quik) выгрузить данные в Telegram, используя Python

Начну с ответа на вопрос "Зачем ?" Quik - наиболее распространенный в нашей стране торговый терминал. Обычно выгрузка данных из Квика требуется для последующего анализа. В Telegram данные есть смысль отправлять если:

1) Лично Вам требуется оперативно получать информацию о работе Ваших торговых роботов, но у Вас нет возможности постоянно находится за торговым терминалом. Тогда получение данных через телеграмм - очень удобная фишка;

2) Вы хотите, чтобы данные были доступны большой группе лиц.

Начнем с выгрузки из Quik. Если на любой таблице в Квике нажать правой кнопкой мыши то увидим пункты

Первый - для выгрузки в Excel, второй - в базу данных. К сожалению ни первый ни второй нам не подходят. Поэтому я использую скрипт, в котором использую вот такую функцию на языке qlua:

function WriteLog()
logfile = io.output("D:\\log.txt")
logfile:write("test")
logfile:flush()
logfile:close()
end

В моих скриптах эта функция вызывается через определенный временной интервал. В результате выполнения функции в файл log.txt будет записан текст, на данном примере будет записано слово "test"

Ок, показал пример функции, как я выгружаю из Квика в текстовый файл. Теперь осталось все передать в Telegram. Предварительно надо:

  1. Создать свой публичный канал в Телеграмме
  2. Создать своего бота. В результате создания Вы получите API ключ, который сохраняете у себя и никому не показываете
  3. Подписываете своего бота на свой публичный канал

Дальше будет немного магии Python. Для этого Вам нужно установить интерпретатор Python. После чего создаем файл с расширением *.py со следующим содержимым:

import time
import os
import requests
logpath = "D:\log.txt"
fsize = 0
while True:
with open(logpath, "r") as file:
if (fsize != os.path.getsize(logpath)):
content = file.read()
fsize = os.path.getsize(logpath)
content = '<code>'+content+'</code>'
requests.get('https://api.telegram.org/ВАШAPIКЛЮЧ/sendMessage?chat_id=-100117232111&parse_mode=html&text='+content)
print(content)
time.sleep(600)

Вместо слова ВАШAPIКЛЮЧ - как Вы уже догадались, надо вставить API ключ, который получили при регистрации бота, а в поле chat_id указываете id группы, на которую подписан бот.

Как это выглядит у меня, Вы можете посмотреть на моем публичном канале kbs.online

-2