Всех приветствую !
Не складывалось как-то последнее время надежно получать сообщения от помощника на QLUA под Quik.
То telegram работает нестабильно, то LUA Socket отвалился (не знаю, может это связано с обновлением Quik и появлении целочисленного типа данных).
MAX так вообще позволяет юзать чат-боты только юрлицам и ИП.
И задумал я, немного погуглив, поиспользовать Email-оповещения на мобильное приложение Яндекс.Почта, используя связку PHP + PHPmailer.
Оказалось, за пару дней получился вполне приличный результат.
Если устраивает средняя задержка оповещения от 3 до 45 секунд (бывает меньше, бывает намного больше — от почты зависит), можно посмотреть на этот вариант.
Мне он зашел тем, что не надо под новую версию Quik пересобирать никакие библиотеки, не нужен никакой почтовый сервер с необходимостью его настраивать.
Код на QLUA занял ровно 1 страницу.
А теперь — как это приготовить.
Во-первых, идем на сайт php.net, скачиваем ZIP-архив PHP, соответствующий ОС.
www.php.net/downloads.php?os=windows&osvariant=windows-downloads&version=default&multiversion=Y
Всем привет!
Недавно совместно написали Lua-скрипт для QUIK, который шлёт уведомления в Telegrеm.
Решили начать с простого — мониторинг роллирования, когда объём перетекает в следующий контракт,
приходит уведомление с подсказкой нового тикера, чтобы больше не заморачиваться, что забыл про экспирацию.
Всё получилось, работает, бесплатный вариант можно скачать с сайта.
Потом появился скрипт уведомления в Telegrеm — открытие позиции (тикер, направление, количество лотов, цена),
добавление к позиции, частичное закрытие — закрытые лоты и P&L по ним. Полное закрытие позиции — итоговый P&L.
Ну и то, чего давно не хватало — риск-менеджер, задаёшь дневной лимит убытка,
как только суммарный P&L достигает лимита — он сам закрывает позиции, отменяет заявки и
блокирует торговлю до следующего дня.
Trade Journal — Скрипт незаметно работает в фоне и фиксирует каждую вашу сделку, записывает каждое открытие и закрытие позиции в CSV-файл,
считает P&L: сделки, частичные закрытия, развороты. Каждую ночь шлёт сводку дня в Telegram,

require("iuplua")
local interrupted
function OnStop()
interrupted = true
end
--[[
function sleep(n) -- standalone
if n > 0 then
os.execute("ping -n "..
tonumber(n) .." localhost > nul")
end
end
--]]
function main()
local btn1 = iup.button { title = "Show Dialog", }
function btn1:action()
local r = iup.Alarm("", "Main Title doesn't update!", "Exit")
if r == 1 then
interrupted = true
end
end -- btn1:action()
local btn2 = iup.button { title = "Show menu", }
function btn2:action()
local item = iup.item { title = "Exit", }
function item:action()
interrupted = true
end
local menu = iup.menu {
iup.item { title = "Dialog title doesn't update!",
active = "NO", }, item
}:popup(iup.MOUSEPOS, iup.