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

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

Страницы: Пред. 1 2 3 4 След.
Грядущие изменения на срочном рынке МБ: поддержка работы с 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, там это не нужно.

не нужно из колбэков вызывать тяжёлую и долгую логику, будет подвисать весь квик
Вертикальный и горизонтальный указатели на графике
 
Цитата
Александр Копяткевич написал:
Здравствуйте.

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

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

спасибо, не знал, стало гораздо удобнее.
наверное было бы еще немного удобнее, если бы было и это
---
Можно при наведении выводить значения для этой точки времени во всех областях и всех индикаторах, для каждого индикатора/области выводить значение в своей области.
---

сейчас рядом с курсором показывается только значение времени и значение в текущей области, хотелось бы одновременно видеть значения и из других областей (объём, индикаторы)

ещё раз спасибо!
Корректный расчёт позиции на срочке
 
Добрый день, имею квик версии 7.19.0.51
там транслируется ГО для покупателя и продавца.
допустим проходит несколько сделок.
далее из робота выставляю заявку на покупку, на всё, вычитая комиссию и используя ГО покупателя, для рассчёта позиции.
бюджет у меня брокер транслирует как  Плановые чистые позиции, если нет никаких позиций
при этом Текущие чистые позиции = - Вариационная Маржа,
т.е. если сложить ТЧП + ВМ + ПЧП = ПЧП

в итоге получаю "Нехватка средств по лимитам клиента".
в этот раз не проверял, но порой бывает что и в квике говорит что доступно столько-то контрактов, но при выставлении получается "Нехватка средств"
- с чем это связано?

смущает что после клиринга на счету как раз появились день для недостающего +1 контракта, при этом ГО было даже повышено, с 4462.73 до 4473.78, т.е. размер "Текущих чистых позиций" (уже купленных) - увеличился,
"роспуска" или "освобождения" ГО под контракты не было.

вопрос - подо что брокер может "морозить" деньги и в какой графе их можно увидеть?
суммы не хватало, порядка пары тысяч рублей, комиссии за этот день я явно меньше "нагенерил" в несколько раз.
Вертикальный и горизонтальный указатели на графике
 
Сделайте пожалуйста чтобы при наведении на график можно было увидеть вертикальную черту на всех других графиках в этом же окне, т.е. чтобы наведя на график можно было бы прикинуть значение индикаторов из другой области к примеру RSI.
Так же было бы неплохо видеть и горизонтальный указатель с ценой.
Можно при наведении выводить значения для этой точки времени во всех областях и всех индикаторах, для каждого индикатора/области выводить значение в своей области.
Посмотрите как это сделано в мобильном приложении Finam, удобно же.

Сейчас приходится запоминать значение времени на графике цены, затем переносить мышку в область индикатора ниже и искать там соответствующее этому времени значение, затем тоже повторять для другой области. Всё это лишние движения.
Тормозит темная тема Quik, Тормозит темная тема Quik
 
в моём случае никакого ответа кроме "Ваше письмо получено, проблема изучается" - не было. Получил 2-3 таких письма, последнее ещё в октябре.
больше ничего не спрашивали и ничего не предлагали.
т.е. просто забили и всё.

между тем тормоза на версии 1809 просто адские, особенно на открытии сессии.
вот у меня вопрос, кто должен разбираться с Microsoft-Windows, вы или я?  вы же реализуете программу для этой ОС, вы же её на неё тестируете.
ну скажите какая версия рекомендованная, какая стоит у вас.
объясните почему тормоза на 1809, как с ними бороться.

я Windows Performance Analyzer логи присылал, где есть стек, где видно паузы, там видно, что куча ожиданий происходит в gdi32.
либо вы что-то не так делаете, либо windows - другой причины быть не может.
ну если это не вы, ну скажите. может быть свяжитесь с windows, вам же проще это сделать - у вас все карты на руках, вы знаете что вы делаете и где тормозит.

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

я уже смирился с тем что надо брать свечу когда начинается следующая. потери по скорости на самом деле не такие уж критичные. а вот надёжность 100%.
Ночью отваливается скрипт QLUA
 
если выбрать скрипт в списке, то в окошке под ним будет написана ошибка, по которой он отвалился. с номером строки.
желательно обрабатывать OnConnected / OnDisconnected, проставляя переменную и анализировать её в скрипте.
тогда проблемы быть не должно.
некоторые функции работают и без сервера, а некоторые дают разного рода некорректные данные.
map или чтение файла (dll на c++)
 
Let_it_go, вы зря используете форум, специфичный для вопросов вокруг квика, для своих вопросов обо всём на свете.
есть прекрасный сайт stackoverflow, там можете спросить общие вопросы по программированию.
там аудитория куда больше.
и скорее всего там 90% ваших вопросов уже задавались и были отвечены. вам на это быстро укажут
например гугл подсказывает такой вариант
https://stackoverflow.com/questions/10836609/fastest-technique-to-read-a-file-into-memory

не забудьте купить диск SSD, я думаю вам это сильно поможет :)
Пропало вычисление доступных контрактов и объёма ГО
 
всем спасибо.
открыл окно ввода заявки, вызвал справку и почитал.
не хватало расчётной цены и минимальной возможной и максимальной возможной цен
так же нужны были го покупателя и продавца, но они у меня были
Пропало вычисление доступных контрактов и объёма ГО
 
В форме ввода заявки почему-то перестало высчитываться максимальное количество лотов ФОРТС, доступное к покупке-продаже
а так же в поле объём ГО всё время стоит ноль, а не сумма ГО под заявку.

где и что надо поправить в настройках чтобы вернуть эти функции?
Поделитесь, кто как отслеживает факт "готовности свечи"?
 
И это не сработало.

Т.е. вполне может быть что вы спрашиваете getParamEx(class, sec, "TIME"), получаете 12:00:00
после этого берёте 1M свечку от 11:59:00 и та-дам, она не полная, к ней данные ещё не доехали!

"Молодой человек, вы не понимаете, как устроен мир. У меня не было никаких неудач. Я с успехом определил пять тысяч способов, которые никуда не годятся."
Томас Эдисон

единственный верный способ - следить за датасорсом на момент появления следующей свечи. всё.
Поделитесь, кто как отслеживает факт "готовности свечи"?
 
Разобрался с проблемой в предыдущем комменте наконец.
Всё решилось обновлением win32kfull.sys и корректировкой синхронизации времени.
Сейчас время не улетает.

Возвращаюсь к первоначальному вопросу, мысли вслух. Я оцениваю "готовность" свечи сейчас по GetInfoParam("SERVERTIME"), и время от времени "пролетаю", т.е. в GetInfoParam("SERVERTIME") уже началась новая минута,
я забираю из DataSource свечу предыдущей минуты, а потом оказывается, что она ещё "не сготовилась", т.е. я забрал объём меньше того который потом в ней окажется.
Для меня это мучительно, потому что архитектура робота такая, что переобувать старые свечки на ходу в другие данные я не могу - фарш невозможно провернуть назад.

По сути, задача у меня очень конкретная, мне нужны только свечки Si'шки. Тут читал поиск форум и набрёл на сообщение, что оказывается GetInfoParam("SERVERTIME") вычисляется по таблице Текущих Торгов.
Т.е. у меня родилась такая гипотеза, что я могу взять вместо GetInfoParam("SERVERTIME") время "последней сделки" для сишки из той же таблицы или из Текущих Параметров, и если в нём началась новая минута - то у меня будут более целые данные.
Т.е. *возможно* в таблицу Текущих торгов данные приходят неодновременно пакетом, а отдельными строками, к примеру, и какой-то класс обновляется раньше Сишки (редко, очень редко, но бывает).

Осталось понять несколько вещей:
1. будет ли время в таблице Текущих Торгов или Текущих Параметров меняться быстрее, чем создаваться новая свечка в DataSource? Похоже что таблица одна и таже? По крайней мере функция GetParamEx[2] работает с текущими торгами.
2. не ошибся ли я в своих рассуждениях.

закодю завтра, а в понедельник увижу. наверное хуже не станет. хочется уже закрыть задачу.
Тормозит темная тема Quik, Тормозит темная тема Quik
 
в целом, я думаю на версии 17134.376 - лучше
жаль сообщения нельзя редактировать, уже привык на других сайтах.
Тормозит темная тема Quik, Тормозит темная тема Quik
 
посмотрел на 17134.376
отставание всего 1 секунду, против 10 секунд на  16299.755

но это отставание квик догонял аж 10 минут 17134.376,
против 5 минутного догоняния 16299.755

в целом, я думаю на версии 17134.376
будем ждать комментариев разработчиков
Тормозит темная тема Quik, Тормозит темная тема Quik
 
на 16299.755 всё-таки было заметное убегание, примерно на 10 секунд отставало в 10-00.
ок, тоже перешел на 17134.376
завтра проверим
Тормозит темная тема Quik, Тормозит темная тема Quik
 
что-то разработчики ушли в себя и не отвечают.
у меня предложение, может быть стоит реализовать некие внутренние очереди в квике для рисовалок разных графиков
и накидывать туда "новые значения" без всяких задержек.
а отдельные рисовальщики, как до них управление дойдёт, пусть просто чистят эту очередь и рисуют самое последнее значение только.
нет нужды устраивать мультик и прорисовывать все полученные значения, достаточно самого последнего.
и тормозов станет куда меньше.

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

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

очень хочется чтобы квик при сильных движениях больше не тормозил.
в 10:01:00 отставание серверного времени от реального составляет 10 секунд и больше.
и только к 10:05:00 квик успевает "догнать" и рассовать все приходящие данные.
хочется смотреть всё онлайн...

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


где-то 5 минут квику надо чтобы "догнать" всё что происходит на открытии. нормально разве?
времена указаны символического окончания минутной свечи.
я решил в случае расхождения времени локала  сервера дожидаться начала новой свечки,
а если время более менее синхронно, то дожидаюсь окончания обновления текущей при смене минут.
Страницы: Пред. 1 2 3 4 След.
Наверх