запуск из работающего скрипта другого скрипта или скриптов

Страницы: 1
RSS
запуск из работающего скрипта другого скрипта или скриптов
 
Подскажите, кто знает, возможно ли запустить из работающего скрипта другие скрипты , чтобы они (другие скрипты) работали параллельно, через модули не получается, если в одном из скриптов есть бесконечный цикл, то другие модули не запускаются, пока этот модуль не закончит свою работу. Если скрипты запускаешь вручную, то их можно запустить, условно говоря, сколько угодно и они будут работать параллельно, возможно ли такое реализовать из основного(запущенного вручную) скрипта и если возможно небольшой практический пример.  
 
Возможно, это для вас окажется интересным: https://forum.quik.ru/messages/forum10/message52233/topic6198/#message52233
   Но это трудно отнести к небольшому примеру.
 
TGP, Да, возможно это решает данную задачу. Но хотелось бы не внедрять новую ОС, а использовать имеющиеся возможности КВИКА, в Квике же это реализовано, из таблицы доступных скриптов мы можем вручную запустить сколь угодно много скриптов, которые работают параллельно без всяких конфликтов, даже, несколько экземпляров одного и того же скрипта. Остается понять как сделать это же из запущенного в ручную собственного скрипта. Я пытался искать по форуму решение этой задачи, но внятного ничего не нашел. Неужели задача не выполнима ? . Может быть как то возможно из своего скрипта инициировать работу Квиковского модуля, ответственного за запуски скриптов, и передавать ему в качестве параметра адрес скрипта, это же делается в таблице доступных скриптов. Корифеи программирования, отзовитесь.
 
Делайте все ваши скрипты всегда запущенными, которые крутят холостой цикл. По внешнему сигналу от управляющего скрипта они от пустого цикла переходят к полезной работе, по второму сигналу - опять уходят в пустой цикл
 
Юрий С, У Квика не так уж много возможностей (в отличие от количества глюков). Я не знаю, можно ли здесь "вручную запустить сколь угодно много скриптов, которые работают параллельно без всяких конфликтов", но знаю, что делать этого не следует, даже если это и возможно. Я искренне не понимаю за каким хреном может понадобиться даже второй скрипт - у меня даже в планах нет создания такового. ЗАЧЕМ Вам множество скриптов? Тут на днях был один, у которого "86 роботов" - не ходите по его стопам.
 
Цитата
s_mike@rambler.ru написал:
Делайте все ваши скрипты всегда запущенными, которые крутят холостой цикл.
Но для этого их все изначально надо запустить вручную !!, а некоторые из них в ходе выполнения основного скрипта могут и вовсе не понадобиться ! При этом нет никакой динамичности.
Смысл тот, что в ходе основного скрипта, который получает те или иные данные с запущенных им же  скриптов ( в зависимости от поставленной задачи) он мог бы стартовать какие то дополнительные скрипты .Можно было бы динамично изменять алгоритм, да много еще чего. Т.е. в ходе выполения основного алгоритма, запускаются те или иные скрипты (блоки), по мере надобности. И это правильно  Основной блок (скрипт) не загромаждается кодом, а по мере надобности запускаются уже давно написанные скрипты ( блоки). Ну как то так, может немного сумбурно. Но если бы была такая возможность было бы все удобно и красиво.
Владимир  "Я искренне не понимаю за каким хреном может понадобиться даже второй скрипт"
Ну если Ваш робот торгует только по МА, то наверное тут за глаза хватит и одного скрипта((.
Я не собираюсь писать 86 роботов. Но даже в одном роботе гораздо рациональнее различные задачи разбить на блоки.
Масса преимуществ, которые даже не хочется перечислять, за их очевидностью.
 
Юрий С, А что такое "торгует по МА"? Скользящая средняя, что ли? Нет, это он вообще не использует. :smile:

Ну, правильно. В моём ОДНОМ скрипте сейчас 15 модулей (функций). Сейчас переписываю его набело - собираюсь добавить ещё одну, 16-ю (вернее, разбить одну на две части). При этом сохраняется та самая "масса преимуществ, которые даже не хочется перечислять, за их очевидностью" и не притаскивается масса потенциальны глюков, которые ОБЯЗАТЕЛЬНО будут при автономной работе нескольких скриптов. Тем более, что скриптов у Вас явно МНОГО, ибо Вы не хотите запускать их вручную.
 
Владимир, ваш диалог в другой ветке:
Вы пишите:
"Денис, Ну, флаг в руки. а не поделитесь, ЗАЧЕМ нужны 20 скриптов? Просто для общего развития. "
Вам отвечают :
"Владимир, есть автозапуск, есть роботы под разные фьючерсы, есть скрипты для дополнительной аналитики и сигнализации особых случаев, есть вспомогательные скрипты для обфускаций и оптимизаций. Lua удобный инструмент, только удобного интерфейса не хватает.
PS Всё пихать в один скрипт считаю ошибочным подходом. Но, если этого ВСЕГО мало, то можно ))
PPS Просьба ветку не захламлять отвлеченными вопросами и советами. Давайте дождемся ответа техподдержки. Спасибо."
Аналогичная просьба к Вам.  Если есть что сказать по существу - скажите. А что у вас всего один скрипт, я так понял, уже весь форум знает.  
 
Юрий С, И в другой, и в третьей, и в десятой... Я и отвечаю по существу: ЗАЧЕМ нужны 20 скриптов? Какому идиоту? А ответов от техподдержки здесь ГОДАМИ ждут - сделают ли они ХОТЬ КОГДА-НИБУДЬ, чтобы на одно событие приходило только ОДНО прерывание, а не воз и маленькая тележка? Ведь ПОЗОРИЩЕ! Даже один скрипт может подвесить весь Квик, может потерять управление, но нам этого мало - нам 20 скриптов подавай! 30! 86! И это, блин, у них называется "по существу", панимаш!
 
Владимир,Дед прими таблетки успокоительные. А то опять ножками том том, ручками шмяк шмяк. Не на те кнопки попадешь. :)
 
Александр, Лапуль, я всегда спокоен. И на кнопки попадаю на те самые. Судя по обсуждению, в отличие от подавляющего большинства остальных участников форума. Ибо у меня ОДИН скрипт - к тому же, написанный на ЧИСТОМ Lua, а потому прекрасно работающий НА ВСЕХ (постоянно меняющихся) версиях софта. :wink:  
 
Цитата
Владимир написал:
Александр, Лапуль, я всегда спокоен. И на кнопки попадаю на те самые. Судя по обсуждению, в отличие от подавляющего большинства остальных участников форума. Ибо у меня ОДИН скрипт - к тому же, написанный на ЧИСТОМ Lua, а потому прекрасно работающий НА ВСЕХ (постоянно меняющихся) версиях софта.  
Есть больные, которые ни когда не признаются, что они больные и откажутся принимать таблетки.

P.S. Теперь все должны делать, как ты? Это же признак болезни, дед?
 
Александр, Лапуль, никто никому ничего не должен. Визжать недорезанными козлами тоже не следует - ведь, как известно, "по-настоящему можно оскорбить только правдой".  :wink:  
 
Владимир,Правда в том, что ты болен. Это конечно тебя оскорбляет.
 
Можно распаралелить работу скриптов, сделать коррутины и заморочиться обработкой данных.
https://www.lua.org/pil/9.1.html
 
Александр, Лапуль, оскорбить невозможно даже теоретически - можно лишь оскорбитьСЯ. А оскорбляться на Вас и Вам подобных даже как-то и грешно. :smile:

Для справки: технология сопрограмм прекрасно реализуется и в рамках одного скрипта. Просто задача организации торговли настолько алгоритмически проста, что и в этом тоже нет никакой необходимости.
 
Владимир, Твои слова расходятся с делом.
Это не тебе ответ был.
 
Александр, Да хоть кому, лапуль - ответ-то дурацкий.  :wink:  
 
Владимир, Ваше мнение ценно, но не пошел бы ты на член.
 
Александр, Лапуль, это же не я до Вас докапываюсь, а Вы до меня. Не первый раз, кстати. Битому неймётся? :wink: Вы же меня не интересуете АБ-СО-ЛЮТ-НО!
 
Владимир,Вы по какой причине ко всем докапываетесь со своими "единственными верными", но бесполезными советами? Не нравится луа, пиши на си. Не нравится квик, уйди на другой терминал, терминалов много. Куда не глянь, в каждой теме успел засветится с одним и тем же по сути. Хотя глухому навряд ли можно все это объяснить.
Человек, который утверждает, что не интересуется мной АБ-СО-ЛЮТ-НО, но при этом отвечает на мои сообщения, как минимум врун. Не интересуешься пройди мимо.
 
Александр, Лапуль, Вы опять всё напутали: а) не "единственными верными" - я только хочу уберечь новичков от откровенных кретинизмов, которыми их здесь усиленно пичкают местные "гуру", б) очень даже полезными - испытанными, проверенными реально работающими в) я не раз уже говорил, что, несмотря на то, что Си мой наилюбимейший язык на протяжении десятилетий, ЭТИ задачи нужно решать именно на Луа г) я чуть ли не единственный на этом форуме, кто И В САМОМ ДЕЛЕ пишет исключительно на Луа (обратите, кстати, внимание на название форума) д) терминал Квик меня устраивает настолько, что я не хочу даже искать лучшего е) несмотря на то, что я "в каждой теме успел засветится с одним и тем же по сути", до стада местных "гуру" вряд ли хоть одно положение дошло, "хотя глухому навряд ли можно все это объяснить" ж) мне абсолютно насрать на все Ваши сообщения, но если всякая шавка начинает тяфтяфкать на меня, любимого, то мимо я вряд ли пройду.

Я доступно излагаю, лапуль?  :wink:  
 
Владимир,Ваше мнение очень важно для нас, но иди ты в ж...
 
Александр, Лапуль, что и как мне делать, я всегда решаю САМ, без сопливых.. :wink:  
 
Владимир,Ваше мнение важно для нас, но иди в ж...
 
QUIK в этом плане ничем не отличается от обычного программирования - изо всех модулей и файлов допустимо иметь ровно один бесконечный цикл, тот который в main(). Все остальные модули должны работать по вызову и должны возвращать управление обратно в main. В Lua можно имитировать многопоточность с помощью сопрограмм ("coroutine").
 
Артем, Кое-чем всё-таки отличается: модули, конечно, должны возвращать управление обратно в main, но, как когда-то прекрасно показал Антон, возвращают его не всегда. И прерываний по таймеру нет - только эмуляция в цикле со sleep. Что до многопоточности - на уровне данных действительно "можно имитировать многопоточность с помощью сопрограмм", а вот если под многопоточностью понимать многозадачность, то создание нескольких процессов в рамках одного приложения будет заметно сложнее, и я не уверен, что это возможно для Lua - больно уж дохлый язык. Даже в Си в таких случаях следует учитывать, что методы класса "функции" работают на одном и том же программном стеке, и при переключении процессов приходится заботиться о сохранении и восстановлении данных этого стека.  
 
Цитата
Артем написал:
QUIK в этом плане ничем не отличается от обычного программирования - изо всех модулей и файлов допустимо иметь ровно один бесконечный цикл, тот который в main(). Все остальные модули должны работать по вызову и должны возвращать управление обратно в main. В Lua можно имитировать многопоточность с помощью сопрограмм ("coroutine").
Антон, НО в квике же это реализовано!!! Мы же вручную можем запустить несколько файлов(скриптов), и они могут работать параллельно!! Я только это имею ввиду, мне не надо распараллеливать задачи по процессорам, только лишь обратиться к ответственному за запуск модулю квика из своего скрипта передав ему путь и имя файла со скриптом, который я хотел бы запустить, точно так же как я это делаю через таблицу доступных скриптов. И запускай хоть с main,хоть с бесконечным циклом. Вот в чем задача.
 
Цитата
Юрий С написал:
Цитата
Артем написал:
QUIK в этом плане ничем не отличается от обычного программирования - изо всех модулей и файлов допустимо иметь ровно один бесконечный цикл, тот который в main(). Все остальные модули должны работать по вызову и должны возвращать управление обратно в main. В Lua можно имитировать многопоточность с помощью сопрограмм ("coroutine").
Антон, НО в квике же это реализовано!!! Мы же вручную можем запустить несколько файлов(скриптов), и они могут работать параллельно!! Я только это имею ввиду, мне не надо распараллеливать задачи по процессорам, только лишь обратиться к ответственному за запуск модулю квика из своего скрипта передав ему путь и имя файла со скриптом, который я хотел бы запустить, точно так же как я это делаю через таблицу доступных скриптов. И запускай хоть с main,хоть с бесконечным циклом. Вот в чем задача.
Поддержу Юрия. Мне бы тоже хотелось запускать все свои скрипты при помощи одного. Как это делается в операционках при помощи .bat или .sh файлов. Однако я полагаю такая мечта несбыточна.
Может быть в следующих версиях мы увидим еще перенос какого-то параметра из одного пункта меню, однако полагаю что мне уже не увидеть даже иконки окна скриптов на панели или привязку пользовательской таблицы к вкладке. Жизнь коротка (
 
В DLL можно прописать асинхронную работу нескольких процессов одновременно. Это как вариант.
В LUA если подключать модуль в функции то при выходе из нее модуль отключается. Как кстати и в любой программе на любом языке. Можно попробовать воспользоваться этим, но стоит учесть что запустить несколько одновременно не получиться. То-есть получили информацию из нужного скрипта и вышли из него. Чтоб не подвесить работу основного процесса.
 
Цитата
Kolossi написал:
или привязку пользовательской таблицы к вкладке

https://quik2dde.ru/viewtopic.php?id=329
 
Цитата
swerg написал:
Цитата
Kolossi написал:
или привязку пользовательской таблицы к вкладке

https://quik2dde.ru/viewtopic.php?id=329
Спасибо! Завтра поверчу в необходимых вариантах и отпишусь.  Очень востребованный костыль )
 
Цитата
Юрий С написал:
Цитата
Артем написал:
QUIK в этом плане ничем не отличается от обычного программирования - изо всех модулей и файлов допустимо иметь ровно один бесконечный цикл, тот который в main(). Все остальные модули должны работать по вызову и должны возвращать управление обратно в main. В Lua можно имитировать многопоточность с помощью сопрограмм ("coroutine").
Антон, НО в квике же это реализовано!!! Мы же вручную можем запустить несколько файлов(скриптов), и они могут работать параллельно!! Я только это имею ввиду, мне не надо распараллеливать задачи по процессорам, только лишь обратиться к ответственному за запуск модулю квика из своего скрипта передав ему путь и имя файла со скриптом, который я хотел бы запустить, точно так же как я это делаю через таблицу доступных скриптов. И запускай хоть с main,хоть с бесконечным циклом. Вот в чем задача.
Можете попросить разработчиков добавить С++ API функцию для запуска через QUIK сторонних скриптов.
Страницы: 1
Читают тему (гостей: 2)
Наверх