про колбеки

Страницы: 1
RSS
про колбеки
 
Добрый день,
В качестве пожелания.
1) Очень удобно иметь возможность создавать колбеки в скриптах и индикаторах и вызывать их из любого скрипта или индикатора.
2) Очень удобно иметь возможность прочитать любые глобальные данные из любого скрипта или индикатора и вызвать на исполнение любую функцию в любом скрипте из любого скрипта или индикатора.
--------------------
Я в настоящее время реализовал у себя эти механизмы в версии 6.17.3.6
Доволен,  как кот у миски со сметаной.
--------------------------
Благодарю за внимание.
 
Добрый день.
Если Вы подробнее расскажете о том что хотите нам будет проще принять решение о возможностях и способах реализации.
 
Цитата
Николай Камынин написал:
Доволен,  как кот у миски со сметаной.
весьма сильно напоминает "персонажа" с ником николс со старого форума... :lol: :lol: :lol:
 
Цитата
Michael Bulychev написал:
Добрый день.
Если Вы подробнее расскажете о том что хотите нам будет проще принять решение о возможностях и способах реализации.
он ничего не хочет (да и врядли может... ) - он просто хвастается.)))
 
Цитата
Michael Bulychev написал:
Добрый день.
Если Вы подробнее расскажете о том что хотите нам будет проще принять решение о возможностях и способах реализации.
добрый день,
попробую объяснить.
------------------------
Скрипт луа , который создается на основе библиотеки QlUA можно представить как обертку потока.
---------------------------------
Таким образом, запуск скрипта - это запуск самостоятельного потока.
-----------------------------
В данной версии доступ к потоку имеют лишь функции внутри скрипта и колбеки из QLUA.
Поэтому я поставил задачу обеспечить доступ к потоку из других скриптов или индикаторов.
это можно реализовать, если создание колбеков разрешить внутри скриптов и индикаторов.
-------------------------
Что дает такое решение?
----------------------------
Как известно (по крайней мере я так строю роботов),
технология создания торговых роботов,
как правило,
включает несколько модулей,
большая часть которых не зависит от торгуемого инструмента.
----------------------------------
В существующей версии QLUA, для каждого робота необходимо в скрипт включать все модули.
------------------------------
Например, если мы делает роботов для торговли 10 инструментами,
то каждый из них будет содержать модули обработки заявок сделок.
т е это 10 колбеков onOrder, onTrade, которые в очередь обрабатывают одно и тоже в основном потоке QUIK.
------------------------
можно конечно, все 10 роботов запихнуть в один скрипт.
Но тогда будут в очередь в одном дополнительном потоке работать 10 генераторов торговых сигналов.
-------------------------------
можно конечно еще создать свои потоки в этом скрипте,
но тогда возникает вопрос синхронизации потоков,
а скудные сведения о внутренности QLUA и архивов QUIK приводят к танцам с бубном.
-------------------------------
Что дает мой вариант.
---------------------
1) колбеки QLUA вызываются однократно вне зависимости от количества роботов
2) генераторы торговых сигналов обрабатываются каждый в отдельном потоке.
3) синхронизация потока с глобальными переменными внутри скрипта решена
в QLUA потобезопасными функциями работы с таблицами.
------------------------
Резюме: И будет всем счастье.
-----------------------
примерно так.
 
А корутины чем Вас не устраивают?
 
Цитата
Michael Bulychev написал:
А корутины чем Вас не устраивают?
можно не буду читать Вам лекцию про потоки?
 
тут уже приводилась ссылка на статью,
где товарищ пытался ускорить выполнение расчетной программы разбивкой на потоки на одноядерной машине.
и удивился,
не получив никакого ускорения.
 
Просто есть два подхода в использовании Lua:
1. Вы пишете на Lua и тогда корутины это то что Вам надо
2. Lua используете как язык для связки своих библиотек и QUIK. В этом случае реализация полностью на ваших плечах.
Но я все еще не понимаю полностью как Вы хотите вызывать функции одного работающего скрипта из другого. Проблем и ограничений в таком подходе явно больше чем преимуществ.
 
Цитата
Michael Bulychev написал:
А корутины чем Вас не устраивают?
Michael Bulychev, а можно пример от маэстро?
просим Вас. мы все - просим.. :lol:


______________________________________
ответ - обязателен
 
Цитата
Michael Bulychev написал:
Просто есть два подхода в использовании Lua:
1. Вы пишете на Lua и тогда корутины это то что Вам надо
2. Lua используете как язык для связки своих библиотек и QUIK. В этом случае реализация полностью на ваших плечах.
Но я все еще не понимаю полностью как Вы хотите вызывать функции одного работающего скрипта из другого. Проблем и ограничений в таком подходе явно больше чем преимуществ.
Добрый день,
Хоть и не верю в то, что из этого будет толк, но все же отвечу:
--------------------------------------
1) Я пишу на луа и СИ. Либо любом другом языке, который лучше подходит для решения конкретной задачи.
-----------------------------
2) Полагаю, что Вы не внимательно прочитали то, что я написал ранее.
-----------------------------------
Увы без лекции не обойдемся.
------------------------
Корутины - это виртуальный поток.
Его задача уменьшить простои процессора при ожидании асинхронных позиций,
без которых дальнейшие вычисления невозможны.
Это тоже самое, что потоки в одноядерной винде.
Такие потоки решают лишь две задачи - уменьшение простоя ядра при ожидании задачей асинхронных событий
и исключение зависания задач.
Т е в таких системах задачи решаются последовательно.  
Так как параллельно нет  на чем решать.
Эти потоки не могут ускорить вычислительные задачи,
т е те, в которых используется лишь память и вычислитель(процессор) и нет ожидаемых событий.
-------------------------------
Ранее я уже написал , что поток - это фактически вычислитель ( т е процессор и код программы)
Так вот, возвращаясь ранее определенным задачам,
я решаю задачу параллельных вычислений в роботах на основе Вашей QLUA библиотеки.
Поэтому речь идет о реальных потоках в многоядерной (многопроцессорной) системе.
----------------------------------
Вообще-то я эту задачу решил.
Поэтому сделаете ли Вы это для других или нет, мне все равно.
---------------------------
Корутины я тоже использую, например в системе мониторинга умных вещей на основе чипа ESP.
Но это уже другая история.
---------------------------------------
Примерно так..
 
пардон опечатка:
....при ожидании асинхронных событий
 
Цитата
Николай Камынин написал:
чипа ESP
этот чо ли?:

Цитата
Николай Камынин написал:
Корутины я тоже использую, например в системе мониторинга умных вещей на основе чипа ESP
твоя IDE?
Цитата
Николай Камынин написал:
Вообще-то я эту задачу решил.
Поэтому сделаете ли Вы это для других или нет, мне все равно.
ну а чо хотел-то? :lol: и стоило из-за этого топик создавать? :lol: :lol:  

или...

может перестанешь уже хвастаться и покажешь/расскажешь опять про свой Shared Memory-"грааль"



иль, опять слабо?... :wink: :lol: :lol:
Страницы: 1
Читают тему
Наверх