Александр (Все сообщения пользователя)

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

Страницы: Пред. 1 2 3 4 След.
Обсудим диалог на Lua?
 
Цитата
Владимир написал:
Александр, Не заткнётесь... ну, повизжи лапуль, повизжи - по "методике вытравливания головожопых" говно должно отвизжаться.
Старче, расслабилось? Иди почитай документация по луа, чтобы детских вопросов не задавать.
Обсудим диалог на Lua?
 
Цитата
Владимир написал:
Александр, Лапуль, головожопые - это наш профиль, и вытравливаю я их вполне профессионально - просто не хочется этим заниматься ЗДЕСЬ. Может, заткнётесь по-хорошему, а?
И что сделаешь-то? Ты же ничего не можешь, даже не можешь документацию по lua прочитать. :lol:  
Обсудим диалог на Lua?
 
Цитата
Владимир написал:
Александр, Лапуль, я писал диалоговые программы, когда ещё никакого Win ваще не было, как и слова такого "api". OnInit мне НАФИГ НЕ НУЖЕН - есть main, и этого более, чем достаточно. И мне нужен диалог НА ЭТОМ языке, а не на какой-то подключаемой херне, написанной дядей Васей. Это не "решение", лапуль - это называется "говно".   Это при том, что С как раз мой любимейший язык на протяжении десятилетий, а Lua - очевидное говно. Но ЗДЕСЬ надо писать именно на Lua - язык ПОЛНОСТЬЮ обеспечивает необходимую функциональность - по крайней мере, для робота, которому все эти таблицы и весь этот диалог нафиг не нужны - это всего лишь дополнительный сервис для юзера, который торгует вместе с роботом.
Старче, не важно, что ты писал, важно, что пишешь. Я уже не о херне, написанной дядей Васей. Я тебе говорю о lua api, которая является частью lua и ПОЛНОСТЬЮ обеспечивает необходимую функциональность и доступность таблиц и функций QLua. Что ты пишешь на Си + lua api, что на луа - так это равнозначно и можно использовать. Можешь на Си вызывать все функции доступные в квике через Lua. В общем все, что доступно в Lua, доступно в lua api и даже больше. OnInit тебе нужен (если соберешься писать) для того, чтобы создавать свои собственные окна и не иметь проблем с потоками. Хотя можешь замутить обработку окна в потоке. Но я вангую, что не сможешь. :lol:  
Обсудим диалог на Lua?
 
Цитата
Владимир написал:
Александр, Лапуль, я УЖЕ сделал какой-никакой диалог на Lua. И сделаю лучше - именно это я и хотел бы обсудить здесь, КАК это лучше сделать. Отойдите в сторонку, плиз, не путайтесь под ногами.
Слова win api и msdn за 40 лет не смог осилить? Используй lua api и win api, на си делаешь лучше. На OnInit создаешь любые окна, диалоги, менюшки, гриды и т. д.
Собственно это и есть решение.
Обсудим диалог на Lua?
 
Цитата
Владимир написал:
Александр, Лапуль, я ПИСАЛ подобные библиотеки! И добрая половина моих программ как раз диалоговые - в том числе, для проверки подключаемых к PC электронных модулей, в т.ч. с собственными микропроцессорами (загрузчик и пошаговый отладчик таких "внешних" программ тоже писал). Ну куда Вы прыгаете с голой жопой против танка, мальчишка сопливый?    
Ну если писал подобные библиотеки, то мог бы догадаться, что сидишь в процессе квика, делаешь хук  WndProc и творишь все, что душе хочешь. Но ведь не шмогла, правильно? :lol:  
Обсудим диалог на Lua?
 
Цитата
Владимир написал:
Александр, Лапуль, я не только 40 лет программистом - я ещё и почти 30 лет (я в Инете с 1992 года) гоняю всякую полуграмотную распальцованную шушеру.   В то время, кстати, никакого Гугла ещё и в помине не было, Альтависта была. И Яндекс уже был, и я был лично знаком с Ильёй Сегаловичем (была у нас одна совместная работёнка).

Я же сказал: меня НЕ ИНТЕРЕСУЮТ "сторонние библиотеки", меня интересует организация диалога на языке Lua! Сколько раз повторить, чтобы дошло, наконец?
Такие старые 40 летние пердуны программисты не могут понять, что без сторонних библиотек этого не делать. :lol: Это, братан фиаско! :lol:  
Изменения в работе с колбеками LUA в новой версии
 
Цитата
Egor Zaytsev написал:
Цитата
Александр написал:
 
Цитата
nikolz  написал:
 
Цитата
 swerg   написал:
Ладно, хрен с ним с этим троллем.
Я на самом деле никак не могу получить ответ на свой вопрос, который давно меня заботит.
Ну вот как это сделано в метатрейдере, в других терминалах? нигде ж нет никакого main(). Есть по сути просто скрипт с колбеками (да? я не ошибаюсь?)
И вот когда в этих системах прекращается вызов этих колбеков?? я никак не могу этот момент найти, или ищу плохо.
Или там после запуска скрипта вызов из него колбеков никогда не прекращается?
Расскажите, а
  Вообще-то, решение в виде бесконечного цикла ,
которое обеспечивает работу системы известно давно и широко используется, например в ОС микроконтроллеров (arduino).

Такое решение типично для одноядерных SOC.

Полагаю что проблема КВИКа в том,
что VM LUA встраивалась в уже готовую систему,
вместо того, чтобы дать пользователям нормальный API к функциям торгового терминала.

Кроме того, как неоднократно подчеркивали сами разработчики, они встраивали луа не для разработки торговых роботов , а для буратин и хрен знает зачем.
 Чтобы заменить QPile :)
Вопрос к разработчикам: Когда выйдет новая версия?
Добрый день.

Новая версия Lua? Сроков к сожалению назвать не можем. Следите за обновлениями.
Когда будет версия, в которой разработчики изменят работу с коллбэков Lua.
Обсудим диалог на Lua?
 
Владимир,Тебе уже сказали, чтобы реализовать твои хотелки надо использовать сторонние библиотеки, например VCLua или писать свой пипелац.
Но настоящие программисты идут своим путем  :lol:
Из коробки нет и вероятно не будет.
Обсудим диалог на Lua?
 
Владимир,Загугли уже VCLua. Ой, а Программист с 40-м стажем не умеет гуглем пользоваться, поэтому страдает  :lol:
Ой, а Программист с 40-м стажем не может осилить библиотеку.  :lol:  
Изменения в работе с колбеками LUA в новой версии
 
Цитата
nikolz написал:
Цитата
swerg написал:
Ладно, хрен с ним с этим троллем.
Я на самом деле никак не могу получить ответ на свой вопрос, который давно меня заботит.
Ну вот как это сделано в метатрейдере, в других терминалах? нигде ж нет никакого main(). Есть по сути просто скрипт с колбеками (да? я не ошибаюсь?)
И вот когда в этих системах прекращается вызов этих колбеков?? я никак не могу этот момент найти, или ищу плохо.
Или там после запуска скрипта вызов из него колбеков никогда не прекращается?
Расскажите, а
Вообще-то, решение в виде бесконечного цикла ,
которое обеспечивает работу системы известно давно и широко используется, например в ОС микроконтроллеров (arduino).

Такое решение типично для одноядерных SOC.

Полагаю что проблема КВИКа в том,
что VM LUA встраивалась в уже готовую систему,
вместо того, чтобы дать пользователям нормальный API к функциям торгового терминала.

Кроме того, как неоднократно подчеркивали сами разработчики, они встраивали луа не для разработки торговых роботов , а для буратин и хрен знает зачем.

Чтобы заменить QPile :)
Вопрос к разработчикам: Когда выйдет новая версия?
Изменения в работе с колбеками LUA в новой версии
 
Цитата
swerg написал:
Ладно, хрен с ним с этим троллем.
Я на самом деле никак не могу получить ответ на свой вопрос, который давно меня заботит.
Ну вот как это сделано в метатрейдере, в других терминалах? нигде ж нет никакого main(). Есть по сути просто скрипт с колбеками (да? я не ошибаюсь?)
И вот когда в этих системах прекращается вызов этих колбеков?? я никак не могу этот момент найти, или ищу плохо.
Или там после запуска скрипта вызов из него колбеков никогда не прекращается?
Расскажите, а
В метатрейдере скрипт работает в отдельном потоке. В метатрейдере скрипт работает пока пользователь его не завершил или не возникла ошибка.
В квике скрипт выполняется в 2-х потоках: цикл, который вызывает колбеки и работает в основном потоке + пользовательский цикл, который работает в отдельном потоке, чтобы пользователь смог в нем реализовать какие-то необходимые действия. Если пользовательский цикл прекращает работу, то прекращается основной цикл. В итоге в квике пользователь может получить доступ к данным из 2-х потоков, что может вызывать лишние проблемы.
В общем все сводится к тому, что надо было изначально делать работу скрипта в одном потоке. В квике очень плохо спроектированное api, из-за которого возникает множество проблем и приходится создавать лишние "костыли". Поэтому я лучше буду использовать lua api и всю логику работы робота выносить в другой процесс.
Изменения в работе с колбеками LUA в новой версии
 
Исполнение скриптов на разных версиях квика потребует разных алгоритмов.
Изменения в работе с колбеками LUA в новой версии
 
TGB, В третьем варианте все будет выполняться в одном потоке и привет переписывание скриптов.
Изменения в работе с колбеками LUA в новой версии
 
Можно в качестве предложения внести одновременную поддержку lua5.1 + jit и lua5.3 + ravi
https://luajit.org/
https://github.com/dibyendumajumdar/ravi
Предложение к разработчикам
 
Цитата
Владимир написал:
Александр, Затем, что разговаривать с Вами я не хочу, и разжёвывать свои действия не собираюсь. Не захламляйте ветку, плиз.
Захламляете ее вы своим тролингом и токсичным поведением.
Предложение к разработчикам
 
Цитата
Владимир написал:
Александр, Я пишу не Вам. И давно.
Не про меня и речь-то. Зачем?
Предложение к разработчикам
 
Цитата
Владимир написал:
Александр, Я уже отвечал на это. А также говорил: что и как мне делать, я всегда решаю САМ!
Решайте конечно. Но вопрос не об этом, а о том, зачем вы все это пишите?
Предложение к разработчикам
 
Цитата
Владимир написал:
Александр, Ну это ещё вопрос, у кого из нас понос.   Мне как раз НРАВИТСЯ оператор goto, о чём я здесь 100500 раз проговорил открытым текстом. Мне не нравится эта кастрированная пародия на goto, о чём я тоже говорил открытым текстом. Мне не нравится эта долбаная "динамическая типизация", мне не нравится, что скрипт мой до сих пор иногда теряет управление при останове, хотя я буквально все обращения во второй поток обвистовал анализом флага останова (и сама необходимость такого анализа мне тоже не нравится). И вообще, "интегральная" оценка здесь неуместна: мне ОЧЕНЬ нравится наличие loadstring, возможность построения дерева объектов, сервис для работы с файлами и ещё кое-что по мелочи. Но это не значит, что должно быть "либо-либо": есть конкретные недостатки языка, конкретные недостатки реализации, их можно и нужно исправлять!

Никто никому ничего не должен. Я неоднократно имел возможность убедиться, что Антон - программист очень высокой квалификации, и хотел бы услышать его рекомендации. Его, а не Ваши, если уж совсем честно.
Свои "не нравится" пишите в на форумах, где обитают разработчики Lua. Здесь ведь никто ничего дорабатывать в луа не будет.
Предложение к разработчикам
 
Цитата
Владимир написал:
:: Угу.

Рассказали бы мне лучше, что там надо читать по OnTrade. Я вижу, что она правильно возвращает price, qty и sec_code, а больше мне, кажись, ничего и не надо. Что там нужно контролировать? Кроме того, я тут краем уха видел жалобы, что прерывание это может приходить неоднократно или вообще не приходить. И, заодно, как посылать заявки. Ну и, до кучи, чем ловить и как обрабатывать события от юзера.
Что все должны делать, как вы?
Предложение к разработчикам
 
Цитата
Владимир написал:
Александр, НА КОЙ мне, простите, стек Lua? Равно как и стек процессора? Ни тот, ни другой мне нафиг не нужны. Я просто сказал, что goto в Lua - это не оператор, а говно, и пользоваться им не имеет смысла. Сказал буквально в двух строчках одного коммента! А плотом пошла бурная "дискуссия", да ещё временами с гнутыми пальцами. Я-то здесь при чём? Не лучше ль на себя, кума, оборотиться?
Зачем вы тут свой эмоциональный понос изливаете? Вам не нравится оператор goto, я не нему вообще никак не отношусь. Язык Lua мне в целом нравится из-за поддержки lua api. Это вопрос отношения.
Предложение к разработчикам
 
Владимир,не надо путать стек процессора и стек Lua - это разные стеки. Вам бы документацию почитать и хорошенько разобраться в луа, глупых комментариев убавилось бы в разы.
Или вы тут тролем заделались?
Микросекунды в дате
 
Я не считаю ситуацию не правильной, просто хочу, чтобы в хелп по qlua.chm была внесена соответствующая сноска.
Микросекунды в дате
 
Цитата
Roman Azarov написал:
Александр,

Уточните, пожалуйста, о каком поле идет речь?

У сделки есть 2 параметра времени:
Время - время регистрации сделки в торговой системе с точностью до секунды.
Время (мкс) - количество микросекунд во времени регистрации сделки.

Цитата
Александр написал:
А у вас получается mcs = ms*1000+mcs - не совсем корректно получается.
Просим предоставить снимок экрана, где непосредственно наблюдается подобное поведение.

При получении таблицы с датой и временем в поле mcs такая же ситуация.
Изменения в работе с колбеками LUA в новой версии
 
Разработчики написали в письме:
Цитата
 В ближайшей версии мы изменим работу с коллбэками Lua. Ожидаем, что изменения исключат возникающую ошибку.  
Могли бы разработчики более подробно описать грядущие изменения?
Предложение к разработчикам
 
Цитата
Владимир написал:
Александр, А что тут "разбираться"? Этот придурок не пускает внутрь блока if - что у меня, что в вашем примере.
Луа - стековый скрипт. Поэтому стек должен быть всегда определенным.
Внутри блока if может поменяться стек, поэтому может произойти сбой,
если программа сделает goto внутрь блока if.
Вот пример попроще.
do
 goto ok
 local i = 1;
::ok::
 print(i);
end
Перестаньте говнокодить. Займитесь наконец изучением языка, на котором программируете.
Такое ощущение, что вам все что-то должны.
Не нравится, есть луа апи + ваш любимый си, или есть метатрейдер, multichart, tradingview и вероятно еще большая масса платформ.
Предложение к разработчикам
 
Владимир, Сначала разберитесь в отличиях скриптового языка от нативного.
А потом уже изливайте желчь.
Код
function main()
  local num;
  num = 1;
  --goto test
  if (num == 1) then
    goto test
::test::
    message("goto yes", 1)
    return;
  end;
::test::
    message("goto yes1", 1)
end;
 
На демо сервере junior quik не передается таблица firms при смене пользователя
 
Цитата
Старатель написал:
Цитата
Andrey Bezrukov написал:
ожидать первого OnFuturesClientHolding - также может быть использовано
Великолепный ответ!
Только если позиции по фьючерсам не открыты, будете ждать вечно.
Вы же знаете, открывали вы сделки или нет.
Микросекунды в дате
 
Цитата
Roman Azarov написал:
Александр, добрый день!

Опишите пожалуйста подробнее, в чем именно заключается проблема?
Желательно с примером.
У вас есть отдельное поле ms для Миллисекунд.
В одной 1 миллисекунде = 1000 микросекунд.
А у вас получается mcs = ms*1000+mcs - не совсем корректно получается.
Предложение к разработчикам
 
Цитата
TGB написал:
Все проблемы, не решаемые в собственно Lua, могут решаться в C/C++. Нужна высокая производительность, переходим в C/C++. Нужен типизированный язык переходим туда же. Не хватает каких-то функций, переходим туда же.
В Lua и так все что можно оптимизировали. Попробовал сохранение в файл таблицы всех сделок сделать через Lua Api на Delphi. Не получилось сделать быстрее, чем на Lua.
Вопросы Новичка
 
Цитата
Maksimus написал:
Я сегодня уже написал разработчикам, что это гнилой язык. Читаю посты людей, у многих не получается кодить на этом языке. Поддержка очень сухо отвечает! Короче,лично я совсем не доволен данным языком. Синтаксис вообще убожеский!! Наверно не буду его изучать,лучше буду кодить на MQL4-5. Достало этот непонятное подобие языка программирования!!
Lua нормальный язык, у которого очень приятное api. Разработчикам квика лучше прикрутить jit и была бы бомба.
А вот MQL4-5 явно не до язык: нормально кол-беки не вызвать или интерфейсы. Приходится вариться внутри MT экосистемы,
которая до сих пор находится в каком-то зачаточном состоянии с 2000 годов. И в MQL и MT  своих заморочек хватает.
Такое ощущение, что вам все должны. Документации по Lua много, исходники есть (что не скажешь об MQL).
На вопросы отвечают.
Изменяется порядок нахождения сделок в таблице all_trades в зависимости от параметров таблицы все сделки.
 

Таблица всех сделок опять начала чудить.
Микросекунды в дате
 
В дате у сделки следующий формат
mcs NUMBER Микросекунды
ms NUMBER Миллисекунды
sec NUMBER Секунды  
min NUMBER Минуты
hour NUMBER Часы
day NUMBER День
week_day NUMBER Номер дня недели
month NUMBER Месяц
year NUMBER Год
mcs = ms*1000+mcs - не чистые микросекунды. Можно исправить проблему или хелп?
Как определить используемую версию версию синтаксиса lua в терминале ?
 
Цитата
Андрей написал:
Подниму тему, потому что ответа в ней так и не прозвучало!!! В который раз!
Парни! Поддержка! У вас человек спрашивал ПО КАКОМУ АДРЕСУ НАХОДИТСЯ ИСПОЛНЯЕМЫЙ ФАЙЛ ИНТРЕПРЕТАТОРА LUA ИЛИ ПО КРАЙТЕЙ МЕРЕ ЕГО ТЕКУЩАЯ ВЕРСИЯ!!!!! Или по другому: куда QUIK устанавливает свой интерпретатор LUA, которым он пользуется!
МЕНЯ ЭТО ТОЖЕ ИНТЕРЕСУЕТ.
Объясняю для тех кто в танке: при использовании сторонних IDE требуется указывать локальный адрес интерпретатора. Так вместо того, чтобы самому методом тыка подбирать соответствующую версию и потом еще следить за их соответствием между QUIK и IDE, можно же просто в IDE указать путь к интерпретатору QUIK и не париться потом с его сопровождением, обновлениями и синхронизацией версий!!!!
То есть, зная путь, можно сделать так, чтобы ваша IDE автоматически использовала тот же интерпретатор что и QUIK, со всеми его обновлениями и пр. Если же вы все же на кой-то ляд зашили его в код, тогда где искать номер его сборки?!
В папке квика lua53.dll
Может ли быть задержка в обновлении DataSource?
 
Может, это разные потоки: таблица параметров и графики.
Графики строятся из таблицы все сделок или приходят с сервера.
Предложение к разработчикам
 
Цитата

The goto statement transfers the program control to a label. For syntactical reasons, labels in Lua are considered statements too:    

stat ::= goto Name stat ::= label label ::= ‘::’ Name ‘::’

A label is visible in the entire block where it is defined, except inside nested blocks where a label with the same name is defined and inside nested functions. A goto may jump to any visible label as long as it does not enter into the scope of a local variable.  

https://www.lua.org/manual/5.3/manual.html
Пункт 3.3.4
В твоих способностях сомнения :lol:  
Предложение к разработчикам
 
Цитата
Владимир написал:
Александр, Я умею и читать документацию и гуглить, но если для того, чтобы узнать, что goto существует, нужно ГУГЛИТЬ, то это очередная УБИЙСТВЕННАЯ характеристика языку! Не говоря уже про "continue эмулировать". А в стандартном описании языка нет ни звука ни про метки, ни про goto, ни даже про loadstring, которая уж точно есть, и я ею активно пользуюсь.
Есть все, выучи английский.
Предложение к разработчикам
 
Владимир, Вот еще вариант типизации lua - teal language https://github.com/teal-language/tl
Было бы желание, можно разобраться.
Предложение к разработчикам
 
Пожелание для разработчиков: рассмотреть возможность добавления в квик типизированного языка в ravi над lua 5.3  https://github.com/dibyendumajumdar/ravi
Предложение к разработчикам
 
Владимир,Если бы ты умел читать документацию и гуглить, то наверное понял, что хотелки твои уже реализованы.
Оператор goto в языке присутствует. Countinue - можно при желании эмулировать.
А еще есть такая штука https://github.com/dibyendumajumdar/ravi
Предложение к разработчикам
 
Цитата
Владимир написал:
В своём коде я "обвистовал" все присвоения tostring или tonumber - пока работает (а мне, собственно, осталось только отладить подачу заявок и контроль их исполнения, да обработку событий от юзера), но замечания к реализации остались. На код глядеть местами тошно, но это мелочи. Однако, есть и довольно важные замечания. Попробую их изложить по группам:

I. Настоятельно рекомендуемые к исправлению:

1. У меня  все до единого  обращения к функциям другого потока (SetCell, SetColor и прочие) выполняются только после контроля флага останова. Тем не менее, даже после этого мне доводилось пару раз так "удачно" нажать на кнопку "остановить", что управление в main больше не возвращалось, скрипт завершался принудительно, и вместо записанного файла результатов работы скрипта я получал шиш с маслом. Здесь уже высказывалось мнение, что это "на 100% зона ответственности QUIK, и я с ним согласен. Я отслеживаю эту ситуацию по наличию или отсутствия финального message("Скрипт остановлен!") и по нулевому размеру файла результатов, но это же ненормально! Как и бесконечные "if f then ... end".

2. Как и первое предложение, это высказывалось уже давно, и не исправляется ГОДАМИ! Как и в первом случае, я не понимаю (и не хочу понимать!) почему "для того, чтобы строки отображались, необходимо, чтобы вызов CreateWindow() производился ДО процедуры добавления строк в таблицу". Здесь участники дискуссии, на мой взгляд, очень убедительно показывали, что такого быть не должно, но хотя бы внесите в описание языка эту "особенность"! Ведь многие (особенно новички) даже не подозревают о таких "нюансах" и тратят многие часы на отладку того, что в принципе не может быть отлажено.

3. Некоторые функции допускают необязательные аргументы (например, основание системы счисления в tonumber), а другие - нет. Так,
SetColor (iTable, iRow, iCol, BCol, TCol)
НЕ работает, а если подставить туда два дополнительных аргумента , SelBCol, SelTCol, равные QTABLE_NO_INDEX (-1) - начинает работать! Поскольку мне совершенно не были нужны выделенные ячейки, до необходимости переделать вызов в
SetColor (iTable, iRow, iCol, BCol, TCol, SelBCol, SelTCol, -1, -1)
без подсказки от службы техподдержки я бы просто не додумался НИКОГДА!

II. Очень хотелось бы, но это уже скорее ненаучная фантастика:

1. Определение типов данных программистом, типа STRING s, NUMBER n, BOOLEAN b, и чтобы интерпретатор не имел права менять указанный тип данных  ни при каких обстоятельствах  (вылетал бы с ошибкой). Хотя бы как дополнение к существующей "динамической типизации" (а лучше как полная её замена).

2. Вернуть "украденный" целочисленный тип данных (INTEGER i) и операции булевой алгебры для работы с ними (and, or, not или, в сишном синтаксисе, &, |, ^, >>= и т.д).

3. Отделить ключи от индексов. Точнее, ввести индексы в их классическом понимании как порядковый номер элемента в массиве (автоматически получая возможность задавать именно массивы, а не "таблицы Lua"), а также структуры данных (и, соответственно, возможность определять таблицы как массивы структур или, в реляционной терминологии, как массивы кортежей). Это, к тому же, заставит нумеровать массивы либо с нуля, либо с единицы, а не как Бог на душу положит. Для меня в своё время стало открытием, что определив таблицу как T={} я спокойно заполняю её данными, начиная с нулевого индекса, а если начинаю инициализировать вроде:
Q = { 0x999999, 0xFFFFFF, 0x99FFFF, 0x99FF99 };
то для обращения к первому элементу требуется указать именно 1, а не 0.

III. Синтаксис

1. В циклах имеется break, а вот continue почему-то нет (про goto я просто молчу).

2. Неплохо бы вообще приблизить синтаксис к совершенно гениальному языку C (фигурные скобки вместо "паскалевских" begin-end - тем более, что никакого begin как начало блока здесь вообще нет), возможность определять константы (#define), возможность условной трансляции/исполнения (#if) - тогда языку просто цены не будет!  ::  
Исходники lua 5.3 есть. Сделай форк и пиши свой луа так, как тебе хочется.
Цитата
_sk_ написал:
Да откуда же вы такие берётесь?    
А откуда берутся дураки с высоким самомнением, полным отсутствием способностей и не способностью искать информацию, учиться и признавать ошибки?
Более быстрый способ, all_trades
 
Можно воспользоваться корутинами, но навряд ли увеличит скорость.
Более быстрый способ, all_trades
 
Цитата
Костя написал:
Сами
Цитата
nikolz написал:
 
Цитата
Костя  написал:
 
Цитата
 nikolz   написал:
Все смешалось - кони,люди

Зачем нагородили кашу из луа и шарпа?

Все делается без шарпов на луа без проблем.
--------------------------------------------------------------------------------------
Мы не ищем легких путей.  
Создадим себе трудности, чтобы потом искать того, кто их преодолеет для нас..
  В ОБЩЕМ проблема не решена

Квиж жутко тормозит  и набиваем массив
 Освойте сначала луа а потом пишите на шарпе
нет желания разбираться с вашей кашей.
где же каша  ,вы в пару строк кода не можете разобраться
поясняю

function qsfunctions.all_trades(msg) -  // принимаю мессендж  в нем название  котировки
   local инструмент = msg.data .// инструмент =равен .например brx0
   local count = getNumberOf("all_trades") // кол- во  значений в таблице
   local t = {} -создаю массив
   for i = 1, count-1,1 do
     trades = getItem("all_trades", i)    // получаю строку  из таблицы all_trades
       if msg.data == "" or trades.sec_code == инструмент  and trades.datetime.hour >= 10 then
           t[#t+1] = trades // заношу  ее в массив
       end
   end
   msg.data = t  //как только  массив  из  all_trades заполнен // отправляю его в шарп.
   t = {} // очищаю массив
   return msg
end
===================
вернемся к моему вопросу,  как мгновенно получить  сразу  таблицу   обезличных сделок ?
В вашем случае никак. Передавайте записи в шарп, а не добавляйте его в отдельную таблицу. На это уходит лишнее время.
Функции onInit, onStop, onClose
 
Цитата
s_mike@rambler.ru написал:
Цитата
Владимир написал:
Sergey Gorokhov ,  
Цитата
Ваши посты переданы модератору для анализа.
  ::
 
Цитата
Разве? А это что?
 А это НЕ задание SP как числа - это всё тот же грёбаный "антиллехт"! Вот если написать:
float SP=0;
это было бы уже задание SP как числа! Не говоря уже про
int SP=0; - о таком я и мечтать не смею!  
Цитата
И наша рекомендация, на оборот, везде в индексах использовать числа, а не строки.
 Блин, я ПЕРЕДАВАЛ! Ещё хуже! Только на строки надежда, ибо в Lua вообще ничего нет, кроме строк! Кстати, для интерпретатора это НОРМАЛЬНО! Между прочим, я вообще отказался передавать в таблицы Lua и числа, и строки -- язык путает ключи с индексами, а потому надежнее перебить все строки таблицы заново! Маразм? Конечно! А что делать?
слушай, хорош бредить...
Вот я же говорил, Владимир, человек не адекватный.
Более быстрый способ, all_trades
 
Костя,Можно воспользоваться CreateDataSource и создать тиковый график. Там есть ограничения на данные, но как вариант решения проблемы.
перестало работать снятие активной заявки
 
Цитата
Владимир написал:
Александр, А зачем там вообще double? Код заявки - ЦЕЛОЕ число! Эксперимент показал, что его разрядности достаточно. Какому дебилу понадобилось объединить int и float в идиотский number, да ещё и на уровне исполнения использовать именно float? Мало других способов поймать приключения на свою задницу?
Как бы по мягче сказать, что вы не разбираетесь в теме.
Повторю в квике 7, lua 5.1 - в нем не числа хранятся типом double, соотвественно нельзя хранить int64.
В квике начиная с 8.4 lua 5.3 - числа хранятся в int64 - все работает.
Цитата
В какую сторону копать, quik 7.6.1.1
Поняли? Я уже сомневаюсь в ваших способностях в чем-то разбираться.
перестало работать снятие активной заявки
 
Aleksandr,можно получать OnTransReply и в result_msg вытащить номер заявки. Больше ни как не получится.
перестало работать снятие активной заявки
 
Что с вами не так? Игорь вас же уже направил на правильный путь.  В луа 5.1 по-умолчанию Double - не влезают 19-ти значные заявки в Double физически.  :shock:  
Более быстрый способ, all_trades
 
Цитата
Костя написал:
function qsc.all_trades(msg)
   local sec_code1 = msg.data
   local count1 = getNumberOf("all_trades")
   local depo_limits1 = {}
   for i = 1, count1-1,1 do
       local depo_limit2 = getItem("all_trades", i)    
       if msg.data == "" or depo_limit2.sec_code == sec_code1 and depo_limit2.datetime.hour >= 10 then
           table.insert(depo_limits1, depo_limit2)
       end
   end
   msg.data = depo_limits1
--    depo_limit2 =0
   return msg
end
=========================
Написал такой  код по образцам, он работает но очень долго

 занимает от  1-мин до 10 000
скажи пожалуйста , как можно быстро  получить всю таблицу обезличенных сделок не через Цикл , а весь  массив уже распарсить на шарпе,  как передать  байты  или Сразу все таблицу

например есть qscalp , у него занимает это 10  сек,  как такое вообще сделать можно ?
поясните пожалуйста
1. Qscalp - сделан на луа апи
2. Передача идет через FileMapping
3. Зачем создавать отдельную таблицы? Надо просто отослать строку в шарп. А лучше передавать всю таблицу в шарп, так быстрее получится. Время передачи до 2 мин., когда (> 1 млн записей)
SearchItems - костыль и вам скорее не поможет, потому что вы не правильно данные отправляете.
Работа main() при наличии 1 ядра
 
Цитата
Imersio Arrigo написал:
Цитата
Anton написал:
Выделю в процитированном для привлечения внимания
Цитатав
каждый момент времени с луа работает либо мейн, либо колбек.
Хочешь сказать когда Квик в колбеке - майн стоит?
Он же в отдельном потоке? Или там какая-то внутренняя кухня луа, не позволяющая одновременно двум стейтам из двух потоков работать?
Нет, в квике доступ к таблицам потокобезопасный. Соотвественно, если доступ к одной таблице может получить только один поток, другие будут ждать.
Работа main() при наличии 1 ядра
 
Цитата
Христиан написал:
Здравствуйте, хочу поставить Quik на VPS сервер чтобы работал там круглосуточно, волнует вопрос, как будет работать main() в отдельном потоке при наличии только 1 ядра? Все ли будет работать или нужно минимум 2. Поправьте если я чего-то не понимаю, спасибо
Потоки будут выполняться по очереди и не будет параллельности.
Страницы: Пред. 1 2 3 4 След.
Наверх