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

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

Страницы: 1 2 3 След.
Что с параметром NUMCONTRACTS в 9.2.1.4?
 
Никто не сталкивался? У всех нормально работает?
Что с параметром NUMCONTRACTS в 9.2.1.4?
 
Ранее получал число открытых позиций через getParamEx...NUMCONTRACTS
Теперь вижу появился другой параметр "Открытый интерес", в интерфейсе квика, для которого нет имени в справки а по старому имени возвращается 0.
Как получить открытый интерес?
9.2.1.4 не обновляется цена в таблице Состояние счёта
 
Обновился утром до 9.2.1.4, сейчас после 10-00 в таблице Состояние счёта у Сбербанка цена висит 333р и вообще не обновляется.
До обновления такой проблемы не наблюдал
При этом прибыль/убыток дня рассчитывается и меняется динамически
Падает при замене инструментов
 
Насколько я могу судить, если в таблице Текущие торги есть старый и новый фьючерс, то при появлении окна Замена инструментов, если согласиться заменить старый фьючерс на новый (так что их становится как бы два), квик падает.
Проверял и на 9.1 и на 9.2 - одинаково.
dmp не создаётся.
Если согласиться заменить все инструменты кроме "старого" на "новый" который уже есть - то не падает.
В моём случае это было SBRF-9.21 и SBRF-12.21
Тормозит Квик при выставлении заявки, Проблема с Квик
 
Цитата
Сергей написал:
https://forum.quik.ru/forum1/topic1539/
если не секрет, что именно помогло снять тормоза при работе с окном заявки?
у меня не на 5 секунд, а на все 5 минут окно зависает, при том что памяти свободно, процессор core i7 и сеть 1Gb и диск SSD со скоростью 3Gb/s
но Квику всё равно
Отладка QUIK 8.13
 
Цитата
BlaZed написал:
Предлагаю разработчикам добавить в Информационное окно, ну и соответственно в функцию getInfoParam возможность получения информации о версии сервера.
спасибо. и предложение напрашивается, да. но может в протоколе оно не транслируется.
Отладка QUIK 8.13
 
Цитата
Roman Azarov написал:
Павел Bosco, добрый день!

Актуальная версия рабочего места QUIK - 9.1.3

Описанные в теме  https://forum.quik.ru/forum10/topic6526/  ошибки в ней исправлены не были.

спасибо. жаль конечно. но вижу есть другие интересные исправления всё же. версия 9.1.3 будет обратно совместима с сервером на 8 Quik?
у меня Открытие Брокер, не знаю точно какая у них сейчас версия на сервере, программа этой информации не выдает
Отладка QUIK 8.13
 
я правильно понимаю, что последняя версия на текущий момент 8.13.1, и в ней всё ещё есть ошибки синхронизации по работе с таблицами лимитов
https://forum.quik.ru/forum10/topic6526/
?
Отладка QUIK 9.1
 
не нашел в таблице изменений каких-то кардинальных отличий от версии 8
или надо смотреть изменения для версии 9.0? но где их смотреть?

почему версия 9.1, а не 8.14?
Статус на время долгой паузы
 
Часто бывает что если запускаешь квик в конце сессии торговой, а они ведь стали большие, то квик подвисает непонятно над чем на минут 5.
Графики не двигаются, котировки не обновляются.
Хотелось бы понимать что он там делает и сколько еще осталось.
Нельзя ли сделать какую-нибудь статусную строку, (она уже есть внизу вообще-то), в которой бы писать что мол квик читает данные с сервера, или читает данные с диска, осталось 20% или там 5 минут.
"управление ожиданиями"
Медленное переключение на минутки при созданном CreateDataSource, Может занимать больше минуты
 
Заметил такую странность. Продиагностировал не до конца, может быть на форуме меня кто-то дополнит и кто-то такое наблюдал:
у меня открыто много графиков. На старших таймфреймах, типа час, день, месяц. Если я переключаюсь на минутный, для примера вот сейчас, в 11:xx, сравнительное начало торгов,
то всё происходит быстро.
Но если я делаю так с графиком, по которому открыт CreateDataSource, то весь квик сильно подвисает. И чем дальше к вечеру, тем больше.
Это из-за какой-то блокировки на таблице данных, по которой я в Lua скрипте делаю браузинг?
Нельзя ли оптимизировать эту блокировку? Например создавать копию DataSource для нужд квика, делать в ней модификации, а потом через короткую блокировку подменять содержимое датасорса открытого в скрипте целиком, а не построчно?

В скрипте я делаю перебор последних нескольких свечек из датасорса, но делаю это часто. Так что если блокировка ставится-снимается в квике построчно, то просмотр из скрипта такого датасорса будет сильно замедлять весь квик, что я и наблюдаю.

Дополню, что даже повторное открытие того же таймфрейма, на котором работает скрипт в окне квика снова приводит к подвисанию на минуту. А если в том же окне открывать другие таймфреймы никакого замедления нет.
Прошу программистов Арка оценить возможность оптимизации блокировок при смене таймфрейма в окне квика и одновременной работе скрипта с этим таймфрейом через DataSource.
Отладка QUIK 8.5
 
https://www.youtube.com/watch?v=soM1M032KPQ
Отладка QUIK 8.5
 
Цитата
Павел Bosco написал:
сейчас он у меня стабильно возникает при переключении на минутки, и длится заметно долго, если надо, могу записать еще раз

вот ещё одно видео, где видно масштабы тормозов, переключение с 5 мин на 1 мин, если судить по таймингу самого видео, заняло примерно 14 секунд
Отладка QUIK 8.5
 
Цитата
Egor Zaytsev написал:
Цитата
Павел Bosco написал:
при переключении на минутный график Si шки терминал каждый раз "клюёт носом" секунд на 5-10
Добрый день.

Павел, поясните, что это значит.

происходит задержка вывода изображения, всё окно замирает и почему-то немного смещается вниз ("клюёт"), как бывает например, при большом потоке данных и недостаточном процессорном времени.
у вас/у других на работающем сервере при переключении на минутки всё отрабатывает нормально? возможно тогда опять у меня какие-то издержки на работу через remote desktop

как выглядит сам клевок я уже записывал ранее, на прошлых версиях
https://www.youtube.com/watch?v=uJ_mA_oJ00g&feature=youtu.be
см где-то на 30+ секунде
сейчас он у меня стабильно возникает при переключении на минутки, и длится заметно долго, если надо, могу записать еще раз
Отладка QUIK 8.5
 
при переключении на минутный график Si шки терминал каждый раз "клюёт носом" секунд на 5-10
Отладка QUIK 8.5
 
Цитата
_sk_ написал:
У меня 8.5.2 упал с дампом. Послал его разработчикам для анализа. Не всё пока хорошо.
у вас была возможность потестировать срабатываение колбэков на заявки? визуально если вручную заявки ставить, ответы довольно медленно приходят
ну и вообще как-то кажется что иной раз терминал замирает, "чаще обычного"
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
Павел Bosco написал:
Цитата
s_mike@rambler.ru написал:
Сеорее всего компилируете неподходящей версией luac
я собрал 5.3.5, а какую надо использовать?
отбой, разобрался. я случайно собрал lua 5.3.5 в x86 версии.
а компилятор luac должен был быть x64, формат прекомиленных lua файлов разный для разных платформ, оказывается.
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
Цитата
s_mike@rambler.ru написал:
Сеорее всего компилируете неподходящей версией luac
я собрал 5.3.5, а какую надо использовать?
Грядущие изменения на срочном рынке МБ: поддержка работы с 19-значными номерами заявок и сделок
 
почему новый квик 8.5.2.11 может не видеть скомпилированный индикатор?
если не компилировать то его видно и нормально работает
а если скомпилировать - то его уже не видно в списке, что может быть не так?
Недельные опционы на смену, где их найти
 
Кстати, есть еще одна проблема кривизны с этими окнами, которые можно создавать на лету:

я могу создать окно с любой котировкой невзирая на фильтр данных, выбранных в потоке котировок, но если у созданного окна попытаться изменить инструмент - то там накладывается фильтр котировок,
и например для созданного на лету окна с опционами при выключенном фильтре опционов, те когда их котировки не принимаются в потоке - я не могу сменить инструмент через диалоговое окно на другой опцион

это странно и неудобно. создать можно без фильтра, а изменить инструмент нельзя без фильтра
Недельные опционы на смену, где их найти
 
Егор, есть проблема, в квике появляются опционы, которые НИКАК нельзя удалить. А вы вместо того чтобы взять проблему в работу, занимаетесь отписками.
Вы написали мне провести эксперимент - сделать -clear и удалить info.wnd.
Ок, в этом случае предложения о замене не появляется. Но ведь это потому что нет ни одного закрытого окна. Мне перенастраивать все окна с нуля? Это и есть предлагаемое решение?
А потом, когда это окошко о замене появится снова - ещё раз перенастроить с нуля? Не верится, что вы такое предложите.

Вы просили прислать вам архив, я это сделал. Все данные у вас, вопспроизведите проблему, пожалуйста. Прошу!
Если программа сама не справляется с управлением своими закрытыми, удалёнными, несуществущими окнами, ну дайте инструмент как можно с этим справиться.

Ведь вы же понимаете, что удаление info.wnd - это вариант для нищих, как отрубание головы при головной боли.
Недельные опционы на смену, где их найти
 
Цитата
Egor Zaytsev написал:
Добрый день.
Поток котировок служит для настройки получения инструментов и их параметров.

Для "стаканов" и графиков она не распространяется.

Странный ответ, я спрашиваю
"обнаружил что происходит А, почему А, будет ли выключаться А само и можно ли его настраивать?"
и вы в ответ
"Здравствуйте, А"

спасибо конечно, но это я и сам понял.
Недельные опционы на смену, где их найти
 
архив с данными отправлен в поддержку
Поток данных для графика цен и стаканов, чем регулировать
 
архив с данными отправлен в поддержку
Недельные опционы на смену, где их найти
 
Цитата
Egor Zaytsev  написал:
Добрый день.
Мы видим, что есть и фьючерсы, которые уже заменены, но система предлагает замену, про опционы написали для того, чтобы Вы знали, что их можно отключить вовсе, так как вы ими, как понимаем не пользуетесь.

Отдельного фтп нет. На облако можно любое из доступных, может запаролить архив или отправить на по почте, если он весит менее 10мб.


добрый день, сейчас кмк таже самая проблема даёт себя знать с другой стороны
https://forum.quik.ru/forum1/topic4808/[QUOTE]Egor Zaytsev написал:


если кратко: даже при выключенном потоке данных для опционов в квике, всё равно можно открыть стакан, построить по нему график цены опциона и данные будут бегать.
естественный вопрос - если окно будет закрыто, данные всё равно будут получаться? где их можно выключить? почему они не попадают автоматически в фильтр "поток котировок" - если уж они приходят, а в фильтре их нет, значит есть какой-то другой фильтр, если так, то как его настроить?
Поток данных для графика цен и стаканов, чем регулировать
 
Пользуюсь версией 8.1.0.3, у меня выключен поток котировок в меню заказ данных для Forts(опционы), но я могу создать окно "Котировки" с любым нужным мне опционом - появится стакан. По нему могу построить график цен.
Всё обновляется, бегает в realtime. Но фильтр при этом в заказе данных не появляется.

Вопрос, чем регулируется поток данных для формирования графика и стакана? Он всегда включён? Если я вручную создаю графики цен и стаканы, как мне потом убедиться что если я закрою эти окна, данные больше не приходят ко мне?

Вопрос связан со заменой инструментов - точно так же откуда-то берутся опционы, которые надо заменять на другие - хотя никаких окон с ними у меня не открыто. Может быть не хватает какого-то функционала в квике по синхронизации по факту заказанных данных и галочек в "Заказ данных"?

В настройках "Получение данных" у меня стоит "С учётом настроек выбранных в меню Система/Заказ данных/Поток котировок", остальные галочки в этом меню отжаты - пустые.
Как считается открытый интерес по срочным контрактам?
 
Не "бьются" данные из квика с данными биржи.
Брокер Открытие, в Si открытый интерес на конец 2 авг в квике 2 164 352
А на бирже https://www.moex.com/ru/derivatives/open-positions.aspx  2 831 278

такой высокой цифры по Si как показывает биржа, в квике не было вообще.
далее, 1 авг на бирже число позиций было выше на 100 000, т.е. падение за день составило всего 100 000,
а в квике число позиций снизилось с 2.382 млн до 2.164 млн, т.е. на 218 000.
Почему такая разница?
QUIK 8.0
 
Цитата
s_mike@rambler.ru написал:
взял исходники Lua 5.1.5, собрал их в модели 64, проверил.  Вроде нормально,  работу работают.

после чего на основе получившейся .lib скомпоновал свою dll.  Тоже на первый взгляд удачно. Время покажет насколько.

все остальные библиотеки и способы, в том числе те,  на которые здесь были ссылки,  не собрались нормально.  

алгоритм другой должен быть, либина вообще-то по уму должна быть от квиковской lua, а не от общедоступной. они немного отличаются.

алгоритм:
1. получаем список функций экспорта библиотеки, где lua5.1.dll - библиотека из поставки quik 8.0
dumpbin.exe  /EXPORTS lua5.1.dll  > lua5.1.exports

2. форматируем файлик .exports, оставляя только имена функций и добавляя сверху одно слово EXPORTS, пример
EXPORTS
is_proxy_dll
luaA_pushobject
luaC_barrierback
...

3. меняем расширение .exports на .def

4. создаём lib:
lib.exe  /def:lua5.1.def  /machine:x64 /out:lua5.1.lib

я использовал утилиты из состава MSVC:
MSVC\2017\Community\VC\Tools\MSVC\14.14.26428\bin\Hostx64\x64\
64-битная версия QUIK
 
Цитата
_sk_ написал:
Вышла 64-битная версия. Кто сможет протестировать у своего брокера -- напишите, как оно.
обновил вручную скачав с сайта арки. подложил всякие ini, .dat .cfg по вкусу, ключи, архивы.
пересобрал свой коннектор на 64 бита, trans2quik у меня и была старая 64 бит, не трогал (это клиентская часть)
запустил, всё работает из коробки. тормозов не увидел, каких-то отличий и новых косяков - тоже.

брокер открытие.

заргузка CPU таже самая, ~10%, загрузка памяти та же самая, ~400Мб
более глубже не копал. мне всё нравится и я доволен.
спасибо арке и её сотрудникам!
Многопоточность в Луа
 
странный вопрос про
Sleep
WaitForSingleObject
WaitForMultipleObject и т.д.

это ведь функции ОС. они не имеют вообще никакого отношения к Lua. мухи отдельно, котлеты отдельно.
от начала и до конца (входа/выхода) каждой из этих трёх функций, вы находитесь вне Lua.
QUIK 8.0 x64: что нужно знать перед обновлением на новую версию
 
будет ли клиент v8 корректно работать с сервером брокера, если брокер пока раздаёт клиентов 7.27.2.1 ? (открытие)
Как узнать id поданной заявки?
 
вообще читайте мануал по функциям которые вызываете, узнаете много интересного.
Как узнать id поданной заявки?
 
если заявка не выставилась, то снимать её не нужно, это же очевидно. она не выставилась, конец фильма.
когда заявку подаете, надо вам указывать собственный ваш внутренний номер.
он приходит в ответе ontransactionreply как dwtransid
Недельные опционы на смену, где их найти
 
вообще нигде не открыты опционы. почему он что-то пытается заменить, откуда он их берёт?
Недельные опционы на смену, где их найти
 
версия программы 7.27.2.1
Недельные опционы на смену, где их найти
 
проблема наверное та же что в соседнем топике.
замена инструментов нужна. но по замене предлагаются заменить инструменты, которые у меня **нигде** не открыты.
вопрос был про то как эти инструменты найти и убрать, чтобы их замена не предлагалась.
замена как функция мне нужна. замена инструментов, которых у меня нет - не нужна, это ошибка программы.
Недельные опционы на смену, где их найти
 
Квик раз в неделю стал предлагать сменить инструменты, судя по кодам, похожи на недельные опционы. Код класса SPBOPT
Но я никак не могу найти где они у меня открыты. В списке "поток данных -> список инструментов" опционы у меня не включены. Открытых таблиц с опционами тоже нет.
Может в каких-то настроечных файлах текстовых можно посмотреть список?
Медленный getItem для таблицы depo_limits, Работает медленно на последних версиях
 
хотя может что и воспроизвелась у меня проблема, просто она экспоненциально зависит от числа строк в таблице
Медленный getItem для таблицы depo_limits, Работает медленно на последних версиях
 
сегодня брокер обновил до 27 версии
у меня в таблице всего 8 строк, так что я поставил ccc=100000
результат такой
total_limits=800000 total_time_ms=67875 avg_ms=0.084844

мб проблема воспроизводится если какой-то другой скрипт тоже работает с этой таблицей или что-то в этом духе.
какая-то излишняя синхронизация появилась мб?

но у меня проблема как видите не воспроизвелась.
тестировал сейчас на подключенном к серверу терминале.
64-битная версия QUIK
 
большинство стенаний по поводу памяти и 32х бит считаю несущественными. есть IPC/RMI, ставьте 64 программы отдельно, взаимодействуйте с рабочим местом по протоколам.

проблема как мне видится в другом. в последних версиях Windows очень существенно стала подтормаживать gdi подсистема для 32bit. не знаю специально или нет, но очевидно Microsoft на неё забила. Там были какие-то изменения связанные в дырках безопасности, из-за которой эта подсистема подверглась перетряху и всё посыпалось.
конкретно я вижу много косяков работы Quik из под RemoteDesktop, может потому что Remote desktop уже 64 бит, а графика Quik рисуется из под 32 bit, хз, но факт есть факт - всё плохо, примерно с лета.

тут бы Arqa поработать с MS, заняться проблемой, но её никто не замечает. На мой запрос были ответы что мол мы работаем. Спасибо за архивы и прочее. А по сути ничего не сказали. Хотя бы просто "проблема не повторилась" - нет просто тишина. Пиши, Шура, пишите. Наши российские разработчики расстраивают. Хотя может это потому что софт бесплатный. Логично, чё.
Но, друзья мои, кто у вас будет покупать платные сервера, если все бесплатные ваши клиенты свалят на какой-нибудь другой терминал, а?
Пойдёте искать работу в другой компании? Пошевелите булочки немного. Они уже немножечко портятся.
Пара вопросов Lua trans2quik и два счёта
 
Немного лень тестить самому и хочется чуть пообщаться.
Всё хочу сделать отправку транзакций через Lua. Сейчас у меня отдельно стоящий робот общается с lua через pipe, но заявки шлёт через trans2quik. Знаю что trans2quik тоже через pipe работает.
недавно перешел с 32 bit на 64 bit, вроде никаких проблем, всё "бесшовно".
у кого есть опыт интеграции без trans2quik, даёт ли это какой-то выигрыш в скорости?

ещё мне казалось что всякая заявка из lua будет отображаться в окне сообщений, подобно тому как там отображаются сообщения по заявкам поставленным вручную, так ли это?

и третий вопрос из пары. пробовал ли кто-нибудь отправлять одновременно две заявки в одной строке в trans2quik, по одному инструменту но двум счетам (в одном терминале, одно физлицо) - будет ли это работать?
опять же чуток лень самому программить, плюс нет тестового полигона под рукой, может кто-то уже делал?

сейчас когда отправляю две заявки по разным счетам друг за другом, то вижу что они иногда выставляются на заметном расстоянии по номеру друг от друга, т.е. между ними могут влезть ещё 10 заявок. хотелось бы этого избежать.
Автоматически менять фильтр по инструментам при "Замене инструментов"
 
всё на мой взгляд предельно просто.
если у меня в фильтре стоит Si-3.19, тот же фьюч в таблице параметров, и тот же на графике,
то сейчас после замены я получаю Si-6.19 на графике и в таблице параметров, но в фильтре остаётся Si-3.19
так вот я предлагаю в фильтре инструментов тоже "переезжать" на следующий фьючерс вместе с графиком и таблицей
getQuoteLevel2, Приведение данных к корректному виду
 
Цитата
s_mike@rambler.ru написал:
По секрету исключительно вам: getQuoteLevel2Ex

btw, насколько я понимаю в C это всё равно будет lua_tonumber?
так что копейка скорости за теже деньги
getQuoteLevel2, Приведение данных к корректному виду
 
Цитата
s_mike@rambler.ru написал:
getQuoteLevel2Ex
респект, чувак! :)

** уполз переделывать
Автоматически менять фильтр по инструментам при "Замене инструментов"
 
Сейчас при замене инструментов, меняются таблицы, меняются графики, но не меняется фильтр инструментов.
Выражаю пожелание, чтобы фильтр инструментов менялся вслед за графиками и таблицами, из одного окна и по той же самой кнопке, без дополнительных шагов.

Иначе сейчас после замены инструментов, таблица текущих параметров может оказаться пустой, если включен фильтр по инструментам и новые инструменты под него не попадают.
И графики, построенные по параметрам инструментов, так же окажутся пустыми.

Спасибо!
Корректная рекурсия, Как корректно оформить рекурсию в Lua (функция ссылается сама на себя)
 
Цитата
Иван Ру написал:
При предложенном Вами исполнении, Павел Bosco, функция InitEveryDay  будет вызваться в лучшем случае единожды за все время работы скрипта  

да мой пример даже и не компилируется. потому что это пример. я предложил вам вариант переписывания функции. выбросите оттуда sleep, выбросите вызов самой функции из себя, и всё у вас получится.
откуда и как её вызывать - дело ваше.
то что к моему предложению надо было добавить вызов из нескольких колбеков, не делает его неправильным.

раз уж просите помощи на форуме, то не надо отвечать всем, что вы правы, и вас никто не понял.
по-поводу шутки, у меня сложилось впечатление, что вы не понимаете, что такое рекурсия. и даже слабо понимаете, что такое цикл.

ещё, позволю себе совет, почитайте что такое синхронные и асинхронные вызовы.
вы пытаетесь через InitEveryDay  устроить синхронную функцию, у которой на выходе будет гарантированный результат.
отсюда и попытки работы с рекурсией.
я считаю что это вам не нужно. работайте с InitEveryDay  так, что иногда она не возвращает результат сразу, тогда надо просто подождать и снова её вызвать.
причём при ожидании продуктивнее будет делать какую-то полезную работу, а не просто sleep.
это меняет логику построения программы, но зависать ничего не будет.
синхронная логика - это узкое горлышко производительности.
Сценарий при TRANS2QUIK_DLL_DISCONNECTED
 
ничего повторно делать не нужно, только один раз, если терминал сам реконнектится каждое утро, и вообще настроен переподключаться сам при дисконнекте
у меня так в connection_status_callback
Код
   if (nEvent == TRANS2QUIK_QUIK_CONNECTED){
      instance->m_connected = true;
      printf("\n[quik_order] СОЕДИНЕНИЕ УСТАНОВЛЕНО\n");
      /*long n = TRANS2QUIK_UNSUBSCRIBE_ORDERS();
      printf("\n[quik_order] TRANS2QUIK_UNSUBSCRIBE_ORDERS: %ld\n", n);
      n = TRANS2QUIK_SUBSCRIBE_ORDERS((LPSTR)instance->m_classCode.c_str(), (LPSTR)m_tickersList.c_str());
      printf("\n[quik_order] TRANS2QUIK_SUBSCRIBE_ORDERS: %ld\n", n);
      n = TRANS2QUIK_START_ORDERS(_order_status_callback);
      printf("\n[quik_order] TRANS2QUIK_START_ORDERS: %ld\n", n); */
   } else{
      printf("\n[quik_order] СОЕДИНЕНИЕ РАЗОРВАНО {%ld %ld %s}\n", nEvent, nExtendedCode, message);
      instance->m_connected = false;
   }


обрати внимание, что там почти всё закомментировано.

а так в ините
Код
   static bool set = false;
   if (set)
      return;
   if (!m_connected) {
      TRANS2QUIK_CONNECT((LPSTR)m_lib.c_str(), &code, message, MSG_LEN);
      m_connected = TRANS2QUIK_IS_QUIK_CONNECTED(&code, message, MSG_LEN) == TRANS2QUIK_QUIK_CONNECTED;
   }
   if (m_connected && !set) {
      printf("\n[quik_order] Выполняется первоначальная установка колбэков...");
      set = true;
      TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK(_connection_status_callback, &code, message, MSG_LEN);
      TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK(_transaction_reply_callback, &code, message, MSG_LEN);
      TRANS2QUIK_SUBSCRIBE_ORDERS((LPSTR)instance->m_classCode.c_str(), (LPSTR)m_tickersList.c_str());
      TRANS2QUIK_START_ORDERS(_order_status_callback);
      printf("готово.\n");
   }


я честно говоря этот m_connected больше нигде не проверяю и не трогаю, т.к. у меня в случае недоступности сервера просто не приходят данные и никаких новых заявок тоже не будет
но это моя реализация, можно проверять конечно. раньше когда-то давно я проверял, потом перестал

колбеки устанавливаются 1 раз на много дней и работают пока работает робот
каждое утро при переподключении я вижу портянку приходящих заявок с прошлой сессии
и при любом переподключении
DDE и trans2quik.dll
 
DDE не пользуюсь, но тут очевидно косяк в вашем коде/приёмнике, т.к. нет связи между trans2quik и DDE приёмником, кроме вашего кода
Корректный расчёт позиции на срочке
 
переводя на язык квика
почему
amount = min(cbplused + cbplplanned + varmargin, cbplplanned - 800) / BUYDEPO может быть слишком много?
Корректная рекурсия, Как корректно оформить рекурсию в Lua (функция ссылается сама на себя)
 
напоминает шутку про индийского программиста, который чтобы узнать завтрашнюю дату, делал в программе sleep на сутки.
зачем вообще рекурсия?

сделайте в main
while dDT.year == nil do
 InitEveryDay ()
 sleep(xxx)
 if stopped then
   break
 end
end

while not stopped do
-- основной цикл
end

а в InitEveryDay уберите и рекурсию и sleep, там это не нужно.

не нужно из колбэков вызывать тяжёлую и долгую логику, будет подвисать весь квик
Страницы: 1 2 3 След.
Наверх