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

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

Страницы: Пред. 1 2 3 4 5 След.
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Александр, Сделай секцию экспорта в C# библиотеке: сначала деасемблировать, потом  прописывать флаги и секции, потом обратно скомпилировать. Я специально программу написал, которая  такое делает.
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Цитата
Виталий написал:
Цитата
Александр написал:
 
Цитата
Виталий  написал:
 
Цитата
 swerg   написал:
   
Цитата
  Виталий    написал:
И что не так? В этой либе мне нужно использовать CLR, там будут формы. Как сам факт поддержки CLR (без каких-либо вызовов) влияет на выгрузку библиотеки?
   
Как минимум - вот оно коренное отличие вашей DLL от моей, а вовсе не версия QUIK.
Ну и видимо передавайте привет .NET и особенностям ее работы.

   
Цитата
  Виталий    написал:
(без каких-либо вызовов) влияет на выгрузку библиотеки?
   
Вы может и не вызываете, но раз хотите .NET - оно там очень могуче напрягается, чтобы вам его предоставить.
Вам наверное будет не сложно пока отключить использование .NET и проверить.
  Пока не сложно. Проверил. Без NET выгружается. Другой вопрос: как обеспечить выгрузку с NET, не знаете? Полагаю, спрашивать разрабов квика бесполезно про это...
 Способов подключения сборок на си++ как минимум 2: 1. это использовать управляемый код. 2. Использовать интерфейсы и самостоятельно загружать сборки.
Тот и другой способ гуглится.
Но возможно стоит начать вот CoInitializeEx и CoUninitialize.
Но я бы советовал сделать отдельное приложение на .net и передавать туда данные, например по сети.
Не, приложение с передачей данных это такое себе. Это как C# приложение с коннектором C++ - древняя тема и такая же нестабильная. Я пробовал ее году в 2015 еще, че-то не зашло. Я тогда ушел на LUA чистый и его хватало. Сейчас появилась потребность в более нормальном языке, чем LUA и я нашел вариант с подключением библиотеки. Я продолжил бы писать на C# (его знаю, а С++ нет), но проблема в том, что на шарпе нет нормального способа сделать либу. Есть какой-то полукостыльный и он мне не понравился и результат сомнительный. Интерфейсы на чистом Win API тоже не осилил как-то. Вот прикрутил CLR, но оно вон че оказалось. Буду еще смотреть, что дальше делать, но куча посредников между биржей и моим алгоритмом - это печаль и зло. Хочу поменьше, чтоб стабильнее и быстрее было.
Сделай секцию экспорта в C# библиотеке: сначала дезасемблировать, потом прописывать флаги и секции. Я специально программу написал, которая такое делает.
И можно использовать LoadLibrary на стороне луа и все другие вкусняшки.
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Виталий, По первому способу
https://www.codeproject.com/Articles/35041/Mixing-NET-and-native-code
https://docs.microsoft.com/ru-ru/cpp/dotnet/mixed-native-and-managed-assemblies?view=msvc-160
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Виталий,По второму способу начинай изучать с CLRCreateInstance, ICLRMetaHost, ICLRRuntimeInfo, ICorRuntimeHost
Некорректная выгрузка DLL при завершении скрипта, Некорректная выгрузка DLL при завершении скрипта
 
Цитата
Виталий написал:
Цитата
swerg написал:
 
Цитата
Виталий  написал:
И что не так? В этой либе мне нужно использовать CLR, там будут формы. Как сам факт поддержки CLR (без каких-либо вызовов) влияет на выгрузку библиотеки?
 
Как минимум - вот оно коренное отличие вашей DLL от моей, а вовсе не версия QUIK.
Ну и видимо передавайте привет .NET и особенностям ее работы.

 
Цитата
Виталий  написал:
(без каких-либо вызовов) влияет на выгрузку библиотеки?
 
Вы может и не вызываете, но раз хотите .NET - оно там очень могуче напрягается, чтобы вам его предоставить.
Вам наверное будет не сложно пока отключить использование .NET и проверить.
Пока не сложно. Проверил. Без NET выгружается. Другой вопрос: как обеспечить выгрузку с NET, не знаете? Полагаю, спрашивать разрабов квика бесполезно про это...
Способов подключения сборок на си++ как минимум 2: 1. это использовать управляемый код. 2. Использовать интерфейсы и самостоятельно загружать сборки.
Тот и другой способ гуглится.
Но возможно стоит начать вот CoInitializeEx и CoUninitialize.
Но я бы советовал сделать отдельное приложение на .net и передавать туда данные, например по сети.
Изменения в работе с колбеками LUA в новой версии
 
Цитата
TGB написал:
Цитата
Nikolay написал:
Не думаю что пойдут на изменение синтаксиса. Я бы больше ожидал стабильности и предсказуемости в вызовах. Сейчас только несколько колбеков типа подключения-отключения-ответ транзакции можно использовать.Остальные не вызывают доверия и надежней баз них. А то когда у тебя колблек от событий прошедших часы назад прилетает после перезапуска терминала, то проще не смотреть на них.
   ARQA, имхо, придется, скорее всего, пойти на изменения API по следующе причине:
1) проблеме реализации многопоточности QLua 5.3, которую они не смогли решить до сих пор (с марта 2020 до ноября 2020г.).  
А что не так с многопоточностью то QLua 5.3?
Lua-таблицы. Интерфейс. Управление свойствами lua-таблиц., Как тонко настроить lua-таблицу? Механизмы взаимодействия пользователя с lua-таблицами.
 
Цитата
Alexey Ivannikov написал:
Цитата
Александр М написал:
У меня есть двустороннее соглашение со своим брокером, в рамках которого он мне в том числе поставляем Ваше программное обеспечение QUIK, за которое берет арендную плату. Этого достаточно, чтобы тех.поддержка по данному ПО работала.
В таком случае у Вашего брокера и его техподдержки Вы и вправе что-то требовать, если, конечно, это прописано в Вашем договоре с ним. Что касается общения с нами - просим не использовать такие термины. Мы не обязаны делать Вам личный кабинет, давать "в ЛЮБОЙ момент увидеть статус реализации данных пожеланий, его приоритет, а также ориентировочный срок внедрения".


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

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

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

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

Новая версия Lua? Сроков к сожалению назвать не можем. Следите за обновлениями.
  Когда будет версия, в которой разработчики изменят работу с коллбэков Lua.
Как уже сообщили сроков назвать не можем. Следите на обновлениями.
Раскройте хотя бы тайну: это будет 2-х потоковая схема или одно потоковая (и придется все скрипты переписывать)?
Обсудим диалог на 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
 
Можно воспользоваться корутинами, но навряд ли увеличит скорость.
Страницы: Пред. 1 2 3 4 5 След.
Наверх