Все очень и очень просто!
Достаточно создать бота в телеге, написать примитивный луа скрипт и запустить его.
Про ботов в телеге здесь
https://core.telegram.org/bots
в гугле куча инфы и примеров, как чего куда и зачем.
--
--СКРИПТ Niki для smart-lab.ru 260321 ревизия
---------------------------------------
-- Флаг для поддержания работы функции main
is_run=true
fut_limit_old =0
fut_limit_max =0
kgo_old =0.5
function main( ... ) -- чудотворная функция внутри которой все работает
--"r": режим чтения (по умолчанию);
--"w": режим записи;
--"a": режим добавления;
--"r+": режим обновления, все предыдущие данные сохраняются;
--"w+": режим обновления, все предыдущие данные стираются;
--"a+": режим добавления и обновления, предыдущие данные сохраняются, запись разрешена только в конец файла. b бинарные файлы
-- Пытается открыть файл в режиме "чтения/записи"
f = io.open(getScriptPath().."\\Limits.txt","a");
-- Если файл не существует
if f == nil then
-- Создает файл в режиме "записи"
f = io.open(getScriptPath().."\\Limits.txt","w");
-- Закрывает файл
f:close();
-- Открывает уже существующий файл в режиме "чтения/записи"
f = io.open(getScriptPath().."\\Limits.txt","a");
end;
while is_run do
sleep(1000) -- 1000 = 1 секунда --волшебная пауза в работе скрипта
if getFuturesLimit("A111", "A111111", 0, "SUR") ~= nil then -- защита от пустых таблиц -- впишите ваши данные из Квика
-- %c - дата и время (по-умолчанию) (пример, 03/22/15 22:28:11)
-- %x - дата (пример, 09/16/98)
-- %X - время (пример, 23:48:10)
seconds = os.time(); -- в seconds будет значение 1427052491
date1 = os.date("%x",seconds); -- %c - дата (по-умолчанию) (пример, 03/22/15 22:28:11)
time1 = os.date("%X",seconds); -- %c - время (по-умолчанию) (пример, 03/22/15 22:28:11)
--[[
liquidity_coef --NUMBER Коэффициент ликвидности
cbp_prev_limit --NUMBER Предыдущий лимит открытых позиций на спот-рынке»
cbplimit --NUMBER Лимит открытых позиций
cbplused --NUMBER Текущие чистые позиции
cbplplanned --NUMBER Плановые чистые позиции
varmargin --NUMBER Вариационная маржа
accruedint --NUMBER Накопленный доход
cbplused_for_orders --NUMBER Текущие чистые позиции (под заявки)
cbplused_for_positions --NUMBER Текущие чистые позиции (под открытые позиции)
options_premium --NUMBER Премия по опционам
ts_comission --NUMBER Биржевые сборы
kgo --NUMBER Коэффициент клиентского гарантийного обеспечения
currcode --STRING Валюта, в которой транслируется ограничение
real_varmargin --NUMBER Реально начисленная в ходе клиринга вариационная маржа. Отображается с точностью до 2 двух знаков. При этом в поле «varmargin» транслируется вариационная маржа, рассчитанная с учетом установленных границ изменения цены
--]]
fut_limit = getFuturesLimit("A111", "A111111", 0, "SUR").cbplused_for_positions -- NUMBER Текущие чистые позиции (под открытые позиции) -- впишите ваши данные из Квика
varmargin = getFuturesLimit("A111", "A111111", 0, "SUR").varmargin -- впишите ваши данные из Квика
accruedint = getFuturesLimit("A111", "A111111", 0, "SUR").accruedint -- впишите ваши данные из Квика
ts_comission = getFuturesLimit("A111", "A111111", 0, "SUR").ts_comission -- впишите ваши данные из Квика
kgo = getFuturesLimit("A111", "A111111", 0, "SUR").kgo -- впишите ваши данные из Квика
profit = varmargin + accruedint;
--if math.abs(fut_limit-fut_limit_old) > 10000 then -- каждые 10000 рублей изменения ГО, слишком частый файл печати
if math.abs(fut_limit-fut_limit_old) > 100000 then -- каждые 100000 рублей изменения ГО, настраиваем под себя.
open_lim = getFuturesLimit("A111", "A111111", 0, "SUR").cbplimit --NUMBER Лимит открытых позиций
f:write( tostring(date1).." "..tostring(time1).." ".."ГО: "..tostring(fut_limit).." ".."Профит: "..tostring(profit).." ".."Комис: "..tostring(ts_comission).." ".. "КГО: "..tostring(kgo).." Lim: "..tostring(open_lim).. "\n"); -- "\n" признак конца строки
--f:write( tostring(date1).. " " ..tostring(time1).. " " .. "BID: " .. tostring(res_trans) .. " " .. "ASK: " .. tostring(MXU8ask_vol) .. "\n"); -- "\n" признак конца строки
-- Сохраняет изменения в файле на диск
f:flush();
fut_limit_old = fut_limit;
end
if fut_limit_max == 0 then
fut_limit_max = fut_limit;
end
if ( math.abs(fut_limit-fut_limit_max) > 1000000 and fut_limit>0 ) then -- настраиваем под себя
message( tostring(fut_limit) ) ----сообщение в Квик--
--message( tostring(time1) )
---------------------------------------- отправляем сообщение в Телеграмм--
pos_free = getFuturesLimit("A111", "A111111", 0, "SUR").cbplplanned --NUMBER ГО свободных денег от позы без пониженного ГО
open_lim = getFuturesLimit("A111", "A111111", 0, "SUR").cbplimit --NUMBER Лимит открытых позиций
tg_message = tostring(open_lim).." ГО:"..tostring(fut_limit).." Поза:"..tostring(open_lim-pos_free)
os.execute('curl "https://api.telegram.org/botВашиДанныеИзТелеграмм&text= + '..tg_message..' " ') -- отправляем в телегу, через винду. Вписать ваши данные из Телеграмм
----------------------------------------
-- Пример строки https://api.telegram.org/bot365877050:AAE232342348HIqifnyGSsw89U_4TK3Y/sendMessage?chat_id=202560128&text= + Привет Квик!
----------------------------------------
fut_limit_max = fut_limit;
end
if math.abs(kgo-kgo_old) > 0 then
---------------------------------------- отправляем сообщение в телеграмм
tg_message = tostring(kgo).." Внимание! Изменился коэффициент КГО"
os.execute('curl "https://api.telegram.org/botВашиДанныеИзТелеграмм&text= + '..tg_message..' " ') -- отправляем в телегу, через винду. Вписать ваши данные из Телеграмм
----------------------------------------
-- Пример строки https://api.telegram.org/bot365877050:AAE232342348HIqifnyGSsw89U_4TK3Y/sendMessage?chat_id=202560128&text= + Привет Квик!
----------------------------------------
kgo_old = kgo;
end
end
end
f:close(); -- закрываем файл печати.
end
-- Остановка скрипта из Квика
function OnStop(stop_flag)
is_run=false
end
Код сохранить в обычном текстовом редакторе, назвать его 1111.lua помесить в папочку Quik\Lua script
Код необходимо отредактировать, подставить ваши данные из Квика, и ваши данные из телеграмм бота.
Немножко поднастроить, и можно запускать -))
Код простой, и вполне может являться пособием для начинающих луа писателей.
Первая часть кода, создает файлик, получает и сохраняет данные в файлик, в папке со скриптом.
Вторая часть кода, отправляет месседжи в Квик, всплывает окошко квика, и в телегу.
Удачи вам, начинающие луа писатели.
Тимофею, файлик скрипта прикрепить не шмогла! Нетути кнопачкав таких!
новичком…
Используете? Зачем?
Только напишите еще, что необходимо установить curl на рабочее место.
Плюс постоянно будет мелькать окно терминала, при выполнении команды.
Взаимодейтствовать с внешним миром можно и так github.com/nick-nh/qlua/tree/master/telegramQuik