Кто как решил вопрос уведомления о сделках?

Страницы: Пред. 1 2 3 След.
RSS
Кто как решил вопрос уведомления о сделках?
 
Цитата
SDL написал:
Качаем модуль LuaSec:
Проект: https://github.com/brunoos/luasec
Бинарники можно взять тут: http://love2d.org/forums/viewtopic.php?f=5&t=76728. Нужны 2 файла - ssl.dll и ssl.lua.
Использует библиотеки OpenSSL libeay32.dll и ssleay32.dll. Скачать, если нет, и не забыть обеспечить к ним доступ - через окружение (PATH) или можно кинуть в папку с QUIK.
Цитата
vgi написал:
Есть хорошая обёртка для отправки писем lua-sendmail: https://github.com/moteus/lua-sendmail
Ей потребуется luasec, который в уже собранном виде можно взять из ссылки из третьего поста вот такого топика: http://lua.2524044.n2.nabble.com/Luasec-for-Windows-td7671151.html
При отправке первого письма из скрипта с gmail.com приходит ответ "closed".
Второе и последующие письма отправленные, из того же скрипта (причём, первым может быть и mail.ru) уходят нормально.
Кто-нибудь сталкивался с таким? Как лечить?
Надо делать так, как надо. А как не надо - делать не надо.
 
Как изменить timeout?
Пробовал и так:
Код
TIMEOUT = 100
и так:
Код
local sock = socket.tcp()
sock:settimeout(100)
Изменений никаких.
Надо делать так, как надо. А как не надо - делать не надо.
 
Цитата
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 и где их взять?
 
У меня данная штука запустилась. Накидал все везде)))
Данным ботом пользуюсь уже с месяц. В файле telegram_settings.lua нужно ввести настройки своего бота. Сам бот тут. Там есть что еще допиливать...
 
Цитата
Алексей Ч написал:
У меня данная штука запустилась. Накидал все везде)))
Данным ботом пользуюсь уже с месяц. В файле telegram_settings.lua нужно ввести настройки своего бота. Сам  бот тут . Там есть что еще допиливать...
Тоже запустился, не успел прочитать Ваше сообщение, но за архив спасибо. В результате тоже накидал dll и lua файлы. Другим людям конечно весь этот пакет не дашь, особенно смущают lua файлы.
С Вашим ботом проблем ка раз нет, там все прозрачно и легко адаптируется по собственные нужды, основная проблема у меня была в принципе его запустить в качестве теста.

У Вас тоже запускается скрипт больше минуты (после запуска реагирует на команды быстро, выходит тоже быстро, тормозит только запуск)?  
 
да, верно, запуск тормозит, но не минуты. Обычно 10-15 секунд. Может быть кто подскажет, почему.
 
Цитата
Алексей Ч написал:
да, верно, запуск тормозит, но не минуты. Обычно 10-15 секунд. Может быть кто подскажет, почему.
Картинка бота

Пока потенциал нравится, он получается интерактивный, можно придумать кучу вариаций использования кроме сообщения о заявках, сделках и т.д.
 
Перезалил бота сюда.
В telegram_settings.lua нужно указать настройки бота. В квике запустить telegram.lua
Помимо сообщений о сделках и заявках, сообщает так же по запросам:
Fut - деньги на фортс (вариационная маржа)
Pos - позиции на фортс
Usd - текущие котировки USDRUB_TOM
Eur - соответственно EURRUB_TOM
Если написать код фьюча, то можно получить его котировку.
Любые другие символы сообщают, подключен ли квик или нет. В файл log.txt пишет номер последнего запроса
 
Цитата
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? В корневую директорию или в папку с скриптами?
 
После копирования всех папок и корневых файлов в директорию со скриптами запуск кода привод к следующей ошибке
C:\QuikFinam\scripts\mail.lua:48: attempt to call global 'mtp_send' (a nil value)
 
Цитата
Иван Ру написал:
attempt to call global 'mtp_send' (a nil value)


В моем примере нет такой функции 'mtp_send'
 
Цитата
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':
 
Иван Ру,
К сожалению затруднимся назвать причины. т.к. core.dll не является нашей разработкой.
Попробуйте другую версию, или поискать ответ в интернете.
 
Посмотрите в этой теме, может поможет.
https://forum.quik.ru/messages/forum10/message24016/topic1097/#message24016
 
Цитата
Алексей написал:
Посмотрите в этой теме, может поможет.
https://forum.quik.ru/messages/forum10/message24016/topic1097/#message24016
попробовал. Увы. Та же ошибка.  
 
Иван Ру, а вы хотите смс-оповещения организовать?  
 
Цитата
Иван Ру написал:

Теперь, после добавления нужной буквы получаю такое сообщение
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.
 
"LuaSec 0.6" (ssl) нужен, только если Вы собираетесь использовать https протокол
 
Цитата
Александр Волфовиц написал:
Иван Ру  , а вы хотите смс-оповещения организовать?
почтовые
 
Помогите пжл, ошибка при запуске :  

[img]data:image/png;base64,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[/img]
 
похоже картинки не пихаются, помоги пжл решить проблемку - при старте робота - ошибка
error loading module 'ssl.https' from file 'D:\QuikFinam\ssl.dll':
Не найден указанный модуль.

Хотя dll там валяется, да и вообще во всех папках валяется
 
Эта ошибка вызвана тем, что ssl.dll пытается запустить lua модуль https.lua, который lua-интерпретатор не смог найти.
https.lua должен находится в папке ssl, которая, в свою очередь, должна находится в одной из папок, перечисленных в package.path.
Поскольку в package.path, как правило, прописан, в числе прочих, путь: .\?.lua, то https.lua можно поместить в папку D:\QuikFinam\ssl\

В свою очередь, ssl.dll должен "валяться" не где попало, а в одной из папок, перечисленных в package.сpath
 
Всем привет!
Пытаюь прикрутить отправку уведомления из квика с помощью 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) сделал, помешать не должно.
 
Сергей, а на десктопной Windows пробовали? Тоже виснет?
 
win 7 pro 32bit Проблема один в один...
 
Проверил работу luasocket, метод http.request работает. Что-то  не так с либами luasec, видимо. Нужно ли ставить lua for windows?
 
Сергей.
Выкидывай алерт в текстовик и оттуда внешней тулзой забирай куда хочешь.
Оставь бедный квик в покое, он и так потеет в муках из последних сил и у него причин повеситься и без этого до ... и более :)
 
Цитата
Сергей написал:
ocal https = require ('ssl.https')
:)
 
rinat,

Я это увидел, символ пропал при вставке в форум. Не нашел как редактировать сообщение. Проблема не в этом. Судя по алертам, зависает где-то внутри https.request . Копаю дальше
 
Сергей, если будет полезно, могу выложить (попозже) все собранные мной файлы для работы с инетом в QUIK.

На Win 7 64 bit работает, на сервер ещё не закидывал, но запросы проходят с 10-15 секундной задержкой (об этой проблеме писали выше), и побороть эту задержку никак не получается...
 
Александр Волфовиц,

Было бы полезно. У меня проблема с протоколом ssl . В luasec 0.6a, который используется в телеграм боте по умолчанию используется tlsv1 . Я взял https.lua из luasec 0.7 alpha, там по умолчанию протокол выставлен в значение 'any' В результате, зависания нет, но в response code пришло "invalid protocol (any)" . Похоже, что-то не так с либами OpenSSL. Нужно ли что-то дополнительно ставить в систему для обеспечения работы luasec?
 
Сергей,
Ваш скрипт случайно не переопределяет глобальную переменную TIMEOUT модуля socket\http.lua на слишком большое значение?
 
Алексей,
Нет, таймаут в скрипте не переопределен. Попробую поиграться с ним. Может в таймауте дело... Хотя вряд ли. Сервер, куда я пытаюсь достучаться, отвечает без задержек
 
Цитата
Сергей написал:
Я взял 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)
 
И попробуйте сначала все это запустить из под какого-нибудь lua интерпретатора, а когда устойчиво заработает, перенесите в quik.
 
Алексей,
В итоге, я все почистил и попробовал заново. Скачал 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), чтобы не блокировать квик и избежать проблем в случае, если удаленный хост будет тормозить с ответом . После ответа квику  он в фоне переправляет запрос куда  нужно и как нужно.
 
Вы пробовали запустить Ваш скрипт из 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.
 
Файлы

Вот, попробуйте. Распакуйте все файлы и папки в папку c QUIK, где лежит info.exe.

Никаких дополнительных библиотек, по идее, не нужно, всё должно быть в этой сборке.
 
Цитата
Александр Волфовиц написал:
Иван Ру  , а вы хотите смс-оповещения организовать?
Кто ж не хочет :-)
 
Цитата
Василий написал:
похоже картинки не пихаются, помоги пжл решить проблемку - при старте робота - ошибка
error loading module 'ssl.https' from file 'D:\QuikFinam\ssl.dll':
Не найден указанный модуль.

Хотя dll там валяется, да и вообще во всех папках валяется
Добрый день, у меня похожая проблема покажите куда какие файлы положить, пытался эксперементировать но успеха не принесло
 
Цитата
Алексей Ч написал:
похоже картинки не пихаются, помоги пжл решить проблемку - при старте робота - ошибка
error loading module 'ssl.https' from file 'D:\QuikFinam\ssl.dll':
Не найден указанный модуль.

Хотя dll там валяется, да и вообще во всех папках валяется
сделал все по этой инструкции
 
error loading module 'ssl.https' from file 'C:\QUIK\quik-telegram-bot2\ssl.dll':
Не найден указанный модуль
 
Ответ уже был:
Цитата
Алексей написал:
Эта ошибка вызвана тем, что ssl.dll пытается запустить lua модуль https.lua, который lua-интерпретатор не смог найти.
https.lua должен находится в папке ssl, которая, в свою очередь, должна находится в одной из папок, перечисленных в package.path.
Поскольку в package.path, как правило, прописан, в числе прочих, путь: .\?.lua, то https.lua можно поместить в папку D:\QuikFinam\ssl\

В свою очередь, ssl.dll должен "валяться" не где попало, а в одной из папок, перечисленных в package.сpath
 
Бота удалось запустить, но он почему то нестабильно работает, зависает
 
Здравствуйте! Предлагаю потестить @QUIKMessagingBot
 
Не сочтите за флуд, теперь еще и общение Viber-QUIK-Viber. Предлагаю потестировать, если получиться открыть viber://pa?chatURI=quikmessenger
 
Цитата
Николай Бехтерев написал:
Есть какая-нибудь возможность кидать хотя бы е-мейлы через скрипт?
вот простой скрипт отправки писем на php
Код
<?php 
mail("E-mail получателя", "Загаловок", "Текст письма \n 1-ая строчка \n 2-ая строчка \n 3-ая строчка"); 
?>
останется только запустить php из lua, а это кажется возможно. Можно попробовать поискать решение в этом направлении.
человек (не робот)
 
А вот еще пришла идея, более простая и надежно работающая. По отправке сообщений. В терминале Квика можно написать скрипт, как только совершилась сделка в определенный каталог класть текстовый файл коротенький, сделка такая , ид такой и тд. А параллельно на копмпе развернуть локальный сервер с минимумом кода на php, который раз в 10 минут проверяет эту папку, есть там что нибудь или нет, если есть отправляет файлик по указанному адресу и после отправки эту папку чистит, вот и все. Просто и надежно. Локальный веб сервер может запускаться сам при загрузке компа и тихонько крутиться в цикле с таймером задержки нужной вам лично. Бесплатный веб сервер можно взять тут или тут (настраивать ничего не нужно, там все само надежно работает, код на php для отправки почты простой, разобраться не трудно)
человек (не робот)
 
Пользователи Telegram-Bot!

Поделитесь соображениями, как обойти предстоящую блокировку.

Использую lua-telegram-bot API от @cosmonawt.
Но он, в свою очередь, опирается на "LuaSec 0.6 - Copyright © 2009-2016 PUC-Rio" (для поддержки https SSL), который, похоже, не поддерживает работу через proxy. Либо я не понимаю, как прописать настройки для работы через proxy.

Подскажите, как в новых условиях поддерживать работу Telegram-Bot?
 
Цитата
Алексей написал:
Пользователи Telegram-Bot!

Поделитесь соображениями, как обойти предстоящую блокировку.

http://forum.quik.ru/messages/forum10/message30523/topic3589/

Планирую использовать vpn на машине с ботом, а не прокси в api.
Страницы: Пред. 1 2 3 След.
Читают тему
Наверх