Блог им. XXM
Узнал, что продается робот на Lua, «Автологин терминала QUIK».
Продается то, что есть в открытом виде на quik2dde.ru
Выкладываю тут:
-- quik_login.lua -- Автологин терминала QUIK -- © http://qui2dde.ru/ -- Версия: 2.0 -- для Quik от версии 7.11.1.5 local w32 = require("w32") -- логин и пароль для терминала QUIK_LOGIN = "Uxxxxxxx" QUIK_PASSW = "yyyyy" function FindLoginWindow() hLoginWnd = w32.FindWindow("", "Идентификация пользователя") if hLoginWnd == 0 then hLoginWnd = w32.FindWindow("", "User identification") end return hLoginWnd end timeout = 1000 -- таймаут между попытками поиска окна логина is_run = true function OnStop() timeout = 1 is_run = false end function main() while is_run do sleep(timeout) if isConnected() == 0 then local hLoginWnd = FindLoginWindow() if hLoginWnd ~= 0 then local n1 = w32.FindWindowEx(hLoginWnd, 0, "", "") local n2 = w32.FindWindowEx(hLoginWnd, n1, "", "") local n3 = w32.FindWindowEx(hLoginWnd, n2, "", "") local n4 = w32.FindWindowEx(hLoginWnd, n3, "", "") w32.SetWindowText(n2, QUIK_LOGIN) w32.SetWindowText(n3, QUIK_PASSW) w32.SetFocus(n4) w32.PostMessage(n4, w32.BM_CLICK, 0, 0) end end end endБлагодарности, как понимаю, следует адресовать swerg
А. Г., этот скрипт запускается из-под QUIK, поэтому не смогу ответить на ваш вопрос ;)
Насчет автопереподключения — все верно. Только иногда все же приходится набирать логин и пароль. Бывает, что часто, когда тестируешь какие-нибудь скрипты на демо-счете. Тут этот автологин просто незаменим. Сам ею пользуюсь уже много лет.
В самом квике есть функция автологина, которая опять же работает не всегда.
При незапущенном квике скрипт запускать нельзя
В начале вставил
ScriptPath = getScriptPath()
package.cpath = ScriptPath.."\\w32.dll;"
ну и дальше под себя немного поменял.
Если не секрет, а в чем практический смысл такой задачи?
По идее, запустить другой скрипт можно тем же образом, что и авторизоваться как в старотовом посте. Просто надо использовать другое окно и разобраться с навигацией по его элементам управления (там простой список ведь и пара кнопок).
Как и зачем к ней подключается скрипт. Почему стратегия сама не может давать команды квику и т.д.
У меня вообще все скрипты это две строчки подключения внешней dll. А все стратегии, получение и передача данных в квик написано на С++. На нем писать гораздо удобнее, чем на Lua, да и отлаживать тоже.
А что нельзя просто поставить одну страту на один квик и на один комп?
Несколько страт несколько квиков, некоторые на виртуалках, лично у меня так.
smart-lab.ru/algotrading/%D0%9A%D1%80%D0%B0%D0%B6%D0%B0%20%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%BE%D0%B2%2C%20%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%B5%D0%B3%D0%B8%D0%B9%2C%20%D0%B8%D0%B4%D0%B5%D0%B9/goto_comment_7691841/#comment7691841
А сервер заменить — мало ли для чего. Делал бэктесты на свежеполученных данных и решил чуть стратегию поменять, оптимизировать. Скрипт при этом вертится и его вообще не трогать. Можно выключить-заменить-включить, но это не так удобно. Можно, например, забыть скрипт запустить. А так он вертится себе 24/7 а ты только сброшенные данные смотри периодически чтобы косяков никаких не появлялось… Такая вот концепция.
Да, еще одно преимущество такого подхода в том, что стратегия может работать вообще на другой машине и под другой операционной системой, например, на кластере под управлением линукс.
Да и зачем это нужно, она у вас что 100% в месяц на 10 млн делает. Иначе какой смысл напрягаться.
Если он написан без поддержки такой возможности, тогда корректно из другого скрипта его остановить нельзя.
waitres=w32.WaitForMultipleObjects(TEVE,0,INFINITE) — ждем любого события по списку
Автору w32.dll еще раз спасибо, сэкономил немного времени.
скрипт полезный, пользуюсь им
ещё бы хотелось в нём реализовать что б при потери связи (сервер лёг и не отвечает на попытки подключения, 10 раз например) скрипт менял сервак и пробовал подключиться снова
может кто знает как это реализовать, подскажет?
а где скрипт этот продают, надо знать таких «героев» ?
Igr, полагаю, они тут сидят и ждут не дождутся, когда их так или иначе прорекламируют. В поиске DuckDuckGo легко выявляются.
Срочно пишу вирус на поиск в файлах .lua логинов и паролей и буду открывать сделки со всех терминалов страны.
Уберите, не позорьтесь.
Пиши конечно
Трейдер Квадратный, вариантов много, вот один:
AutoShut 1.2 с запуском программы QUIK
(https://smart-lab.ru/blog/260931.php)
Также не составит особых трудов включить шифрование и на Lua-скрипте. Смысл поста в том, что есть вещи, которые уже давно (c 2013 года) лежат в открытом доступе и при этом:Логин и пароль зашифрованы:
1. не все пользователи QUIK знают про бесплатный «автологин»;
2. появляются ушлые ребята, которые продают подобные творения.
quik2dde.ru/viewtopic.php?id=78
Все ссылки в первом сообщении там.
И таки да, спасибо принимаются в любом эквиваленте :)
Спасибо, XXM!
XXM, не есть парни, которые ура говорят рублём.
От чего я, конечно, не отказываюсь ;)
forum.quik.ru/forum10/topic5435/
Вы молодцы, не все такие ;)