Кто как решил вопрос уведомления о сделках?
Пользователь
Сообщений: 645
Регистрация: 30.01.2015
Роботорговец
При отправке первого письма из скрипта с gmail.com приходит ответ "closed".
Второе и последующие письма отправленные, из того же скрипта (причём, первым может быть и mail.ru) уходят нормально.
Кто-нибудь сталкивался с таким? Как лечить?
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: 645
Регистрация: 30.01.2015
Роботорговец
Как изменить timeout?
Пробовал и так:
и так:
Код local sock = socket.tcp()
sock:settimeout(100)
Изменений никаких.
Надо делать так, как надо. А как не надо - делать не надо.
Пользователь
Сообщений: 237
Регистрация: 28.03.2016
Цитата gihar написал: Всем привет! Если кто ещё думает о получении уведомлений от квика о сделках, то вот моё решение - это мессенджер Телеграм. По-моему, удобно - клиент есть для всех мобильных платформ, бесплатно. В общем сплошные плюсы. Принцип такой: Создаем бота в телеграм: https://core.telegram.org/bots В квике запускаем lua-скрипт, который от имени бота шлёт сообщения о заявках и/или сделках, на указанный в настройках скрипта аккаунта в Телеграм. Вот ссылка на то, как я это реализовал для себя: https://github.com/gihar/quik-telegram-bot.git
Добрый день!
Наткнулся на Ваше сообщение с реализацией отправки сообщений из QUIK в Telegram. Попробовал повторить, но никак не получается.
Насколько я понял, требуется еще файл lua-bot-api.lua, потом Ваши dll.
Дальше потребовался файл ssl.lua, далее https.lua и multipart-post.lua, потом json.lua
Но все равно в результате ругается на:
"error loading module 'ssl.core' from file '.\ssl.dll':
Не найдена указанная процедура."
Я пробовал подставлять другие dll бОльшего размера из других источников, где они представлены в скомпилированном виде, но итог 1.
Не могли бы подсказать, какой минимальный перечень файлов необходим, чтобы запустить именно Ваш скрипт из QUIK и где их взять?
Пользователь
Сообщений: 39
Регистрация: 18.09.2016
У меня данная штука запустилась. Накидал все везде)))
Данным ботом пользуюсь уже с месяц. В файле telegram_settings.lua нужно ввести настройки своего бота. Сам
бот тут . Там есть что еще допиливать...
Пользователь
Сообщений: 237
Регистрация: 28.03.2016
Цитата Алексей Ч написал: У меня данная штука запустилась. Накидал все везде))) Данным ботом пользуюсь уже с месяц. В файле telegram_settings.lua нужно ввести настройки своего бота. Сам бот тут . Там есть что еще допиливать...
Тоже запустился, не успел прочитать Ваше сообщение, но за архив спасибо. В результате тоже накидал dll и lua файлы. Другим людям конечно весь этот пакет не дашь, особенно смущают lua файлы.
С Вашим ботом проблем ка раз нет, там все прозрачно и легко адаптируется по собственные нужды, основная проблема у меня была в принципе его запустить в качестве теста.
У Вас тоже запускается скрипт больше минуты (после запуска реагирует на команды быстро, выходит тоже быстро, тормозит только запуск)?
Пользователь
Сообщений: 39
Регистрация: 18.09.2016
да, верно, запуск тормозит, но не минуты. Обычно 10-15 секунд. Может быть кто подскажет, почему.
Пользователь
Сообщений: 237
Регистрация: 28.03.2016
Цитата Алексей Ч написал: да, верно, запуск тормозит, но не минуты. Обычно 10-15 секунд. Может быть кто подскажет, почему.
Картинка бота Пока потенциал нравится, он получается интерактивный, можно придумать кучу вариаций использования кроме сообщения о заявках, сделках и т.д.
Пользователь
Сообщений: 39
Регистрация: 18.09.2016
Перезалил
бота сюда .
В telegram_settings.lua нужно указать настройки бота. В квике запустить telegram.lua
Помимо сообщений о сделках и заявках, сообщает так же по запросам:
Fut - деньги на фортс (вариационная маржа)
Pos - позиции на фортс
Usd - текущие котировки USDRUB_TOM
Eur - соответственно EURRUB_TOM
Если написать код фьюча, то можно получить его котировку.
Любые другие символы сообщают, подключен ли квик или нет. В файл log.txt пишет номер последнего запроса
Пользователь
Сообщений: 203
Регистрация: 04.09.2016
Цитата Sergey Gorokhov написал: gSPath = getScriptPath() package.cpath = gSPath .."\\?.dll;" .. package.cpath package.path = gSPath .."\\?.lua;" .. gSPath .. "\\?.luac;" ..package.path local smtp = require("socket.smtp") Settings = { host = "smtp.TEST.ru", port = 25, from = "TEST@TEST.ru ", to = "TEST@TEST.ru ", subject = "Qlua notification", cc = "TEST@TEST.ru ", user = "TEST", password = "123", rcpt = { " " } } function smtp_send(settings, msg) local mesgt = { headers = { to = settings.to, cc = settings.cc, subject = settings.subject or "Qlua Notification", ["content-type"] = 'text/plain; charset="windows-1251"' }, body = msg } r, e = smtp.send{ from = settings.from, rcpt = settings.rcpt, source = smtp.message(mesgt), server = settings.host, port = settings.port, user = settings.user, password = settings.password } end smtp_send(Settings, "TEST")
Разъясните пожалуйста, куда и что конкретно копировать .
архив какой конкретно по ссылке ? luasocket-2.0.2-lua-5.1.2-Win32-vc8.zip\socket - ZIP archive, unpacked size 275 170 bytes - пойдет?
В архиве файлы и подпапки. Нужно распаковывать все или нужна только core.dll? В корневую директорию или в папку с скриптами?
Пользователь
Сообщений: 203
Регистрация: 04.09.2016
После копирования всех папок и корневых файлов в директорию со скриптами запуск кода привод к следующей ошибке C:\QuikFinam\scripts\mail.lua:48: attempt to call global 'mtp_send' (a nil value)
QUIK clients support
Сообщений: 3879
Регистрация: 23.01.2015
Цитата Иван Ру написал: attempt to call global 'mtp_send' (a nil value)
В моем примере нет такой функции 'mtp_send'
Пользователь
Сообщений: 203
Регистрация: 04.09.2016
Цитата Sergey Gorokhov написал:Цитата Иван Ру написал: attempt to call global 'mtp_send' (a nil value)
В моем примере нет такой функции 'mtp_send'
Да, извиняюсь, это моя ошибка была при вызове функции.
function main ()
smtp_send(settings, "123")
end
Теперь, после добавления нужной буквы получаю такое сообщение
error loading module 'mime.core' from file 'C:\QuikFinam\scripts\core.dll':
QUIK clients support
Сообщений: 3879
Регистрация: 23.01.2015
Иван Ру ,
К сожалению затруднимся назвать причины. т.к. core.dll не является нашей разработкой.
Попробуйте другую версию, или поискать ответ в интернете.
Пользователь
Сообщений: 163
Регистрация: 16.01.2017
Пользователь
Сообщений: 203
Регистрация: 04.09.2016
попробовал. Увы. Та же ошибка.
Пользователь
Сообщений: 75
Регистрация: 27.05.2015
Иван Ру , а вы хотите смс-оповещения организовать?
Пользователь
Сообщений: 163
Регистрация: 16.01.2017
Цитата Иван Ру написал: Теперь, после добавления нужной буквы получаю такое сообщение error loading module 'mime.core' from file 'C:\QuikFinam\scripts\core.dll':
Попробуйте, все же сделать так, как описано в приведенной мною выше ссылке (а именно взять готовые пакеты "LuaSocket 3.0-rc1" (core), "LuaSec 0.6" (ssl) из ZeroBraneStudio).
Ваша ошибка вызвана тем, что core.dll пакета (модуля) socet не находит core.dll пакета (модуля) mime.
Пользователь
Сообщений: 163
Регистрация: 16.01.2017
"LuaSec 0.6" (ssl) нужен, только если Вы собираетесь использовать https протокол
Пользователь
Сообщений: 203
Регистрация: 04.09.2016
Пользователь
Сообщений: 2
Регистрация: 11.10.2017
Помогите пжл, ошибка при запуске : [img]data:image/png;base64,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[/img]
Пользователь
Сообщений: 2
Регистрация: 11.10.2017
похоже картинки не пихаются, помоги пжл решить проблемку - при старте робота - ошибка error loading module 'ssl.https' from file 'D:\QuikFinam\ssl.dll': Не найден указанный модуль. Хотя dll там валяется, да и вообще во всех папках валяется
Пользователь
Сообщений: 163
Регистрация: 16.01.2017
Эта ошибка вызвана тем, что ssl.dll пытается запустить lua модуль https.lua, который lua-интерпретатор не смог найти. https.lua должен находится в папке ssl, которая, в свою очередь, должна находится в одной из папок, перечисленных в package.path. Поскольку в package.path, как правило, прописан, в числе прочих, путь: .\?.lua, то https.lua можно поместить в папку D:\QuikFinam\ssl\ В свою очередь, ssl.dll должен "валяться" не где попало, а в одной из папок, перечисленных в package.сpath
Пользователь
Сообщений: 7
Регистрация: 17.10.2017
Всем привет!
Пытаюь прикрутить отправку уведомления из квика с помощью POST через https.
Разложил либы luasec , которые взял в этой же ветке, lua скрипты. При попытке запустить lua скрипт, quik зависает намертво.
Система Windows 2008 Server, 64 бит. Подскажите, как можно найти причину зависания.
Скрипт такой:
Код gSPath = getScriptPath()
package.cpath = gSPath .."\\?.dll;" .. package.cpath
package.path = gSPath .."\\?.lua;" .. gSPath .. "\\?.luac;" ..package.path
function OnInit()
ocal https = require ('ssl.https')
local ltn12 = require('ltn12')
local payload = '{"text": "Hello from quik!"}'
local response_body = { }
local res, code, response_headers, status = https.request
{
url = "https://....",
method = "POST",
headers =
{
["content-length"] = string.len(payload),
["Content-Type"] = "application/json",
},
source = ltn12.source.string(payload),
sink = ltn12.sink.table(response_body)
}
....
end
Пробовал взять либы/скрипты из телеграм бота - тоже не помогло. Продублировал все структуру файлов/папок в папку с моим роботом, а также в папку с квиком. Копию файла lua5.1.dll (lua51.dll) сделал, помешать не должно.
Пользователь
Сообщений: 75
Регистрация: 27.05.2015
Сергей , а на десктопной Windows пробовали? Тоже виснет?
Пользователь
Сообщений: 7
Регистрация: 17.10.2017
win 7 pro 32bit Проблема один в один...
Пользователь
Сообщений: 7
Регистрация: 17.10.2017
Проверил работу luasocket, метод http.request работает. Что-то не так с либами luasec, видимо. Нужно ли ставить lua for windows?
Пользователь
Сообщений: 117
Регистрация: 28.09.2017
Сергей. Выкидывай алерт в текстовик и оттуда внешней тулзой забирай куда хочешь. Оставь бедный квик в покое, он и так потеет в муках из последних сил и у него причин повеситься и без этого до ... и более :)
Пользователь
Сообщений: 117
Регистрация: 28.09.2017
Цитата Сергей написал: ocal https = require ('ssl.https')
:)
Пользователь
Сообщений: 7
Регистрация: 17.10.2017
rinat ,
Я это увидел, символ пропал при вставке в форум. Не нашел как редактировать сообщение. Проблема не в этом. Судя по алертам, зависает где-то внутри https.request . Копаю дальше
Пользователь
Сообщений: 75
Регистрация: 27.05.2015
Сергей , если будет полезно, могу выложить (попозже) все собранные мной файлы для работы с инетом в QUIK.
На Win 7 64 bit работает, на сервер ещё не закидывал, но запросы проходят с 10-15 секундной задержкой (об этой проблеме писали выше), и побороть эту задержку никак не получается...
Пользователь
Сообщений: 7
Регистрация: 17.10.2017
Александр Волфовиц ,
Было бы полезно. У меня проблема с протоколом ssl . В luasec 0.6a, который используется в телеграм боте по умолчанию используется tlsv1 . Я взял https.lua из luasec 0.7 alpha, там по умолчанию протокол выставлен в значение 'any' В результате, зависания нет, но в response code пришло "invalid protocol (any)" . Похоже, что-то не так с либами OpenSSL. Нужно ли что-то дополнительно ставить в систему для обеспечения работы luasec?
Пользователь
Сообщений: 163
Регистрация: 16.01.2017
Сергей ,
Ваш скрипт случайно не переопределяет глобальную переменную TIMEOUT модуля socket\http.lua на слишком большое значение?
Пользователь
Сообщений: 7
Регистрация: 17.10.2017
Алексей ,
Нет, таймаут в скрипте не переопределен. Попробую поиграться с ним. Может в таймауте дело... Хотя вряд ли. Сервер, куда я пытаюсь достучаться, отвечает без задержек
Пользователь
Сообщений: 163
Регистрация: 16.01.2017
Цитата Сергей написал: Я взял https.lua из luasec 0.7 alpha.. Похоже, что-то не так с либами OpenSSL. Нужно ли что-то дополнительно ставить в систему для обеспечения работы luasec?
1. Вы взяли просто https.lua от 0.7a или в паре с соответствующей версией ssl.lua и ssl.dll?
2. Попробуйте в ssl.lua в local function wrap закомментарить строку -- sock:setfd(core.SOCKET_INVALID)
Пользователь
Сообщений: 163
Регистрация: 16.01.2017
И попробуйте сначала все это запустить из под какого-нибудь lua интерпретатора, а когда устойчиво заработает, перенесите в quik.
Пользователь
Сообщений: 7
Регистрация: 17.10.2017
Алексей ,
В итоге, я все почистил и попробовал заново. Скачал ZeroBraneStudio , взял оттуда нужнве мне модули с сохранением структуры папок. Получилось следующее:
Код C:\MY-ROBOT
│ libeay32.dll
│ ltn12.lua
│ mime.lua
│ robot.lua
│ socket.lua
│ ssl.lua
│ ssleay32.dll
│
├───clibs
│ │ lexlpeg.dll
│ │ lfs.dll
│ │ liblua.dll
│ │ libzlib.dll
│ │ lpeg.dll
│ │ ssl.dll
│ │ winapi.dll
│ │ wx.dll
│ │
│ │
│ ├───mime
│ │ core.dll
│ │
│ └───socket
│ core.dll
│
├───socket
│ ftp.lua
│ headers.lua
│ http.lua
│ smtp.lua
│ tp.lua
│ url.lua
│
└───ssl
https.lua
В квике нет ничего, что связано с моим скриптом. Добавлена лишь копия lua5.1.dll с именем lua51.dll
Проблема все та же. Я решил добавил множество дебаг сообщений в https.lua, socket.lua и ssl.lua для диагностики. Также решил подождать и не спешить убивать квик . Оказалось, что через минут 5 скрипт оживает и не падает. При этом запрос не отсылается на сервер. По отладочным сообщениям обнаружил, что зависание происходит в функции newcontext при вызове context.create . Как я понял, это вызывается соответствующий метод в ssl.dll . В итоге написал цикл, который осуществляет 10 попыток отослать запрос на сервер. После первой итерации, которая не доходила до сервера, запросы стали успешно отсылаться. Как я понял, задержка с ssl сокетом есть у всех, но не такая большая? Получается этот запрос выполняется в основном потоке и блокирует все остальные операции ? Поскольку с http запросами такой задержки нет, для себя решил написать простенький прокси, который принимает http запрос от квика, сразу же отвечает статусом OK(HTTP 200), чтобы не блокировать квик и избежать проблем в случае, если удаленный хост будет тормозить с ответом . После ответа квику он в фоне переправляет запрос куда нужно и как нужно.
Пользователь
Сообщений: 163
Регистрация: 16.01.2017
Вы пробовали запустить Ваш скрипт из ZeroBraneStudio, ничего не меняя в path и cpath? Если такая же задержка с первым пакетом, то дело, скорее всего, в почтовом сервере, к которому Вы обращаетесь, или в Вашем скрипте. Пройдитесь отладчиком ZeroBraneStudio по вашему скрипту. Если же при запуске из ZeroBraneStudio задержка не превышает 5 секунд, а из quik - 5 минут, то Вы, возможно, неправильно собрали модули. 1. Рекомендую libeay32.dll, ssleay32.dll и lua51.dll (копия quik-овского lua5.1.dll !!! Ни в коем случае не из ZeroBraneStudio) переложить в папку quik (где лежит info.exe). 2. Из clibs нужны только ssl.dll, mime\core.dll и socket\core.dll. 2. Уберите с компьютера всё дублирование вышеперечисленных Вами файлов (оставить только "родной" пакет ZeroBraneStudio и копии необходимых из него файлов в Вашем C:\MY-ROBOT). 3. Проверьте значения path и cpath при запуске из quik и убедитесь, что скрипт никаким способом не сможет наткнуться на какой-либо другой lua51.dll, кроме положенного в папку quik. У меня, обычно, задержка и из ZeroBraneStudio, и из quik составляет не более 0,5 сек при обращении к серверу телеграмм (а это тот же POST пакет). P.S. OnInit выполняется в основном потоке quik. Зависли в OnInit - завис quik. main выполнятся в выделенном потоке. Зависание в нем никак не тормозит работу quik.
Пользователь
Сообщений: 75
Регистрация: 27.05.2015
Файлы Вот, попробуйте. Распакуйте все файлы и папки в папку c QUIK, где лежит info.exe.
Никаких дополнительных библиотек, по идее, не нужно, всё должно быть в этой сборке.
Пользователь
Сообщений: 203
Регистрация: 04.09.2016
Пользователь
Сообщений: 4
Регистрация: 08.11.2017
Цитата Василий написал: похоже картинки не пихаются, помоги пжл решить проблемку - при старте робота - ошибка error loading module 'ssl.https' from file 'D:\QuikFinam\ssl.dll': Не найден указанный модуль. Хотя dll там валяется, да и вообще во всех папках валяется
Добрый день, у меня похожая проблема покажите куда какие файлы положить, пытался эксперементировать но успеха не принесло
Пользователь
Сообщений: 4
Регистрация: 08.11.2017
Цитата Алексей Ч написал: похоже картинки не пихаются, помоги пжл решить проблемку - при старте робота - ошибка error loading module 'ssl.https' from file 'D:\QuikFinam\ssl.dll': Не найден указанный модуль. Хотя dll там валяется, да и вообще во всех папках валяется
сделал все по этой инструкции
Пользователь
Сообщений: 4
Регистрация: 08.11.2017
error loading module 'ssl.https' from file 'C:\QUIK\quik-telegram-bot2\ssl.dll': Не найден указанный модуль
Пользователь
Сообщений: 163
Регистрация: 16.01.2017
Ответ уже был:
Цитата Алексей написал: Эта ошибка вызвана тем, что ssl.dll пытается запустить lua модуль https.lua, который lua-интерпретатор не смог найти. https.lua должен находится в папке ssl, которая, в свою очередь, должна находится в одной из папок, перечисленных в package.path. Поскольку в package.path, как правило, прописан, в числе прочих, путь: .\?.lua, то https.lua можно поместить в папку D:\QuikFinam\ssl\ В свою очередь, ssl.dll должен "валяться" не где попало, а в одной из папок, перечисленных в package.сpath
Пользователь
Сообщений: 4
Регистрация: 08.11.2017
Бота удалось запустить, но он почему то нестабильно работает, зависает
Пользователь
Сообщений: 9
Регистрация: 03.03.2018
Здравствуйте! Предлагаю потестить @QUIKMessagingBot
Пользователь
Сообщений: 9
Регистрация: 03.03.2018
Не сочтите за флуд, теперь еще и общение Viber-QUIK-Viber. Предлагаю потестировать, если получиться открыть
viber://pa?chatURI=quikmessenger
Пользователь
Сообщений: 299
Регистрация: 03.12.2017
я новичек и тока учусь
Цитата Николай Бехтерев написал: Есть какая-нибудь возможность кидать хотя бы е-мейлы через скрипт?
вот простой скрипт отправки писем на php
Код <?php
mail("E-mail получателя", "Загаловок", "Текст письма \n 1-ая строчка \n 2-ая строчка \n 3-ая строчка");
?>
останется только запустить php из lua, а это кажется возможно. Можно попробовать поискать решение в этом направлении.
Пользователь
Сообщений: 299
Регистрация: 03.12.2017
я новичек и тока учусь
А вот еще пришла идея, более простая и надежно работающая. По отправке сообщений. В терминале Квика можно написать скрипт, как только совершилась сделка в определенный каталог класть текстовый файл коротенький, сделка такая , ид такой и тд. А параллельно на копмпе развернуть локальный сервер с минимумом кода на php, который раз в 10 минут проверяет эту папку, есть там что нибудь или нет, если есть отправляет файлик по указанному адресу и после отправки эту папку чистит, вот и все. Просто и надежно. Локальный веб сервер может запускаться сам при загрузке компа и тихонько крутиться в цикле с таймером задержки нужной вам лично. Бесплатный веб сервер можно взять
тут или
тут (настраивать ничего не нужно, там все само надежно работает, код на php для отправки почты простой, разобраться не трудно)
Пользователь
Сообщений: 163
Регистрация: 16.01.2017
Пользователи Telegram-Bot! Поделитесь соображениями, как обойти предстоящую блокировку. Использую lua-telegram-bot API от @cosmonawt. Но он, в свою очередь, опирается на "LuaSec 0.6 - Copyright © 2009-2016 PUC-Rio" (для поддержки https SSL), который, похоже, не поддерживает работу через proxy. Либо я не понимаю, как прописать настройки для работы через proxy. Подскажите, как в новых условиях поддерживать работу Telegram-Bot?
Пользователь
Сообщений: 105
Регистрация: 31.03.2016
Цитата Алексей написал: Пользователи Telegram-Bot! Поделитесь соображениями, как обойти предстоящую блокировку.
http://forum.quik.ru/messages/forum10/message30523/topic3589/ Планирую использовать vpn на машине с ботом, а не прокси в api.