запуск из работающего скрипта другого скрипта или скриптов
Пользователь
Сообщений: Регистрация: 30.03.2015
09.02.2021 21:40:34
Цитата
Артем написал: QUIK в этом плане ничем не отличается от обычного программирования - изо всех модулей и файлов допустимо иметь ровно один бесконечный цикл, тот который в main(). Все остальные модули должны работать по вызову и должны возвращать управление обратно в main. В Lua можно имитировать многопоточность с помощью сопрограмм ("coroutine").
Антон, НО в квике же это реализовано!!! Мы же вручную можем запустить несколько файлов(скриптов), и они могут работать параллельно!! Я только это имею ввиду, мне не надо распараллеливать задачи по процессорам, только лишь обратиться к ответственному за запуск модулю квика из своего скрипта передав ему путь и имя файла со скриптом, который я хотел бы запустить, точно так же как я это делаю через таблицу доступных скриптов. И запускай хоть с main,хоть с бесконечным циклом. Вот в чем задача.
запуск из работающего скрипта другого скрипта или скриптов
Пользователь
Сообщений: Регистрация: 30.03.2015
07.02.2021 20:58:11
Владимир, ваш диалог в другой ветке: Вы пишите: ", Ну, флаг в руки. а не поделитесь, ЗАЧЕМ нужны 20 скриптов? Просто для общего развития. " Вам отвечают : ", есть автозапуск, есть роботы под разные фьючерсы, есть скрипты для дополнительной аналитики и сигнализации особых случаев, есть вспомогательные скрипты для обфускаций и оптимизаций. Lua удобный инструмент, только удобного интерфейса не хватает. PS Всё пихать в один скрипт считаю ошибочным подходом. Но, если этого ВСЕГО мало, то можно )) PPS Просьба ветку не захламлять отвлеченными вопросами и советами. Давайте дождемся ответа техподдержки. Спасибо." Аналогичная просьба к Вам. Если есть что сказать по существу - скажите. А что у вас всего один скрипт, я так понял, уже весь форум знает.
запуск из работающего скрипта другого скрипта или скриптов
Пользователь
Сообщений: Регистрация: 30.03.2015
07.02.2021 16:28:51
Цитата
написал: Делайте все ваши скрипты всегда запущенными, которые крутят холостой цикл.
Но для этого их все изначально надо запустить вручную !!, а некоторые из них в ходе выполнения основного скрипта могут и вовсе не понадобиться ! При этом нет никакой динамичности. Смысл тот, что в ходе основного скрипта, который получает те или иные данные с запущенных им же скриптов ( в зависимости от поставленной задачи) он мог бы стартовать какие то дополнительные скрипты .Можно было бы динамично изменять алгоритм, да много еще чего. Т.е. в ходе выполения основного алгоритма, запускаются те или иные скрипты (блоки), по мере надобности. И это правильно Основной блок (скрипт) не загромаждается кодом, а по мере надобности запускаются уже давно написанные скрипты ( блоки). Ну как то так, может немного сумбурно. Но если бы была такая возможность было бы все удобно и красиво. "Я искренне не понимаю за каким хреном может понадобиться даже второй скрипт" Ну если Ваш робот торгует только по МА, то наверное тут за глаза хватит и одного скрипта((. Я не собираюсь писать 86 роботов. Но даже в одном роботе гораздо рациональнее различные задачи разбить на блоки. Масса преимуществ, которые даже не хочется перечислять, за их очевидностью.
запуск из работающего скрипта другого скрипта или скриптов
Пользователь
Сообщений: Регистрация: 30.03.2015
07.02.2021 11:39:40
TGP, Да, возможно это решает данную задачу. Но хотелось бы не внедрять новую ОС, а использовать имеющиеся возможности КВИКА, в Квике же это реализовано, из таблицы доступных скриптов мы можем вручную запустить сколь угодно много скриптов, которые работают параллельно без всяких конфликтов, даже, несколько экземпляров одного и того же скрипта. Остается понять как сделать это же из запущенного в ручную собственного скрипта. Я пытался искать по форуму решение этой задачи, но внятного ничего не нашел. Неужели задача не выполнима ? . Может быть как то возможно из своего скрипта инициировать работу Квиковского модуля, ответственного за запуски скриптов, и передавать ему в качестве параметра адрес скрипта, это же делается в таблице доступных скриптов. Корифеи программирования, отзовитесь.
запуск из работающего скрипта другого скрипта или скриптов
Пользователь
Сообщений: Регистрация: 30.03.2015
06.02.2021 12:50:53
Подскажите, кто знает, возможно ли запустить из работающего скрипта другие скрипты , чтобы они (другие скрипты) работали параллельно, через модули не получается, если в одном из скриптов есть бесконечный цикл, то другие модули не запускаются, пока этот модуль не закончит свою работу. Если скрипты запускаешь вручную, то их можно запустить, условно говоря, сколько угодно и они будут работать параллельно, возможно ли такое реализовать из основного(запущенного вручную) скрипта и если возможно небольшой практический пример.
автоматический запуск скрипта, автозапуск
Пользователь
Сообщений: Регистрация: 30.03.2015
19.02.2020 14:06:44
Цитата
Sergey Gorokhov написал: , Возможно речь о том что было зарегистрировано пожелание на доработку. рекомендуем ознакомиться с регламентом рассмотрения пожеланий:
Тем более, что реализация данного пожелания достаточно элементарна и не затрагивает ни коим образом ни функциональность Квика, ни его быстродействие и вообще не несет ни какой дополнительной нагрузки на систему .
автоматический запуск скрипта, автозапуск
Пользователь
Сообщений: Регистрация: 30.03.2015
19.02.2020 14:00:41
Цитата
Sergey Gorokhov написал: , Возможно речь о том что было зарегистрировано пожелание на доработку. рекомендуем ознакомиться с регламентом рассмотрения пожеланий:
24.06.2016 12:19:33 "А идея проста, и то, что реализовано в других терминалах: при добавлении скрипта в список скриптов, сделать дополнительный параметр "автозапуск". Он и будет определять, запускать ли скрипты при входе Квика или нет." Ваш ответ (кстати именно Ваш) : 24.06.2016 12:41:27 "Ваше пожелание зарегистрировано. Мы постараемся рассмотреть его и сообщить Вам результаты анализа. Впоследствии, по результатам анализа, будет приниматься решение о реализации пожелания в будущих версиях ПО"
С регламентом рассмотрения пожеланий - ознакомился. Судя по нему данное пожелание ни чему не противоречит. Так каков результат анализа ? Сообщите пожалуйста. В чем причина не реализации данного пожелания аж с 2016 года ?
автоматический запуск скрипта, автозапуск
Пользователь
Сообщений: Регистрация: 30.03.2015
18.02.2020 20:54:27
Цитата
Sergey Gorokhov написал: , В текущей реализации такой возможности не предусмотрено.
Сергей, вы же обещали (не вы лично), еще в 2016 году реализовать такую возможность, если не трудно объясните пожалуйста в чем причина, и стоит ли надеяться на реализацию, или это как то противоречит концепции вашего развития?
автоматический запуск скрипта, автозапуск
Пользователь
Сообщений: Регистрация: 30.03.2015
16.02.2020 12:23:00
Подскажите пожалуйста появилась ли возможность автоматического запуска скрипта при старте Квика, имеется ввиду не то что скрипт стартует при запуске квика, если он(скрипт) был запущен в предыдущем сеансе и тот сеанс был закрыт корректно, а то что я принудительно закрыл скрипт в предыдущем сеансе( например он отработал нужное мне время ) и квик был закрыт спустя некоторое время после этого т.е. на момент закрытия квика скрипт уже не работал. Теперь в следуещем сеансе хотелось бы чтобы скрипт стартовал автоматически при старте квика , что то подобное виндовской автозагрузки, Вроде бы 2016 году возникал такой вопрос, разработчики даже приняли его к рассмотрению, сдвинулось с места решение этого вопроса ?
написал: К сожалению столкнулся сразу же со следующей проблемой : при незначительных изменениях в исходном тексте программы: сделал ошибку, исправил, заново скрипт не запустился, выдал ошибку: Unknown error. Possible unhandled exeption Вернулся к исходному тексту вашей программы. скрипт запускаться так же не желает ошибка та же : Unknown error. Possible unhandled exeption И только после перезагрузки Квика , скрипты запускаться стали. Почему так происходит ?
Понять, почему так получается, не удалось, впрочем, сильно не разбирался. Лечится только перезапуском Квика. Спрашивать у АРКИ об этой проблеме бесполезно, т.к. она возникает из-за сторонней библиотеки. Стоит сделать так: отладить скрипт, максимально исключив возможное появление подобной ошибки. Далее работает вполне стабильно, немного утомляя из-за однопоточности и sleep после iup.LoopStep() .
Понятно, Спасибо.
Интерфейс в Lua, Диалог из Lua
Пользователь
Сообщений: Регистрация: 30.03.2015
20.12.2018 00:15:56
К сожалению столкнулся сразу же со следующей проблемой : при незначительных изменениях в исходном тексте программы:
сделал ошибку, исправил, заново скрипт не запустился, выдал ошибку: Unknown error. Possible unhandled exeption Вернулся к исходному тексту вашей программы. скрипт запускаться так же не желает ошибка та же : Unknown error. Possible unhandled exeption И только после перезагрузки Квика , скрипты запускаться стали. Почему так происходит ?
Интерфейс в Lua, Диалог из Lua
Пользователь
Сообщений: Регистрация: 30.03.2015
19.12.2018 21:38:57
Цитата
vgi написал: На русском языке документации iup нет. Пусть это Вас не смущает, вставши на путь программирования.
Если что-то будет не понятно про iup, можете открыть новую тему с пометкой iUP , попробуем разобраться.
документация очень хорошая, исчерпывающая, будет лежать в каталоге установленной LuaForWindows.
Документация действительно есть, но она к сожалению на английском, не подскажите, где то можно скачать документацию к iup на русском языке или ее не существует в природе ?
Спасибо, заработало, но правда пока непонятно как кнопки работают и работают ли они, ну буду разбираться, Спасибо.
Интерфейс в Lua, Диалог из Lua
Пользователь
Сообщений: Регистрация: 30.03.2015
16.12.2018 00:11:55
Цитата
написал: Устанавливайте package.cpath а не package.path
К сожалению, то же самое : -- Begin programm -------------------------------------------------------------------------------------- package.cpath = package.cpath .. ";C:/Program Files/Lua/5.1/lua/?.lua" package.preload["iuplua"] -------------------------------------------------------------------------------------- require("iuplua") require("iupluacontrols") local iup = iup
local function initializeDialog()
выдает ту же ошибку:
Syntax error while compiling D:\Program_Lua\Events_iup_1.lua: D:\Program_Lua\Events_iup_1.lua:6: '=' expected near 'require'
написал: iup входит в стандартную LuaForWindows 5.1.4.0
Подскажите, плиз, где скачать LuaForWindows 5.1.4.0 и как установить его в квике, насколько я понял луа в квике встроенный , у меня установлен квик версии 7.18.1.20, но он на iup ругается не видит модули ?
Скачиваете, устанавливаете. В скрипте не забудьте добавить путь к LuaForWindows в package.path. Захочется добавить в окошки что-то поинтереснее - документация очень хорошая, исчерпывающая, будет лежать в каталоге установленной LuaForWindows.
Скачал, установил:
-- Begin programm -------------------------------------------------------------------------------------- package.path = package.path .. ";C:/Program Files/Lua/5.1/lua/?.lua" package.preload["iuplua"] -------------------------------------------------------------------------------------- require("iuplua") require("iupluacontrols") local iup = iup
local function initializeDialog() .............................. выдает ошибку: Syntax error while compiling D:\Program_Lua\Events_iup_1.lua: D:\Program_Lua\Events_iup_1.lua:6: '=' expected near 'require'
Помогите пжлст, в чем дело ?
Интерфейс в Lua, Диалог из Lua
Пользователь
Сообщений: Регистрация: 30.03.2015
13.12.2018 23:09:08
Цитата
vgi написал: iup входит в стандартную LuaForWindows 5.1.4.0
Подскажите, плиз, где скачать LuaForWindows 5.1.4.0 и как установить его в квике, насколько я понял луа в квике встроенный , у меня установлен квик версии 7.18.1.20, но он на iup ругается не видит модули ?
Интерфейс в Lua, Диалог из Lua
Пользователь
Сообщений: Регистрация: 30.03.2015
13.12.2018 12:14:55
Цитата
написал: Обработчики событий пользовательских таблиц работают не в потоке main. В общем случае так делать не стоит.
Спасибо, попробую разобраться. Т.е. если я правильно понял средствами QLua невозможно вывести окно, как например в Java, в котором будут например две кнопки "Да" и "Нет" и проанализировать какая из них нажата ?
Ещё можно использовать обычные таблицы терминала совместно с событиями нажатия на кнопки мыши. Костыльный вариант, но иногда подходит.
Если можно хотя бы приблизительный пример, что именно подразумевается под "использовать обычные таблицы терминала совместно с событиями нажатия на кнопки мыши " какие именно "обычные таблицы" и можно ли использовать клавишу ввод , а не мышь ?
Интерфейс в Lua, Диалог из Lua
Пользователь
Сообщений: Регистрация: 30.03.2015
10.12.2018 21:53:03
Подскажите, пожалуйста, как можно организовать диалог из программы Lua, например организовать запрос с выводом в окно на экран и ожидать ответа из соответствующего поля в этом же окне и в зависимости от ответа продолжить выполнение программы, вообще в Lua возможно организовать чтение вводимых данных с консоли ?
вопрос по индикаторам, движение индикатора
Пользователь
Сообщений: Регистрация: 30.03.2015
12.02.2016 19:17:10
Николай, большое спасибо, что хоть Вы откликнулись, вот тот незамысловатый график который я хочу заставить двигаться, что бы уже дальше двигаться самому
Settings = { Name= "WMA_0_1", period=5} function Init () return 1 end -- ========================================================================= local price_move="price_5m" price_close=0
function OnCalculate(index) num_price = getNumCandles (price_move)
if index < num_price then price_close= getCandlesByIndex(price_move,0,index -1,1)[0].close end if index<=0 or price_close==0 or index>=num_price then return nil else pr= price_close return pr end
--message(' Метка- 2',2) -- ========================================================================== function main()
end -- ========================================================================== end
Помогите пжлст !
вопрос по индикаторам, движение индикатора
Пользователь
Сообщений: Регистрация: 30.03.2015
10.02.2016 17:49:13
Подскажите пожалуйста , написал для пробы что то типа индикатора, в таблице индикаторов он виден, запускается, но отрабатывает один раз а двигаться так как например МА или price не двигается или может я неправильно выразился - не обновляется, прочертил один раз и все, может хотя бы схематично подскажите как его зациклить или что нужно сделать чтобы он обновлялся(двигался) ? Заранее спасибо
juriy163 S пишет: Может причина какая то в самой табл. лимитов ?
Боюсь что если бы это было действительно так, было бы гораздо больше обращений по данной проблеме. Проблема именно в Вашем коде, и пробел это только доказывает. Выложите копию куска кода в котором Вы работаете с функцией getDepoEx
--============================================================================== --function table.val_to_str ( v )
-------------------------------------------------------------------------------------------------------- --function table.key_to_str ( k )
------------------------------------------------------------------------------------------------------ -- Преобразование таблицы или массива в текстовое представление в соответствии с синтаксисом языка lua
--function table.tostring( tbl )
------------------------------------------------------------------------------------------------------ -- Сохранение таблицы или массива в файл
Не хотелось бы заграмаждать ветку , но если в кратце этот код выдает ошибку в основной программе, я его переписал в простейшую - только он и вывод полученной табл. в файл и там и там одна и та же ошибка выдает nil причем повторяю рядом выполняется getMoneyEx он выдает все верно ?
getDepoEx, не работает getDepoEx
Пользователь
Сообщений: Регистрация: 30.03.2015
30.03.2015 19:16:55
Подскажите пожалуйста не работает getDepoEx, выдает nil, хотя в табл. лимитов по бумагам, бумаги есть, правда почему то указаны в количестве акций, а не в количестве лотов. getMoneyEx - работает нормально все верно выдает. Попробовал getDepo и getMoney, в этом случае getMoney опять же выдает все верно, а getDepo в полях указывает нули (depo_current_balance=0, depo_limit_available=0 и т. д. ). Таблицы лимитов созданы и открыты. tbl_depo=getDepoEx ("фирма" , "код клиента" , "код бумаги" , " счет депо", 2) tbl_depo=getDepoEx ("NC0007900000" , "21455" , "GAZP" , " L01+00000F00", 2) Версия quik 6.17.0.58