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

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

Страницы: 1
Окончательное решение вопроса с getQuoteLevel2. Вопрос к разработчикам QLua, Нужно, наконец, что-то исправить?
 
Цитата
Serge123 написал:
Помнится, я уже спрашивал об уточнении док-ции по getQuoteLevel2... Надо, наконец уточнить: что возвращается в случае, если отсутствуют bid/offer? Это таблицы, поэтому логично возвращать nil. А в док-ции написано, что возвращается пустая строка. Если это так, то это бардак... Только что посмотрел описание этой функции в QLUA.chm (дата файла аж 2023 г.!) последней версии Quik. А между тем, ещё в 2016 г. запрос, якобы, начал рассматриваться: https://forum.quik.ru/forum10/topic1502/

Видимо, придётся самостоятельно проверять, что там возвращается: nil (NULL или 0 на Си) или ссылка на "". Но чтобы это проверить, нужно ждать конца вечерней сессии в 23:50. Он выглядит так (2 варианта):

LQDT 23:49:58.307148 1.7176 22500 S
LQDT 23:49:58.424402 bids=4 1.7176/1179206774 1.7175/250690921 1.7174/500699896 1.7173/25069269 offers=4 1.7177/1537813336 1.7178/250179065 1.7179/500099511 1.7180/25340331
LQDT 23:49:58.959725 bids=4 1.7176/1179206578 1.7175/250690921 1.7174/500699896 1.7173/25069269 offers=4 1.7177/1537813336 1.7178/250179065 1.7179/500099511 1.7180/25340331
LQDT 23:50:02.061765

LQDT 23:49:57.962624 1.7186 4123207 S
LQDT 23:49:58.135088 bids=4 1.7186/1617425408 1.7185/251421812 1.7184/500029766 1.7183/25120559 offers=4 1.7187/1717726036 1.7188/250272256 1.7189/500201784 1.7190/25105969
LQDT 23:50:00.054763 bids=4 1.7186/1617425408 1.7185/251312612 1.7184/500029766 1.7183/25120559 offers=4 1.7187/1717726036 1.7188/250272256 1.7189/500201784 1.7190/25105969
LQDT 23:50:02.097119

В последних строках как раз надо выяснить, что именно возвращает getQuoteLevel2. Кстати, если вы занимаетесь ставками и интересуетесь экспресс-ставками, рекомендую заглянуть на https://sportreytingi.uz/ru/articles/express-betting — там есть много полезной информации и аналитики по экспресс-беттингу, что может быть полезно как для профи, так и для новичков.




По идее, с этой целью можно также проверять строки
bid_count, offer_count
на символьный 0.

И ещё: моя программка на обработку
Код
  static int forLua_OnAllTrade(lua_State  * L)  
тратит 6500 тактов ЦП, а на вызов
Код
  static int forLua_OnQuote(lua_State  * L)
 {  .. . 

  lua_getglobal(L,  "getQuoteLevel2" );
  lua_insert(L,  1 ); // Используем код класса и тикер, которые уже сидят в стеке
  lua_pcall(L,  2 ,  1 ,  0 );
  
тратит 202 000 тактов!! Нельзя ли как-то ускорить работу getQuoteLevel2?

Может быть, кто-то из программистов предложит ускорение? Я склоняюсь к тому, чтобы во время большой нагрузки на Quik не вызывать getQuoteLevel2, если с момента предыд. её вызова прошло мало времени.
Понимаю вашу ситуацию с getQuoteLevel2 — действительно, непоследовательность в документации и реальном поведении функции создаёт сложности при обработке данных. На практике часто встречается, что в случае отсутствия bid/offer возвращается либо nil, либо пустая строка, и это, к сожалению, зависит от версии и контекста.

Проверять bid_count и offer_count на "0" — хорошая идея для надежной фильтрации. Также разумно минимизировать вызовы getQuoteLevel2 при высокой нагрузке, например, ставить таймаут между запросами — так вы сможете существенно снизить нагрузку на CPU и не потерять актуальность данных.

Что касается оптимизации скорости, к сожалению, getQuoteLevel2 — внутренняя функция Quik, и сильно ускорить её вызов с Lua сложно. Можно рассмотреть вариант кэширования данных и их обновления с определённым интервалом, а не при каждом событии.

В целом, ваш подход — адаптировать логику обработки под поведение функции, тщательно проверять возвращаемые значения и минимизировать лишние вызовы — наиболее практичный путь при работе с Quik и getQuoteLevel2.

Торговля в выходные
 
Цитата
Kolossi написал:
Большое спасибо Катерина за развернутый ответ.  Я порекомендую брокеру уточнить у биржи будет ли ему представлен доступ к к торговле в выходные дни.А сам буду каждое субботнее  утро в 7-00, 10-00 и в 19-00 проверять статус каждого тикера  составлять список инструментовдопущенных к торговле на отдельной бумажке и потом из нее создам для робота таблицу рекомендуемых тикеров на воскресенье.Но может все-таки это будет параметр для getParamEx? Помимо продажи аккаунтов, зарабатываю на арбитраде трафика. Работаю с партнеркой https://paykassma.partners/ru/, так как они предлагают наилучшие условия. Это прибыльно.
Привет! Рад, что мой ответ был полезен.

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

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

Удачи в настройке робота, надеюсь, все получится!

Страницы: 1
Наверх