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

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

Страницы: Пред. 1 2 3 4 5 6 7 След.
как узнать количество транзакций?
 
Цитата
Nikolay написал:
А зачем Вы отправляете еще одну транзакцию пока не дождались ответа от прошлой? Отправили, получили ответ, принимаете решение.
Приходится в начале приёма предварительных заявок (в 09:50) раз несколько повторять заявки, т.к. скрипт не сразу узнаёт, что они приняты. А если ждать, когда получу ответ, то я могу не встать в начало очереди, а она растёт быстро. Немного промедлил, за это время кинули заявок на покупку 300 млн. акций, и в принципе можно выключать ПК, т.к. ловить в этом инструменте будет нечего. К тому же, я сижу далековато от Москвы, поэтому точность синхронизации часов не лучше 0.01 сек.

Возможно, мне стОит проверять число записей в таблице заявок: кто-то тут писал, что туда информация приходит быстрее, чем в OnTransReply. Тогда скрипт может меньше посылать ошибочных заявок.

Брокер ВТБ почему-то не даёт торговать на премаркете, при этом я иногда видел, как кто-то до 10:00 совершает сделки с моими заявками, которые я успел выставить пораньше.
Какими заявками крупный игрок накапливает позицию?
 
Цитата
nikolz написал:
В качестве ликбеза:
Ясно. А как сейчас торгуют крупные игроки, можно где-то почитать/послушать? Чтобы набраться опыта в торговле и попробовать что-то заработать программным путём...
как узнать количество транзакций?
 
Цитата
Anton Belonogov написал:
Сообщение 1 возвращает Торговая система, сообщения 2 и 3 - сервер брокера.
При получении сообщений 2 и 3 для выяснения причин ошибки или получения дополнительной информации Вы можете обратиться к Вашему брокеру.
Спасибо. Торговой системой, насколько я понял, называется сервер биржи(?) Я не знаю в подробностях, как там на бирже всё работает...

Сообщения 2 и 3 ясны: эти мои заявки на покупку и на продажу уже выполнились, но мой скрипт ещё не получил подтверждений этого, поэтому он повторяет эти заявки, которые уже стали необеспеченными (ошибочными).

Насколько я понял, таких ошибок допускается в день до 30000, чтобы не было штрафов? А месячный лимит на их число есть? Я смотрел биржевую документацию, но она написано на таком кривом жаргоне (как и законы), да ещё и с формулами, что очень тяжело что-то понять...
Какими заявками крупный игрок накапливает позицию?
 
Цитата
nikolz написал:
Вы о каком типе крупного игрока рассуждаете?
Они разные есть.
Я не знаком с ними, я смотрел видео от опытных трейдеров. Они говорят о 3-х фазах рынка - накоплении, движении цены и распределении. Если боковик идёт месяцами, то я не установлю, что это кто-то один что-то там копит. На графиках видно, что перед взлётом цены она какое-то время идёт в узком канале вбок. Возможно, что здесь кт-то что-то копит...
как узнать количество транзакций?
 
Я в 9:50 при выставлении заявок несколько раз программно повторяю одну заявку, т.к. не сразу узнаЮ, выполнилась она или нет, и получаю такие ошибки (всего штук 14) trans_reply.result_msg:

1. ОШИБКА: (133) Торги по этому финансовому инструменту сейчас не проводятся.
2. Данный инструмент запрещен для операции шорт
3. Скорректированное значение НПР1 -1540915.18 (RUB) меньше 0

2-е и 3-е сообщения это явно не от биржи, скорее, от брокера. А может быть, это Квик на моём ПК сообщает? Он же может проверять такие ошибки?  
как узнать количество транзакций?
 
Поясните, что значит кол-во транзакций? Я видел на сайте Мосбиржи ограничение на 2000 невыполненных заявок в сутки, после этого биржа молча может повысить комиссию. Насчёт ограничений по кол-ву транзакций я не слышал. Где об этом можно прочитать?
Какими заявками крупный игрок накапливает позицию?
 
Кр. игроку иногда нужны месяцы, чтобы нарастить позицию/скинуть акции. Чтобы не обнаружить себя и не двинуть цену против себя, он долгле время продаёт/покупает небольшими частями. Вопрос в том, как обнаружить, что в этом инструменте действует кр. игрок, и что он делает, чтобы узнать, куда он резко двинет цену.
Какими заявками крупный игрок накапливает позицию?
 
Вопрос о том, как угадать, куда поведёт цену крупный игрок после периода накопления. В периоде накопления (боковике) рыночными или лимитными заявками крупный игрок накапливает позицию? Как ещё можно определить его действия?
os.execute с правами админа
 
Цитата
nikolz написал:
А зачем устанавливать системные часы?
Перед началом торгов время исправляю и в течение дня подправляю. Надо бы это корректировать из Lua скрипта, руки до всего не доходят...
Можно ли узнать, что скрипт qlua не дополучает инфо по onalltrade/onquote?
 
Вот здесь нашёл вроде бы верные ответы:
https://forum.quik.ru/messages/forum10/message25916/topic220/#message25916
https://forum.quik.ru/messages/forum10/message7363/topic773/#message7363
os.execute с правами админа
 
GetLastError выдаёт 1314. На стр. https://learn.microsoft.com/ru-ru/windows/win32/debug/system-error-codes--1300-1699- читаю:

===
ERROR_PRIVILEGE_NOT_HELD
1314 (0x522)
Клиент не располагает требуемыми правами доступа.
===
Можно ли узнать, что скрипт qlua не дополучает инфо по onalltrade/onquote?
 
Хм, а я как-то не обращал внимание на эти функции. Тогда выходит, что можно не загружать ЦП коллбэком OnAllTrade, если всё это можно брать напрямую из таблицы all_trades?

Хочу ещё уточнить, как узнавать направление сделки по флагам, описание на https://luaq.ru/getItem.html неясное:

===
Набор битовых флагов
Параметр Тип Описание
бит 0 (0x1) - Сделка на продажу
бит 1 (0x2) - Сделка на покупку
===

Такое чувство, что я всё время неправильно определяю направление (buy или sell). Я считал, что если младший бит = 0, то buy, а если младший бит = 1, то sell.

А из этого объяснения вроде бы следует, что если мл. бит = 1, то это sell, а если следующий за младшим битом бит = 1, то это buy, так? Вроде бы можно было обойтись одним мл. битом...
Можно ли узнать, что скрипт qlua не дополучает инфо по onalltrade/onquote?
 
Насколько я понял, размер таблицы обезл. сделок можно получить через
Код
getNumberOf('all_trades')
А как скрипту прочитать эту таблицу? По-моему, никак...
os.execute с правами админа
 
Интуитивно ясно, что она не должна уметь включать права админа (откуда ей знать его пароль?)
Хотя, на стр. https://learn.microsoft.com/ru-ru/windows/win32/api/sysinfoapi/nf-sysinfoapi-setlocaltime
что-то такое сказано:

===
Комментарии
Вызывающий процесс должен иметь привилегию SE_SYSTEMTIME_NAME. Эта привилегия отключена по умолчанию. Функция SetLocalTime включает привилегию SE_SYSTEMTIME_NAME перед изменением местного времени и отключает привилегию перед возвратом.
===

Я сейчас запустил её из Фара, который запущен не с правами админа, SetLocalTime возвращает 0 (ошибка) и время не меняет...
Вопросы к спецам по Lua и Lua C API
 
1. Будет ли утечка памяти, если C dll при работе со стеком Lua не будет вызывать lua_pop? Ведь сказано, что Lua при каждом вызове подпрограммы из C dll создаёт этот стек заново.

2. Решит ли проблему с возможной утечкой памяти, если не вызывать lua_pop, а в конце работы со стеком вызвать lua_settop(0)? Я думаю, что решит, т.к. lua_pop это макрос, который вызывает lua_settop.

3. Я попытался увидеть сборку мусора и написал такой код:
Код
function main()
s = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
local s1 = '' .. collectgarbage("count") .. '\n'
s = nil
s1 = s1 .. collectgarbage("count") .. '\n'
collectgarbage("collect")
sleep(10000)
s1 = s1 .. collectgarbage("count") .. '\n'
message(s1)
end
Получил такой вывод:

37.5439453125
37.619140625
36.046875

Видно, что памяти освободилось меньше, чем занимала строка s. Как это объяснить?
os.execute с правами админа
 
Цитата
nikolz написал:
Интересно,  как Вы собираетесь изменять системные часы?
Меняю время через Win API SetLocalTime.
Можно ли узнать, что скрипт qlua не дополучает инфо по onalltrade/onquote?
 
Я как-то заказал в Квике отчёт по всем заявкам или сделкам клиента за день, Квик задумался на 10 сек., а потом в файле, куда скрипт писал обезличенные сделки/содержимое стаканов за эти 10 сек. не было записей.
Можно ли узнать, что скрипт qlua не дополучает инфо по onalltrade/onquote?
 
Если скрипт в коллбэке как-то притормаживает, то теряются эти сообщения. Неужели в Квике нет очереди, чтобы их не терять? Есть ли гарантированное время (скажем, 5 мс), что если коллбэк в него вписывается, то потерь данных гарантированно не будет? (Думаю, что его нет, т.к. интенсивность вызова коллбэка может быть высокой.) А если они были, можно ли как-то об этом узнать?
Сегодня был бардак в стаканах
 
Между 9:50 и 10:00 наблюдал по одной акции то, что ещё не видел: в стакане не показывалась моя заявка на продажу и не было также строчки с ценой по этой заявке, но в таблице заявок она показывалась. Через некоторое время все заявки на продажу почему-то имели цену ниже всех заявок на покупку (строки с зелёным фоном были вверху, а с красным внизу), поэтому, чтобы увидеть привычный вид стакана, надо было встать на голову! И у всех заявок на покупку (или почти у всех) количество было в 1 акцию. И только в 10:00 (в начале торгов) содержимое стакана стало нормальным.

Кто-то ещё видел сегодня подобное? Это был сбой на бирже или в брокерском Квике?
os.execute с правами админа
 
Ксати, powershell это делает:
start-process "C:\Program Files\Far Manager\Far.exe" -verb runas
Причём, винда не спрашивает подтверждения разрешений для Фара, как она это делает при таком запуске с пом. иконки. Но неудобно запускать powershell и вводить команду...
os.execute с правами админа
 
Я также смотрел, как запусить из командной строки. Есть для этого в винде runas /user:admin, но она просит пароль админа, даже если он не установлен. Т.е. хочешь не хочешь, а надо дать админу пароль. Но ведь винда из ярлыка как-то запускает программу с правами админа, не спрашивая пароля. По идее, должна быть такая возможность в командной строке, может, кто-то знает, как?
os.execute с правами админа
 
1. Как можно (если можно) вызвать из qlua ехе программку с правами админа, напр., чтобы скорректировать часы ПК? А если эта программка сидит в dll, то тогда как? Видимо, можно как-то повысить права вызываемой программы?

2. Верно ли, что с ключом /nowait можно вызывать программы так, чтобы вызывающая программа продолжала работать и не ждала завершения вызываемой программы?
Как исправить ошибки после зависания?
 
Это некорректно из-за записей/удалений ключей в реестре...
Видно, придётся поставить Квик на другой ПК и сравнить файлы оттуда с моими...
Как исправить ошибки после зависания?
 
Можно брать только у моего брокера, т.к. она настроена у него только на работу через этого брокера и для его клиентов использование Квика бесплатно. Но у брокера нет версии в зипе, а есть только установщик в ехе...
Как исправить ошибки после зависания?
 
Или можно переставить Квик поверх того, что стоИт, и он продолжит нормально работать? Откуда брать свежий дистрибутив, с сайта брокера, или где-то у производителя?
Как исправить ошибки после зависания?
 
Не надо писать ерунду, разумеется, я перезагружал... А то, что микрософты пишут, что их NTFS ведёт журнал и при загрузке винды исправляет транзакции при зависании (синем экране), это тоже ерунда. Я давно ещё на вин хр видел, что после синего экрана винда не исправила попорченный файл ярлыка, имя ярлыка стало короче и его папка не открывалась. А после прогона scandisk имя ярлыка восстановилось и его папка стала рабочей.

Поэтому моё сообщение остаётся в силе: где взять последние версии исполняемых файлов Квика?
Как исправить ошибки после зависания?
 
Сегодня загрузил Квик, в меню Сервисы опять увидел левые иконки слева от строк меню. Перезагрузил Квик - иконки исчезли. Такое ощущение, что где-то подпортились файлы. Это сам info.exe или какие-то ещё?

Как можно обновить этот info.exe, dll и другие исполняемые файлы? Почему никто не ответил?
Пожелание по 1. OnQuote и 2. getQuoteLevel2
 
Спасибо, попробовал по одному инструменту выставить глубину стакана в 1 и у себя в файлике, куда записывается выдача getQuoteLevel2, не обнаружил две одинаковых записи, идущие подряд. Но как попроще убедиться, что при изменении цены или количества вне этого диапазона не вызывается OnQuote? Ведь почти всегда меняется цена/значение в заявках по лучшей цене покупки и продажи...
Как исправить ошибки после зависания?
 
Вчера в результате экспериментов с моим скриптом Квик завис и его пришлось снять с выполнения (виндовс крутила курсор в виде голубого бублика и предложила снять или ждать отклика). Вчера и сегодня по этой причине наблюдались такие явления, как появление в выпадающем меню "Сервисы/Lua скрипты..." в этой строчке слева какой-то иконки (потом она исчезла), потом вдруг в стаканах и в меню поиска в текстовых полях фон из чёрного стал белым. Программа работает, но, похоже, какие-то файлы подпортились. Я ещё вчера запускал chkdsk/f на диск C:, не помогло... Есть в Квике какое-то средство проверки целостности данных?
Пожелание по 1. OnQuote и 2. getQuoteLevel2
 
Я немного, может, поспешил: здесь надо учитывать, по каким классам и тикерам этот кто-то хочет какие-то   ограничения.
Пожелание по 1. OnQuote и 2. getQuoteLevel2
 
1-я вызывается даже чаще, чем происходят сделки, хотя, часто не несёт нужной информации. Предположим, что кого-то интересует только количество и лучшая цена на покупку. Иногда роботы-прилипалы и прочая чушь играет с выставлением заявок и весь этот мусор загружает программу. А из 1-й вызывается 2-я, в которой иногда идёт запись на диск.

Предлагаю сделать так, чтобы можно было задать количество значений цен на покупку от лучшей цены и ниже и отдельно, соотвественно, количество цен на продажу в стакане от лучшей цены и выше. И если были изменения вне этих диапазонов, не вызывать 1-ю.
Более быстрый перебор ключ - значение в таблице
 
Старый lobject.h попался, вот для Lua 5.4:
https://www.lua.org/source/5.4/lobject.h.html
Более быстрый перебор ключ - значение в таблице
 
Вот загадочное и интересное сообщение: https://forum.quik.ru/messages/forum10/message34083/topic3921/#message34083
См. также typedef struct Table в https://www.lua.org/source/5.1/lobject.h.html
Можно ли как-то получить адрес этой структуры таблицы в программе на Lua и C, чтобы, скажем, напрямую читать
TValue *array;  /* array part */ ?
Т.е. в случае C минуя rawgeti и стек Lua?
Более быстрый перебор ключ - значение в таблице
 
Т.к. экономия происходит за счёт вызова функции pairs, которая в цикле вызывается лишь 1 раз.
Более быстрый перебор ключ - значение в таблице
 
Прверял на таблице из 10-ти элементов. Если элементов будет больше, думаю, выигрыш во времени будет меньше.
Более быстрый перебор ключ - значение в таблице
 
Сейчас обнаружил, что перебор в форме
Код
 for key, val in next, t do
  local k = key
  local v=val
 end
Работает ~ на 10% быстрее, чем в распространённой форме
Код
 for key, val in pairs(t) do
  local k = key
  local v=val
 end
Схема торговой программы
 
Кто-то может рассказать об удачной схеме работы торговой программы (без дорогих сердцу торговых стратегий), чтобы потом не переделывать своё изобретение? Я пока не знаю, как это всё в сумме организовывать и с какой стороны подходить... Торговать лучше по индикаторам или как-то ещё?
Lua таблицу в файл и обратно
 
Что ты на меня бочку покатил? С Владимир спутал? Я похвалил твой пример.
Cкорость обмена данными через файлы
 
А если диск виртуальный, то как по сравнению с маппинг филес?
Lua таблицу в файл и обратно
 
Гениально, шеф (С). Здесь я увидел, кажется, то же самое, но длиннее:
bot4sale.ru/blog-menu/qlua/300-table-tostring.html
Рассчитать текущую цену от ММ на начало торгов
 
На этапе выставления заявок (напр., с 9:50 по 9:56) скрипт ММ смотрит на них и устанавливает текущую цену так, чтобы было совершено наибольшее число сделок. Можно ли как-то скриптом на Луа вычислить эту цену по информации о заявках в стакане, чтобы вовремя в неё встать? Есть ли такой алгоритм?
Примеры dll на GCC 64 для работы со скриптом
 
Это не то: GetSystemTimePreciseAsFileTime выдаёт время в UTC (число 100 нс интервалов с 1 января 1601 г. по текущее время). Теперь надо получить из него часы, минуты, секунды и микросекунды с десятыми с часами для локального времени. Я уже почти написал программку для этого перевода, но вроде бы должна быть готовая в какой-нибудь библиотеке для Си...
Примеры dll на GCC 64 для работы со скриптом
 
А как мне в Си перевести вывод функции GetSystemTimePreciseAsFileTime в часы, минуты, секунды и микросекунды?
Примеры dll на GCC 64 для работы со скриптом
 
Спасибо, интересная информация.
Скрипт оповещения значения спреда между двумя инструментами
 
См. на luaq.ru:
Функции для получения значений Таблицы текущих торгов
getParamEx
getParamEx2
Здесь на форуме публиковались параметры для этих функций.

Функции обратного вызова
OnParam

Что-то сделать скрипт может, запустив внешнюю программу через os.execute. Вот здесь хороший справочник по функциям:
gammon.com.au/scripts/doc.php
Мой робот
 
По картинке робота я не смог понять, насколько он прибылен...
Мой робот
 
А что конкретно даёт эта OnParam? Я сейчас глянул https://luaq.ru/OnParam.html и не понял, как узнать, какие параметры изменились? Их же вагон с тележкой... :sad:  
Мой робот
 
Какой уровень дохода прогнозируется? Сколько %% годовых чистыми от начального депозита?  :cool:  
Примеры dll на GCC 64 для работы со скриптом
 
Уточнение: на си я получаю текущее время моего ПК через GetLocalTime, три часа разницы...
Примеры dll на GCC 64 для работы со скриптом
 
Цитата
nikolz написал:
lua_tonumber и lua_tointeger  в версиях от 5.3 - это разные форматы.  double и long.
А в Lua 5.4 одинаковые? Как это узнать?

Я для интереса написал в длл на си "ядерную триаду": обработчики OnAllTrade и OuQuote + getQuoteLevel2. Постарался, чтобы работало как можно быстрее. В примерах, которые я видел, написано не так оптимизированно, как у меня. Неплохо было бы как-то сравнить скорости с моими аналогичными обработчиками на Lua...

Возникли такие мелкие вопросы:

1. Скрипт, который работает с этой длл, начинается так:
Код
package.loadlib(getScriptPath() .. "\\OnAllTrade.dll", "luaopen_OnAllTrade")()
require("OnAllTrade")
Я где-то увидел, что таким путём можно длл помещать в папку со скриптами вместо корневой папки Квика. Но почему-то при первом запуске скрипт не находит этой длл в папке со скриптами, поэтому длл приходится помещать в корневую папку. При последующих запусках скрипта длл можно удалить из корневой папки и размещать в папку со скриптами, это работает. Кто может объяснить этот эффект и сказать, как это исправить?

2. Можно ещё быстрее работать со стеком Луа при обработке полученных таблиц? Например, можно ли быстрее получить из таблиц bid и offer значения price и quantity (по 20 штук каждых)?

3. Я после вызова функций QLua из длл не очищаю стек, потому что он после этого вроде бы становится мусором для уборки. Достаточно следить, чтобы стек не превышал 20 элементов. Это верно?

4. В аналогичном скрипте на Луа я накапливаю информацию в переменной-строке о сделках и стаканах и после достижения, скажем, 10 Мб дописываю её в файл и потом присваиваю этой переменной пустую строку. При этом каждый раз память для неё освобождается сборщиком мусора и затем выделяется и довыделяется много раз при её заполнении информацией. А выделение памяти не быстрый процесс. На си такой проблемы нет. Можно ли на Луа работу с этим буфером вывода сделать быстрее?

5. В своём аналогичном скрипте на Луа при выводе содержимого стакана в переменную я беру текущее время через os.sysdate, она даёт даже мкс, откуда у неё такая точность? Может, лучше как-то получать время сервера брокера, это будет точнее? Кстати, на этом форуме ещё в 2015 г. просили с содержимым стакана передавать время с сервера (биржи?), когда было изменение, но почему это не сделали?
На си я для этого получаю время через GetSystemTime, там только мс, приходится дописывать к ним справа 000, чтобы был формат с мкс, как выдаёт OnAllTrade. С этим ничего нельзя поделать?
Страницы: Пред. 1 2 3 4 5 6 7 След.
Наверх