TGB (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 13 След.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Так как складывается впечатление что Вы часть лекций пропускали, ни какой аргументации, одни эмоции, извините ну мне не интересно  
   У вас не только тексты, но впечатления сильно ошибочные  :smile: . На всякий случай, я закончил ведущий московский институт с красным дипломом. И хорошо что вам стало неинтересно.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Они не имеют собственного стека вызовов, а используют стек вызовов основного потока.
  Опять не поняли (хотя написали формально правильно), что сопрограммы не могут выполняться параллельно с потоком, в котором вызваны, Вы понимаете что представляет собой поток в windows?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
что Вас так разволновало, Вы не знакомы сопрограммами или функциями обратного вызова? Или Вам не известно что в LUA реализована неблокирующая, асинхронная обработка сопрограммы : События обрабатываются в фоновом режиме, что позволяет приложению продолжать выполнять другие задачи без блокировки, до вызова события? Ну так попробуйте пример. Уже все рассказал и показал.  
  Если бы вы это писали в своем локальном дневнике, то мне бы было "по баробану", но вы это заявляете публично и безопяляционно, с уверенностью "отбитого" дилетанта. Вы же вводите в заблуждение тех пользователей, для которых программирование не является профессиональной деятельностью. Вы, что не понимаете, что сопрограммы выполняются в общем потоке с функцией, вызвавшей ее? Никакого фона выполнения сопрограмм не существует. Вообще, прежде чем выкладывать свои завиральные идеи, наверное, вам было бы полезно что-то почитать по IT.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Вы вообще о чем?    Вы себя о позиционируете как опытного знающего программиста, не хотите обсудить код?
    Причем тут опытный, знающий программист. Почитайте про взаимодействие коллеков и потока main в истории форума. Там много не моих сообщений.
 После чтения истории, вы, наверное, сможете понять, что коллбеки и поток main выполняются последовательно и тогда зачем мне читать ваш текст, в котором присутствуют какие то фоновые потоки вашего воображения.
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Что это за угроза я не понял  
  Начало обеспечения:
1. Зачем вы совою закомплексованность (много текста) выносите на общее обозрение?
2. Вы писатель, а не читатель?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
TGB , "Зачем козе баян"? В Ваш "неокрепший ум смуту" внести мне не под силу. Вам бы не мешало для начало научиться читать, от начало до конца,  улавливая смыслы. А поэтов здесь хватает и без Вас.
  Вы меня, наверное, не поняли. Все-таки надо читать историю форума.
Если вы хотите продолжить общение со мной в стиле (посмотрите начиная со ссылки и до конца ветки): https://forum.quik.ru/messages/forum10/message62917/topic7277/#message62917,
то, при том что это мне не интересно, я вам это обеспечу.
Почему в этой программке утекает память??
 
Цитата
Serge123 написал:
И ещё я вижу торможение, когда окно "Доступные скрипты" располагаю поверх стаканов. В этом случае хорошо видно, что циферки занятости памяти напротив скрипта перерисовываются не мгновенно. Хотя, GPU в диспетчере тоже простаивает, как и CPU. Поэтому я не знаю, как объяснить это торможение.
   Натуру не исправить  :smile: .
Почему в этой программке утекает память??
 
Цитата
Serge123 написал:
В принципе, ясно. Тогда, получается, что у меня память не утекает? Надо попробовать запустить сборщик мусора явно и посмотреть, сколько памяти освободится.
   Возможно я ошибаюсь, но вашей целью является получение прибыли на фондовом рынке. А если это так, то тестирование Qlua - это потеря вашего времени.
   Я понимаю, что вы по своей натуре перфекционист (все должно быть понятно и идеально), но вам приходится жить в этом неидеальном мире и поэтому, как мне кажется, стоит "забить" на его несовершенство. Среда, в которой вы реализуете свои алгоритмы несовершенна, но этим стоит заниматься только тогда, когда это вам мешает конкретно.  Иначе вы будете решать чужие задачи (вроде отладки Lua).
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Суть в следующем: В Lua относительно легко реализуется, событийно-ориентированная модель программирования, она хорошо подходит для обработки асинхронных событий. Такой подход позволяет приложениям Lua обрабатывать несколько событий одновременно без блокировки основного потока выполнения приложения. События обрабатываются в фоновом режиме, не прерывая поток выполнения приложения.
 Вы зачем вносите "смуту" в неокрепшие умы  :smile: ?
Откуда вам известно, что коллбеки не блокируют поток main?
Вы прежде чем писать свои сообщения, почитайте сообщения, квалифицированно объясняющие взаимодействие коллбеков и потока main (их много, написанных ранее чем вы появились на форуме). Оттуда вы сможете почерпнуть, что коды на Lua (это не C-функции) синхронизируются (выполняются последовательно, то есть, когда выполняется Lua-код, то Lua-код потока main блокируется и наоборот).
  Вообще, я не стал бы комментировать ваше сообщение, но вы своими безопеляционными сообщениями можете сбить с толку тех, кто не в теме.
 Свои неокрепшие мысли, наверное, можно записывать в своем локальном дневнике.
Почему в этой программке утекает память??
 
Цитата
Serge123 написал:
я присваиваю false ссылкам на таблицы
  Неиспользуемым ссылкам надо присваивать nil.
Почему в этой программке утекает память??
 
Цитата
Serge123 написал:
С каждой записью в файл утекает ~ 50 байтов памяти, а почему она не собирается сборщиком мусора??
  Утечка есть. Это ошибка разработчика языка Lua 5.4.1 при реализации стандартных функций io.  Файлы это не тип данных Lua и сборщиком мусора они не обрабатываются, поэтому и требуется функция close (в которой похоже есть ошибка).
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
Этот комментарий, сугубо, для поддержки QUIK.
---
 Как результат  *  в данной ветке, возникло дополнительное предложение:
 4) На форумах ARQA для комментирующих пользователей ввести месячный лимит трафика, после которого не будет возможность вводить комментарии.
     Значением этого лимита могло быть: <Годовой трафик nikolz> / 12 / 10. Но, конечно, насчет значения лимита, решать ARQA.
     Наличие такого лимита, обеспечило бы:
      - экономию дискового пространства баз форумов;
      - автоматическое модерирование форумов за счет принуждения думать о краткости и четкости текстов, пишущих комментаторами;
      - удобство для читающих комментарии, в которых будет меньше флуда.
Проверка на nil
 
Цитата
Евгений написал:
Еще ньанс: Данная ошибка выскочила всего 1 раз за год бесперебойной работы скрипта.
  Следующий раз, пожалуйста, начинайте с нюансов и указывайте версию QUIK, а также версию QLua. А то вы мозги форуму чуть не свихнули :smile: .
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
Цитата
TGB написал:
Вам светит за три года приблизительно следующая сумма: 1000000 * 3,7 * 3,7 * 3,7 - 1000000 - 3*1000000*0,2 = 49000000 руб.
  В приблизительных вычислениях ошибка, но возражения не дождался.
Точно: 1000000 * 4,7 * 4,7 * 4,7 - 1000000 - 3*1000000*0,2 = 102223000 руб. до уплаты налога.
Проверка на nil
 
Цитата
Евгений написал:
Ругается на строчку if getFuturesLimit(FIRM, ACCOUNT, 0, "SUR").cbplplanned==nil then
  Если функция, в которой это происходит небольшая, то выложите ее текст. Трудно определять птицу по заднему оперению :smile:
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
1.
Цитата
nikolz написал:
Я на форуме не только предлагал, но и показывал как это работает у меня.
   Вы опять не поняли.  Я эту ветку создал не для того чтобы обсуждать свои или чужие решения. До сих пор я понимал и решал свои проблемы и при этом пользовался интернетом.
  Если вы читали мой первый комментарий, то в нем написано как можно улучшить QUIK.
2.
Цитата
nikolz написал:
И результаты тестов различных вариантов. https://forum.quik.ru/forum17/topic8426/
 Несмотря на написанное мною в первом пункте, посмотрел и впечатлился:
.
Цитата
nikolz написал:
Смотрим первую картинку.
Нижнее 3 окно в ней - это график прибыль/убыток за 2023 год.
линия зеленая на оси справа показывает положительные 220% -это профит лонг.
линия синяя на оси справа показывает положительные 150% - это профит short
линия белая на оси справа показывает положительные 370% - это профит long+short.
 Сдаюсь :smile: . Таких годовых процентов у меня не было.
Вам мой совет возьмите кредит, ну хотя бы 1000000 руб., ну хотя бы под 20% годовых на 3 года.
Вам светит за три года приблизительно следующая сумма: 1000000 * 3,7 * 3,7 * 3,7 - 1000000 - 3*1000000*0,2 = 49000000 руб.
А может вы уже и сейчас миллиордер :smile: ?
Повторное использование строки
 
Цитата
nikolz написал:
вас так колебет что я повторно написал то, что Вы написали выше?
  Переживаю за то, что много мусора на форуме и могут переполниться его база :smile:
Повторное использование строки
 
Цитата
nikolz написал:
А вы догадайтесь.
   Судя по тому, что вы всегда цитируете сообщения полностью (даже самые длинные), вы, наверное, спамер. Но нельзя исключать с учетом качества выдаваемого вами текста, что вы полуинтеллектуальный робот-спамер :smile: .
Повторное использование строки
 
Цитата
nikolz написал:
Если Вы это сообщение выводите в файл, то пишите сразу в файл. куски сообщения. Каждый новый кусок добавится в конец файлаВ итоге Вам не надо наращивать строки.
  nikolz писатель?  
  Зачем вы пишите, то что было уже написано два раза?:
1)
Цитата
TGB написал:
Почему бы не записывать строку сразу в файл (в системе это буферизуется). Вы проверяли, сколько записей выполняется в файл за 1 секунду, если писать напрямую? Если вы это сделаете, то, возможно, удивитесь.
2)
Цитата
Nikolay написал:
У меня такие потоки для каждой новой записи просто пишутся в файл черезf:write(str..'\n')
  Вы так спамите или не умеете читать :smile: ?
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
1.
Цитата
nikolz написал:
Это делается очень просто. ----------------------Применяю это с момента появления VMLua в КВИКЕ.---------------------Возьмите готовую библиотеку  https://quik2dde.ru/viewtopic.php?id=78 ------------------и используйте всего две функцииCreateEvent и  WaitForSingleObject-------------------Как реализовать очередь есть в документации QLUA  
  Опять вы не поняли. То о чем вы пишите, я у себя реализовал давно, как только начал разбираться с QUIK.
  Сутью 2-го пункта является;
Цитата
TGB написал:
в такой схеме решается тяжелая задача подключения новых версий Lua в QUIK, так как не будет требоваться конфигурирования Lua для многопоточного использования (из-за запуска функций коллбеков в потоке, отличном от потока main, но в контексте пользователя). Подключение новых версий Lua  в QUIK станет в описанной выше схеме рутинной задачей.

2.
Цитата
nikolz написал:
TGB ,
Sleep - это функция, которая останавливает поток и возвращает управление OC.
Что Вы будете модифицировать в ней?
Опять, та же фигня :smile: .  
Я пишу про sleep (это функция QLua):
Цитата
TGB написал:
Это вызов функций обработки коллбеков в видоизмененной sleep с параметрами в нужном формате, считанными из предлагаемых очередей (очереди).
а вы про системную Sleep. Вы, что, не понимаете разницы?

3.
Цитата
TGB написал:
Вы, похоже, очень наивны и полагаете, что разработчики работают за бесплатно? Можно, наверное как то сообразить, что часть комиссии, уплачиваемая брокерам пользователями, идет на зарплату разработчикам, а также в доход акционерам ARQA.
 Где возражения?
Повторное использование строки
 
1.
Цитата
Serge123 написал:
хочется копать вглубь и искать там золотые самородки. До сих пор ничего роботоподобного не сделал...
  Прежде чем копать, наверное, стоит выбрать место для копания. То есть, сначала поторговать вручную, чтобы понять что это такое, но без фанатизма, чтобы не слить весь ваш депозит. При этом надо понимать, что реально работающую стратегию, стабильно, без провалов, приносящую доход хотя бы в 20% (в текущий момент) на годовом периоде, вам никто не предложит. Подумайте, зачем банкам бегать за клиентами с предложениями кредитов под 15% если на фондовом рынке можно заработать 20%. Фондовый рынок, локально, это игра с "псевдо-нулевой" суммой (деньги на нем не создаются а перераспределяются) и если какая то стратегия оказывается выигрышной, а затем получает широкое распространение, то она перестает работать.
  После некоторого периода ручной торговли сделайте простого робота исключительно на QLua, который смог бы вас заменить, а также торговать на истории. И только после этого начните поиск своей стратегии и оптимизацию того, что имеет смысл оптимизировать.

2.
Цитата
Serge123 написал:
На этом форуме могут до кровохарканья обсуждать двойные и тройные очереди, показывать загадочные картинки, от которых рябит в глазах, но ничего действительно полезного не скажут.
 Не согласен (частично). Конечно, на форуме много флуда, но тот же Nikolay написал вам практически все об обработке обезличенных сделок.
Проверка на nil
 
Цитата
Евгений написал:
Подскажите выскочила ошибка: "attempt to index a nil value" на строчку: "if getFuturesLimit(FIRM, ACCOUNT, 0, "SUR").cbplplanned==nil then"Вроде как раз на nil проверяю.  
 У вас getFuturesLimit(FIRM, ACCOUNT, 0, "SUR") равно nil, а его индексировать нельзя.
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
Мне интересна реакции разработчика QUIK, в лице поддержки, на те пункты, которые мною предлагаются.
--------
 На всякий случай, по пункту 2:
Есть вариант его реализации таким образом. чтобы сохранить существующий интерфейс QLua c QUIK, с тем, чтобы пользователям не надо было изменять существующие скрипты. Это вызов функций обработки коллбеков в видоизмененной sleep с параметрами в нужном формате, считанными из предлагаемых очередей (очереди).
Повторное использование строки
 
Цитата
Serge123 написал:
Тогда посмотрите на кусочек от вывода моего Луа скрипта, который обрабатывал OnAllTrade от 4 января 2023 г.:
  Я согласен с тем, что написал Nikolay.
  Но если вы хотите разобраться с тем как вызываются коллбеки OnAllTrade реально, то в ваш вывод нужно добавить колонку времен вызова этого коллбека (используя функцию QLua os.sysdate() с детализацией до микросекунд).
Повторное использование строки
 
Цитата
Serge123 написал:
В OnAllTrade видел: время на сервере биржи с точностью 1 мкс не меняется, а в файл записалось больше 64 сделок...
    Этот коллбек я до сих пор не использовал. Поэтому пока мне сказать относительно него нечего.
Повторное использование строки
 
Цитата
Serge123 написал:
Тут дело не в том, что есть запись на диск, а в том, что за 1 мкс десятки раз может выполняться оператор
   Где вы обнаружили коллбеки QUIK, вызываемые десятки раз за 1 мкс?
   Не знаю, будет ли для вас это существенно, но одна из моих практических профессиональных специализаций: параллельное программирование и разработка систем реального времени. Возможно я ошибаюсь, но у меня возникло представление, что вы пытаетесь бороться с привидениями, многие из которых у вас не материализуются :smile:.
Повторное использование строки
 
1.
Цитата
Serge123 написал:
Есть строка mess (age), в которой коллбэки накапливают свой вывод, при превышении определённой длины строка записывается в файл.
 Почему бы не записывать строку сразу в файл (в системе это буферизуется). Вы проверяли, сколько записей выполняется в файл за 1 секунду, если писать напрямую? Если вы это сделаете, то, возможно, удивитесь.
  Вообще то, если для вас важна эффективность, то имеет смысл, прежде чем заниматься оптимизацией,  выяснять: а нужно ли это делать. Эффективнее всего выполняется то, что ничего не делает :smile:.

2.
Цитата
Serge123 написал:
Мне кажется, что ничего не случится, если извне (из длл) строка будет изменена, ведь, если строка не находится внутри таблицы, вычисление хеша от неё не нужно?
  Если нет желания заниматься длительной научно-исследовательской деятельностью, то для взаимодействия dll и Lua надо использовать только C API.
------
  И «перегруженный» анекдот про чукчу:
Чукча и геолог ловят рыбу зимой на льду. Геолог приехал на рыбалку на снегоходе, а чукча пришел на лыжах. Вдруг видят направляющегося к ним голодного белого медведя. Ружья нет.
Чукча хватает лыжи и начинает их надевать. Геолог:
- Бесполезно. Все равно ты не сможешь бежать быстрее медведя.
- А мне и не надо бежать быстрее медведя. Мне достаточно того, что медведь сюда добежит раньше, чем ты заведешь свой быстро бегающий снегоход.
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
Цитата
Constantin написал:
Как я понимаю человек предлагает вызывать колбеки в потоке Lua-скрипта.
  Один из возможных вариантов предлагаемой обработки событий Qlua:
  1)  вместо регистрации функций обратного вызова, регистрация соответствующих потокобезопасных очередей событий (возможно, с теми же именами);  я бы сделал эти очереди (можно, в принципе, обойтись и одной) циклическими, с указанием их длины при регистрации, но не более некоторого значения;
  2)  вместо sleep, служебная функция с тем же именем ожидания либо истечения интервала времени (как в sleep), либо появления данных в очередях событий (с выдачей списка непустых очередей);
  3)    добавление функции чтения очередей событий (их параметров).
  Эта схема реализует рекомендованную ARQA обработку параметров событий в main (смотрите "Использование Lua в Рабочем месте QUIK"), с тем, чтобы не было проблем синхронизации в скриптах.  Кроме того, в такой схеме решается тяжелая задача подключения новых версий Lua в QUIK, так как не будет требоваться конфигурирования Lua для многопоточного использования (из-за запуска функций коллбеков в потоке, отличном от потока main, но в контексте пользователя). Подключение новых версий Lua  в QUIK станет в описанной выше схеме рутинной задачей.
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
Пропустил:
Цитата
nikolz написал:
В каком основном потоке ?
  Есть такой документ разработчика QUIK: "Использование Lua в Рабочем месте QUIK". Найдите в интернете и почитайте.
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
1.
Цитата
nikolz написал:
Вам не нравиться ,что  в основном потоке терминала выполняется:запуск всех Lua Скриптов пользователя.--------------И что в этом плохого?
  Это мелочь, но при условии, что пакеты в скриптах подключаются в потоке main. Иначе одновременный запуск нескольких скриптов выполняется долго (из-за того, что это это выполняется в одном потоке).

2.
Цитата
nikolz написал:
Мое мнение:Колбеки не запускаются, а вызываются.
 Пусть для вас вызывается, а для меня запускается  :smile: . Кому непонятно, что это одно и тоже?

3. По остальной части вашего комментария:
   Пользовательские индикаторы в графиках обрабатываются в основном (единственном) потоке. Это медицинский факт. Если вы не знаете как это проверить экспериментально, то я вам расскажу как это сделать. дополнительно, в основном (единственном) потоке запускаются коллбеки всех скриптов пользователя, а также вызываются коллбеки всех таблиц QUIK, созданных пользователем. Наверное, понятно и ежу, что в текущий момент в одном потоке все это будет выполняться последовательно. Это значит, что на архитектурном уровне QUIK в  текущий момент существует зависимость по выполнению для его различных функциональностей, что является некоторым дефектом. Кому это непонятно?

3.
Цитата
TGB написал:
Вы, похоже, очень наивны и полагаете, что разработчики работают за бесплатно? Можно, наверное как то сообразить, что часть комиссии, уплачиваемая брокерам пользователями, идет на зарплату разработчикам, а также в доход акционерам ARQA.
 Где возражения?
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
Цитата
VPM написал:
получается что нужно отказаться от отдельного потока main и выполнение main разместить в основном потоке , при этом создав "активную очередь событий".
  Я этого не писал.
-------
  Вообще то, не хочу вас, обидеть, но в моем сообщении пункты 1) и 2) написаны не для либеза. Думаю, что разработчикам QUIK понятно о чем я пишу в этих пунктах.
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
1.
 
Цитата
nikolz написал:
Потоков уже 8.
  Где вы у меня прочитали, что все запущенные пользовательские скрипты работают в одном потоке?
У меня написано:
Цитата
TGB написал:
В текущей версии в одном основном потоке обслуживаются:
- запуск всех Lua-скриптов пользователя;
- запуск коллбеков всех Lua-скриптов пользователя;
- обработка всех коллбеков таблиц QUIK (это не таблицы Lua);
- обработка всех индикаторов пользователя.
Вам до сих пор неизвестно, что в QUIK существует служебный, так называемый основной единственный поток, выполняющий то, что перечислено мною выше?
Когда же вы научитесь читать чужие сообщения?

2.
Цитата
nikolz написал:
Разработчики дали решение этой проблемы. Оно прекрасно работает. Так как QUIK - это бесплатное приложение, то дареному в... не заглядывают. сделать что-то еще - это их право, но не обязанность.
 Вы, похоже, очень наивны и полагаете, что разработчики работают за бесплатно? Можно, наверное как то сообразить, что часть комиссии, уплачиваемая брокерам пользователями, идет на зарплату разработчикам, а также в доход акционерам ARQA.
Если бы я был архитектором QUIK, Что стоило бы изменить в QUIK по-крупному
 
В Новосибирске, когда то была хорошая школа IT-шников. И что-то, наверное, от нее осталось. Я надеюсь, что архитектором QUIK в текущий момент является один из выпускников этой школы.
   В QUIK все равно будут вноситься изменения (чтобы оставаться «наплаву»). И мне видится, что улучшить QUIK, помимо исправления существующих, неизбежных ошибок, можно внеся в него следующие изменения/дополнения:
1) В текущей версии в одном основном потоке обслуживаются:
- запуск всех Lua-скриптов пользователя;
- запуск коллбеков всех Lua-скриптов пользователя;
-- обработка всех коллбеков таблиц QUIK (это не таблицы Lua);
-- обработка всех индикаторов пользователя.
 Притом, что в текущий момент у подавляющего количества ПК много ядер ЦП, написанное выше явный перебор. Мне, представляется, что нет проблем перечисленное выше обрабатывать в отдельных потоках. Иначе, это ограничение пользователя в использовании возможностей его ПК.
2) Интерфейс  взаимодействия QUIK c Lua-скриптом пользователя, реализованный в виде коллбекков, предполагает многопоточный режим использования Lua,. порождающий неприятные проблемы параллельного программирования (для решения которых сами же разработчики предлагают использовать потокобезопасную очередь между коллбеками и потоком main). Мне представляется, что имеет смысл вместо коллбеков использовать активную очередь событий, При этом не требуется использовать Lua в многопоточном, редко используемом и не очень стабильном режиме. При этом не будет проблем с подключением новых версий Lua. Более того, скрипты пользователя будут выполняться несколько быстрее из-за отсутствия синхронизации, требуемой в многопоточном варианте использования  Lua.
3) В QUIK реализована функциональность просмотра графика котировок бумаг QUIK. Но отсутствует возможность просмотра котировок бумаг, сохраненных во внешних файлах. С учетом существующей функциональности QUIK, как мне представляется, реализация этой возможности не потребует больших усилий.
Вопросы к спецам по Lua и Lua C API
 
В моем предыдущем сообщении фразу "nikolz написал:" читать: "Serge123  написал:"
Вопросы к спецам по Lua и Lua C API
 
1.
Цитата
nikolz написал:
Мне даже показалось, что вы имеете отношение к этому сайту.
 Действительно на этом сайте я написал несколько заметок. И когда я начал в 2019 г. разбираться с QUIK, то обнаружил, что для меня это самый полезный сайт.
 Но я в своем сообщении сослался не на ту заметку, про которую вы пишите, а на "Краткую справку по Lua", в которой, кстати есть и описание C API Lua с примерами.
 На этом же сайте есть как минимум один функционально законченный пример использования C API Lua от Дмитрия.

2
Цитата
Serge123 написал:
А тут мощь dll, которая оттранслирована с оптимизацией и поддержкой наборов вплоть до AVX2, будет кстати.
 И вы знаете как использовать эту мощь для получения дохода на рынке с помощью QUIK, обеспечивающего как минимум секундную реакцию на события рынка?  Возможно я ошибаюсь, но мне представляется, что вы пытаетесь "запрягать лошадь с хвоста".
 Вообще то, существует известная и проверенная временем методология разработки программ. Суть этой методологии в том, чтобы быстро получить работающий, модульный прототип и в конкретном случае это проще сделать используя Lua (а при необходимости готовые пакеты dll). А дальше выяснять проблемы (в том числе и с производительностью) и вносить изменения. С учетом того что Lua тесно интегрирован с C/C++  проблем с переходом из Lua в C нет, но это может и не потребоваться.
Вопросы к спецам по Lua и Lua C API
 
Ошибка в ссылке на справку по Lua. Правильно: https://quikluacsharp.ru/
Вопросы к спецам по Lua и Lua C API
 
Цитата
Serge123 написал:
Прямого ответа обычно не дают, а как-то ходят вокруг да около этого вопроса...
  На форуме много сообщений о том, что не надо писать сложно. Надо писать модульно, стараясь не создавать "зоопарк" программных средств , чтобы потом не было больших проблем с неизбежными изменениями.
  Практически любого робота для QUIK можно написать используя только Qlua (Lua). В сети есть много описаний (достаточно коротких) о том, что собой представляют таблицы Lua и как с ними можно работать (например, на сайте https://forum.quik.ru/ выложена краткая справка по Lua).  Зачем вы мучаетесь с C API Lua? Что вы не можете сделать в Qlua (Lua)?
Система принятия решений и/или Нечеткая логика(FuzzyLogic), Нечеткая логика или Система принятия решений в трейдинге
 
Цитата
VPM написал:
Подскажите пожалуйста, как можно сворачивать окно а при необходимости развернуть, получилось слишком большое окно не очень удобно.
   В окне ввода сообщений есть значок SP для вставки скобок спойлера. Внутрь этих скобок вставляется сворачиваемое.
CalcBuySell. Что не так?
 
Цитата
Владимир написал:
А ограничивать это НУЖНО! Софт и так на ладан дышит
  Не заметил проблем с производительностью. Действительно, ни микросекунды, ни тысячи тикеров, ни параллельные потоки, если кто понимает, не нужны. Для индивидуалов вполне можно обойтись несколькими десятками тикеров и реакцией в секунды. Тем более, что QUIK не позиционируется для безумной высокочастотной торговли.
CalcBuySell. Что не так?
 
Цитата
Владимир написал:
КАКОМУ ДЕБИЛУ понадобился "расчёт количества лотов конкретного инструмента с учётом состояния портфеля"? При чём тут плечи и вообще брокеры? Какое моё собачье дело до ИХ "представлений о рисках предоставления плеч для разных инструментов и разных в разное время"? На кой мне "максимально возможное количество лотов в заявке"?
  Ну, не все же гениальные как вы  :smile: . И какой то дебил это хочет знать. Ну и пусть. Зачем кого то ограничивать при наличии своих неограниченных способностей  :smile:?
os.sysdate() . Что-то в ней не так..
 
Цитата
nikolz написал:
Что не так с вашей функцией os.sysdate() ?
   Чтобы не повторяться ссылка: https://forum.quik.ru/messages/forum10/message73949/topic8137/#message73949
пункт 4).
CalcBuySell. Что не так?
 
Цитата
Владимир написал:
Если чел не способен самостоятельно посчитать такую ерунду, его надо поганой метлой гнать из программирования.
 Мысль интересная  :smile: . Я не умею считать такую ерунду.
 Пожалуйста, напишите формулу расчета количества лотов конкретного инструмента с учетом состояния вашего текущего портфеля, с учетом допустимых плеч у брокеров, зависящих об их конкретных представлений о рисках предоставления плеч (возможно, разных для покупки и шорта, разных для разных инструментов и разных в разное время). Если бы я знал риски брокеров по инструментам, то такую формулу бы написал. Вы экстрасенс  :smile: ?
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
не работает  #list.
  Читайте документацию. Там написано, что операция # применима только для строк и таблиц-массивов (это такие, в которых индексы строго от 1 до N без пропусков).
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
nikolz написал:
Херня это  все
У вас очередь - это массив. Если в массиве хранятся числа, то для них не отводится дополнительной памяти.
Но даже если Вы храните указатель, то сам элемент массива останется в памяти. Запись nil - это запись 0 в тип элемента массива.
Элементы массива никуда не денутся пока Вы не уничтожите весь массив путем записи nil в его имя.  а не в его элементы.
  Вы до сих пор не поняли что?:
Цитата
TGB написал:
  1. Под все данные, создаваемые непосредственно в Lua, память выделяется автоматически. Память, занимаемая неиспользуемыми (недостижимыми из скрипта: для сильно непонятливых это области данных недоступные из него) данными Lua, освобождается также автоматически (при сборке мусора).
  2. Где вы у меня прочитали, что я пишу про элементы массива? Вы до сих пор не научились читать :smile: ?
  3. Запись nil - это не запись 0 в тип элемента массива, а запись в скрипте nil в поле массива. При такой записи элемент массива становится не доступным.
      Если умеете читать, то почитайте документацию на Lua.
  4. Заодно ответ на ваш вопрос в ветке об os.sysdate().  
      Ваша формула: local tim=60.*(60. * T.hour + T.min) + T.sec + 0.001*(T.ms + 0.001*T.mcs)
неправильная. Правильно: local tim=60.*(60. * T.hour + T.min) + T.sec + 0.001*(0.001*T.mcs)
 Давно бы распечатали результат вызова os.sysdate().
  os.sysdate() выдает таблицу о текущей дате в следующем виде:
  -- [day] (number) = 28
  -- [hour] (number) = 19
  -- [mcs] (number) = 719755 -- мкс. --- #### Это поле не является дополнением к полю ms
  -- [min] (number) = 46
  -- [month] (number) = 11
  -- [ms] (number) = 719 -- млс. --- ####
  -- [sec] (number) = 6
  -- [week_day] (number) = 2
  -- [year] (number) = 2023
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
Владимир написал:
TGB , Я не просто думаю - я в этом уверен!

Эксперимент в QLua (можете повторить):
tbl = {1, 2, 3}
message (tostring (tbl))  -- Результат: table: 0000024208D734F0 - это ссылка на таблицу --
tbl = {1, 2, 3}
message (tostring (tbl))  -- Результат: table: 0000024208D727F0 - это ссылка на другую таблицу --
----
Ваш стек это, наверняка, некоторая таблица, и вы туда пишите, наверное, не только числа, но возможно
строки и таблицы, которые вы где то создаете или получает. И строки и таблицы в Lua не перезаписываются.
Если есть сомнения, то можете в своем скрипте отключить мусорщик следующим образом: collectgarbage('stop')
чтобы под ногами не путался :smile: .
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
Владимир написал:
При следующем всплеске активности скрипт просто перезабьёт новые данные в старые элементы - память под них уже выделена. А мусорщик сидит и молчит в тряпочку, а не путается под ногами. Сказка!
  Вы думаете, что если было выражение: tbl = {1, 2, 3} а вы потом вы написали еще раз tbl = {1, 2, 3}, то будет перезаписана область памяти из под первой таблицы?
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
Тогда хоть Вы поясните Очередь здесь применима как прием?
 Да.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Написано:
Цитата
TGB написал:
При перезаписи, если нет других ссылок на область памяти, то она будет удалена (почищена) мусорщиком.
Это значит, что память расти не будет.
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
А что если просто перезаписывать, я про пример из 5 элементов?  nil будет вызывать сборщик, а перезапись ну поменял элемент объем остался прежним?
  При перезаписи, если нет других ссылок на область памяти, то она будет удалена (почищена) мусорщиком. Под все данные, создаваемые непосредственно в Lua, память выделяется автоматически. Память, занимаемая неиспользуемыми (недостижимыми из скрипта) данными Lua, освобождается также автоматически (при сборке мусора).
Очереди и двойные очереди в луа, Пример из книги Р.Е.
 
Цитата
VPM написал:
подход максимальной локализации переменных, и по блочному их использованию, для таких пользователей как я оптимальный. И можно забыть про такое _G
 Да.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 13 След.
Наверх