#80270 - Wed Nov 09 2016 12:54 PM
Функционирование TSLab и оптимальная реализация
|
newbie
Registered: Wed Nov 09 2016
Записи: 28
|
Предпослыки тут. Попробуем начать с пары вопросов. 1. ТСЛАБ2 запущен в боевом режиме уже чуть больше недели на VPS Финам. Каждый день я его закрываю и запускаю снова (вне торгового времени московской биржи). Торговля ведется только на MOEX. С каждым из этих дней я добавлял по одному агенту. Всего сейчас работает 16 агентов. В день, когда агентов стало 15, появилась ошибка "Fatal Error" (см. скриншот). Например, сейчас процесс TSLab это 1458 дескрипторов и 40 потоков. Я примерно понимаю, из-за чего возникла эта ошибка. Понимаю, что дело не в тслабе. Возможно ли настройками тслаба (не ухудшая производительности) сделать так, чтобы такой ошибки больше не возникло? Запущена 32-х битная версия тслаба. По ресурсам запущенный тслаб использует около 250 МБ оперативки, свободной оперативки еще около 600 МБ. Процессор не бывает загружен более, чем на 50% в течение нескольких секунд. В основном 5% загрузка. 2. Если у меня запущены 16 агентов, в каждом из которых неторгуемым источником (1-минутки) являются об.акции Сбербанка, то: 2.1. Программа 16 раз делает запрос gethistory (подключение через HFTransaq) или 1 раз? 2.2. Запрашиваются именно исторические минутки или делается подписка на тики и из них формируются минутки? 2.3. Как определяется, что текущий минутный бар завершен? 2.3.1. По тику, датированному новой минутой? 2.3.2. По новой исторической минуте, которой еще не было? 2.3.3. По локальному времени? 2.3.4. Делается ли синхронизация с временем торгового сервера брокера?
Attachments
faterror.png (242 downloads)Description: Fatal Error
Отредактировано Sergey Pavlov (Thu Nov 10 2016 07:38 AM)
|
Наверх
|
|
|
|
#80284 - Thu Nov 10 2016 11:11 AM
Re: Функционирование TSLab и оптимальная реализация
[Re: Sergey Pavlov]
|
TSLab
Carpal Tunnel
Registered: Sun Oct 17 2010
Записи: 8139
|
1. Означает, что очередь в потоке рисования windows забилась. В данном случае - совет выключить отрисовку нескольких агентов. Т.е. пусть в темную работают, так как vps не справляется. Здесь нужно понимать еще, что рисованием программа занимается в последний момент, после того, как все агенты рассчитаны, собственно они работают кодом, а не отрисованным графиком. 2.1 Программа 2.0 использует один кеш. В 1.2 много запросов 2.2 От брокера Приходят "Сделки по инструментам" из них и строятся бары 2.3. В пачке с тиками приходит тик, время которого соответствует новому бару. Новый бар открывается. 2.3.1 Да 2.3.2 не очень понял вопроса, но видимо да, этой минуты еще нет, пришел тик, бар начал рисоваться 2.3.3 Вообще никак не используется в программе, если есть подключение к серверу брокера. Если нет подключения к брокеру, то да, используется локальное время, но только как просто отображение локального времени. Так как тиков нет, рисовать нечего. 2.3.4 Она не нужна. Время берется из тиков, из поля TIME Но при этом установленный патч регионов и времени windows от 12 апреля 2016 года обязателен. Работа с историческими данными: http://forum.tslab.ru/ubb/ubbthreads.php?ubb=showflat&Number=60522#Post60522
Отредактировано ViL (Thu Nov 10 2016 11:17 AM)
|
Наверх
|
|
|
|
#80287 - Thu Nov 10 2016 12:23 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: ViL]
|
newbie
Registered: Wed Nov 09 2016
Записи: 28
|
ViL, спасибо!
Правильно ли я понимаю, что, если в запущенном тслабе на VPS открыты всего 2 вкладки (менеджер подключений и управление агентами), то подобной фатальной ошибки не будет?
Следующая пара вопросов:
1. Какие отличия по производительности и т.д. между запущенной 32-х и 64-х разрядными версиями тслаба? Сейчас у меня работает 32-х (воспользовался ярлычком по умолчанию). Стоит ли мне всё перенести в 64-битную версию?
2. Сейчас в скриптах у меня стоит ограничение в 3000 макс. баров. Интервал пересчета - 1 минута. Торговать с - стоит 0. В логах после вычисления каждого агента указано "1843 баров" для каждого из 19 агентов (весь день). При этом реально каждому агенту для пересчета при новой минуте требуется кому-то около 500, кому-то 700, а кому-то около 1300 баров. 2.1. Каждую минуту в каждом агенте происходит пересчет 3000 баров? 2.2. Что значит число 1843, отображаемое в логах? 2.3. Как исполняются 19 запущенных агентов? В одном потоке последовательно или параллельно? 2.4. Есть ли приоритет в выполнении агентов? Можно ли его задать?
|
Наверх
|
|
|
|
#80290 - Thu Nov 10 2016 03:11 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: Sergey Pavlov]
|
TSLab
Carpal Tunnel
Registered: Sun Oct 17 2010
Записи: 8139
|
Вероятней всего да, если не будет что рисовать, то именно данной ошибки не будет. 1. Если брокер позволяет подключаться в 64 битном режиме, то там переносить ничего не нужно. Вы просто запускаете 64 битную версию и работаете, конфигурация загрузится та же. Если не используете сторонних индикаторов, написанных под 32 битный cpu то и ошибок никаких не будет 2.1 Да, все бары пересчитываются. Но у Вас не 3000 баров, а 1843 и видимо с каждым пересчетом прибавляется один бар. Либо возможно у Вас стоит ограничение МаксДней 2.2 Это то кол-во баров которое реально загружено в агенты 2.3 зависит от кол-ва ядер и поддержки процессором гипертрейдинга. Очень грубо: Если потоков у процессора 16 или больше, то все в параллель. Если меньше, то очередь. 2.4 Нет. Живая очередь. У кого пришел первый тик с новым баром, тот и прав.
|
Наверх
|
|
|
|
#80292 - Thu Nov 10 2016 05:01 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: ViL]
|
newbie
Registered: Wed Nov 09 2016
Записи: 28
|
Да, вы правы. С каждым пересчетом прибавляется. Прошло около 2 часов и сейчас вместо числа 1843 уже число 1977. Макс дней стоит 0, ограничения от и до сняты. Только макс баров=3000. Торговать с нуля.
Тогда пара уточняющих вопросов по этому поводу: 1. Правильно ли я понимаю, что могу ускорить вычисления своих агентов, грубо говоря, в 1900 раз, если заставить тслаб пересчитывать только новые бары? 2. Чему равно число 1843, а теперь уже 1977? Т.е. не каков смысл этого числа, а как определяется кол-во баров, которое загружено в агенты и по которым каждый раз при новом баре ведется пересчет?
|
Наверх
|
|
|
|
#80304 - Fri Nov 11 2016 07:19 AM
Re: Функционирование TSLab и оптимальная реализация
[Re: ViL]
|
newbie
Registered: Wed Nov 09 2016
Записи: 28
|
1. Всё-таки непонятно, как это работает. Под конец дня баров стало снова 1844. Открыв один из агентов (график), я вижу, что есть минутные свечки за 7 (с 14:00 по 18:39) и за 8,9,10 (с 10:00 по 18:39) ноября. Итого минутных баров не менее 500+600+600+600=2300 на конец вчерашнего дня, а в логах: "10.11.2016 23:49:00 127 Агент 'bal_sht': Скрипт выполнен успешно за 26мс. (1844 баров, время 10.11.2016 18:39:00)"
2. Теперь по производительности. Если внутри метода Execute я тупо пропущу в цикле for все вычисления баров, номер которых менее source.Bars.Count-1, то, фактически, скорость пересчета агента при каждой новой минутной свече увеличится порядка в 1000 раз?
3. Еще одна "непонятка" с выставлением заявок. У меня во всех скриптах исполнение делается блоками открытия и закрытия позиции по рынку. В торговых настройках агента я указыванию проскальзывание +3 шага цены и ставлю галочку "По рынку с фикс. ценой". В подсказке указано, что в этом случае выставляется лимитная заявка по цене открытия бара с сигналом плюс-минус проскальзывание. 3.1. Что такое цена открытия бара? 3.2. Какой бар является баром с сигналом? 3.3. Пример. Вчера один из агентов в 18:28:03 (по квику) выставляет заявку на продажу SRZ6 по цене 15558. 3.3.1. Первый тик этой минуты как по акции, так и по фьючерсу датирован нулевой секундой. В целом с чем я сейчас бьюсь....чтобы тслаб ставил заявку в эту же нулевую секунду. 3.3.2. Но непонятно вот что. Тик закрытия 27 минуты равен 15561, а тик открытия равен 15564. Проверил аналогично по другим заявкам. Тслаб ставит заявку по фикс цене, привязываясь не к цене открытия, а к цене закрытия завершенного бара, что не совсем желательно. 3.3.3. Какими манипуляциями (в будущем кол-во агентов у меня будет порядка 100) добиться того, чтобы тслаб ставил заявки в ту же секунду, что и первый тик? Сейчас задержки от 1 до 3 секунд. Также, каким образом заставить тслаб ставить эту лимитную заявку именно по открытию свечи плюс-минус проскальзывание, как указано в подсказке в торговых настройках?
Отредактировано Sergey Pavlov (Fri Nov 11 2016 07:42 AM)
|
Наверх
|
|
|
|
#80306 - Fri Nov 11 2016 11:34 AM
Re: Функционирование TSLab и оптимальная реализация
[Re: Sergey Pavlov]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
2) в 1000 раз это вряд ли но ускориться можно. 33.3) он всегда ставит в ту же секунду. Тормоза и ваши задержки очевидно связаны с вдс который тормоз.
_________________________
__
|
Наверх
|
|
|
|
#80307 - Fri Nov 11 2016 12:03 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: ra81]
|
newbie
Registered: Wed Nov 09 2016
Записи: 28
|
Еще раз. На одной и той же VPS запущены два приложения (самописное и тслаб). Оба реализуют одну и ту же торговую логику. Оба работают через HFTransaq. Самописное не просто ставит заявку в первую секунду, а почти всегда делает open свечи по лучшему биду-аску. Тслаб выставляет заявку спустя 1-2-3 секунды (когда как). Либо Тслаб тормозит (вся эта возня с агентами, пересчеты одного и того же по многу раз), либо я как-то неоптимально реализовал алгоритм.
|
Наверх
|
|
|
|
#80308 - Fri Nov 11 2016 12:40 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: Sergey Pavlov]
|
writer
Registered: Sun Nov 21 2010
Записи: 428
|
Вы хотите чтобы Вас убедили в том что Вы и так знаете? Да, на обе части Вашего вопроса. ТСЛаб не слишком эффективен на малых таймфреймах; реализацию алгоритма, почти наверняка, можно улучшить.
_________________________
Не пишите мне! Никому ничего делать не буду.
|
Наверх
|
|
|
|
#80310 - Fri Nov 11 2016 03:23 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: Sergey Pavlov]
|
Carpal Tunnel
Registered: Thu Sep 27 2012
Записи: 2860
|
Еще раз. На одной и той же VPS запущены два приложения (самописное и тслаб). Оба реализуют одну и ту же торговую логику. Оба работают через HFTransaq. Самописное не просто ставит заявку в первую секунду, а почти всегда делает open свечи по лучшему биду-аску. Тслаб выставляет заявку спустя 1-2-3 секунды (когда как). Либо Тслаб тормозит (вся эта возня с агентами, пересчеты одного и того же по многу раз), либо я как-то неоптимально реализовал алгоритм. да докажите всем что на вашем впс тслаб тормозит. тут все знают что есть куча впс где тслаб просто умирает. вы не хотите видимо читать это. и умирает он потому что такие впс. поставьте на железо и такого не будет.
_________________________
__
|
Наверх
|
|
|
|
#80366 - Thu Nov 17 2016 01:41 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: ra81]
|
writer
Registered: Fri Apr 24 2015
Записи: 596
|
В принципе, Вам уже всё ответили.
Подчеркну пару моментов: 1. Если есть возможность запускать 64-бита -- обязательно запускайте в этом режиме. 2. Все Ваши агенты оживают одновременно на границе минутной свечи. Это очевидно создаёт узкое место. Поэтому чем больше ядер -- тем лучше. 3. Чтобы определить факт того, что начался новый бар ТСЛаб использует новый пришедший трейд. Если трейда нет 5 секунд -- то новый бар начнется на 5 секунд позже ожидаемого. Возможно, от этого можно уйти поигравшись с настройками скрипта. Например, запускать пересчет не только по трейдам, но и по котировкам.
Теперь насчет оптимизации индикаторов. Если это какие-то тривиальные вычисления типа СМА, сделать там скорее всего ничего нельзя. Но если это како-то самописный тяжелый индикатор, можно попытаться его ускорить, избегая повторного расчета на старых барах.
И ещё один вариант оптимизации можно получить, если все агенты используют один и тот же индикатор с одними и теми же параметрами. Тогда этот индикатор можно вычислять отдельно, а в самих торговых агентах использовать готовые значения. Мы так считаем историческую волатильность для опционов. Взаимодействие организуется через Глобальный Кеш.
|
Наверх
|
|
|
|
#80378 - Fri Nov 18 2016 06:56 AM
Re: Функционирование TSLab и оптимальная реализация
[Re: Option Wizard]
|
newbie
Registered: Wed Nov 09 2016
Записи: 28
|
На общие вопросы я и сам в состоянии дать общие ответы. На узкие вопросы о нюансах ответов, к сожалению, я не получил, а таких узких вопросов у меня по тслабу еще 150 штук. Видимо, придется методом тыка и догадок разбираться.
Кстати, о производительности. Аналогичные скрипты (один в один без изменений) запустил в пером тслабе. Итого запущено параллельно на одной и той же машине два тслаба: 1. 32-битный второй тслаб, который шлет заявки через HFTransaq через Finam 2. 32-битный первый тслаб, который шлет заявки через через обычный транзак через Whotrades
Первый тслаб ставит заявки на биржу быстрее второго в среднем на 1 секунду (разница по мкс), не смотря на то, что второй тслаб это в 10 раз большая частота транзакций и т.д.
Мне это видится странным. Буду всё оптимизировать и изучать функционирование тслаба, через месяц приму решение, продолжать ли им пользоваться. Пока всё нравится в целом:) Чисто пользовательски считаю, что тслаб - классная штука:)
|
Наверх
|
|
|
|
#80380 - Fri Nov 18 2016 11:46 AM
Re: Функционирование TSLab и оптимальная реализация
[Re: Sergey Pavlov]
|
writer
Registered: Fri Apr 24 2015
Записи: 596
|
Пока всё нравится в целом:) Чисто пользовательски считаю, что тслаб - классная штука:) Спасибо! Очень рад. Мне, кстати, тоже нравится. Глюков бы чуть поменьше... На узкие вопросы о нюансах ответов, к сожалению, я не получил, а таких узких вопросов у меня по тслабу еще 150 штук. Видимо, придется методом тыка и догадок разбираться. Мне показалось, что в предыдущих ответах коллеги Вам достаточно исчерпывающе ответили. Нет? Давайте ещё один подход сделаем. Пуляйте сюда наболевшее помаленьку (в порядке критичности для Вас). Кстати, о производительности. Аналогичные скрипты (один в один без изменений) запустил в первом тслабе. Итого запущено параллельно на одной и той же машине два тслаба: 1. 32-битный второй тслаб, который шлет заявки через HFTransaq через Finam 2. 32-битный первый тслаб, который шлет заявки через через обычный транзак через Whotrades
Первый тслаб ставит заявки на биржу быстрее второго в среднем на 1 секунду (разница по мкс), не смотря на то, что второй тслаб это в 10 раз большая частота транзакций и т.д.
Мне это видится странным.
Малость запутался кто у вас кто... Может, скриншот запостите?.. Правильно понял Вас: " Версия 1.2 через WhoTrades сильно быстрее версии 2.0 через HFTTransaq"? PS Если Вам так критична скорость, то, возможно, имеет смысл подумать о Плазе?.. Например, выставление заявок через обычный Транзак (не HFT) в среднем занимает 200-300 мс. В плохие дни -- 500 мс. А через Плазу - не более 50 мс. В среднем около 20-25 мс. (Это полный раунд-трип до получения подтверждения в ТСЛаб.)
|
Наверх
|
|
|
|
#80381 - Fri Nov 18 2016 12:31 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: Option Wizard]
|
newbie
Registered: Wed Nov 09 2016
Записи: 28
|
Да, верно: Версия 1.2 через WhoTrades сильно быстрее версии 2.0 через HFTTransaq. Мне всё критично, поскольку суммы немаленькие. На скриншоте видно, что заявки через первый тслаб ставятся порядка на 1 секунду быстрее, чем через второй. Работает один и тот же скрипт.
Например, сейчас меня беспокоит то, что я не понимаю, как работает тслаб. Раньше поведение у второго наблюдалось такое: выставлена лимитка, которая живет 5 минут. Через 5 минут исполняется по рынку (проработало на сотнях сделок). Последние несколько дней поведение изменилось (я не менял скрипт и торговые настройки): ставится лимитка...через 5 минут она снимается и перевыставляется лимиткой в то же место, т.е., грубо говоря, теряет место в очереди:).
Еще из наболевших непоняток. Вчера в первом тслабе "слетела" часть агентов и перестала сопровождать позицию. Суть проблемки: в скрипте есть два истоника: один акции Сбера, второй - фьючерс на него. Торги ведутся только по фьючерсу в этих скриптах. Запустил всего 17 агентов. У каждого агента в левой колонке тикером значится SRZ6... всё работает.. проходит несколько часов. Заглядываю в тслаб... в случайном порядке у 8 агентов в первой колонке значится SBER и в колонке позиция стоит 0. Сделки не делаются....... Магия.... Делаю так. Удаляю этих агентов и один в один с этими же именами заново из тех же скриптов запускаю эти 8 агентов.... По текущий момент прошло 2 часа, всё торгуется, так и осталось в левой колонке у всех SRZ6. При этом, когда я запустил их повторно, пересоздав, они вспомнили про свою позицию и продолжили её сопровождать, что приятно. Но неприятно...а вдруг эта "фигня" повторится еще раз?
Поэтому для меня важно понять, как работает ТСЛАБ. Как ведутся расчеты, почему заявки привязываются не к open, а к close и пр и пр.
Вопросы, которые остались пока без ответа: 1. Какие отличия по производительности и т.д. между запущенной 32-х и 64-х разрядными версиями тслаба? 2. По какой формуле определяется кол-во баров, по которым с каждым тактом делаются пересчеты? 3. Какой бар считается баром с сигналом?
Дополнительный вопросик: Вот у меня есть 17 агентов, запрограммированных по одинаковой логике копипастой. Различия только в базовой статистике, по которой решения принимаются. 15 агентов каждую минуту пересчитываются по 1 разу. 2 агента почему-то каждую минуту по 2 раза пересчитываются. Зачем и с чем это может быть связано?
Attachments
orders.png (195 downloads)Description: orders
|
Наверх
|
|
|
|
#80382 - Fri Nov 18 2016 04:34 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: Sergey Pavlov]
|
writer
Registered: Fri Apr 24 2015
Записи: 596
|
> "1. Какие отличия по производительности и т.д. между запущенной 32-х и 64-х разрядными версиями тслаба?"
По производительности разницы не должно быть. Выигрыш в максимальном доступном объёме памяти. Там, где 32-битная начнет испытывать траблы из-за памяти, 64-битная просто будет работать дальше.
Если так критично исполнение -- тогда в перспективе нужна Плаза всё равно.
Остальные вопросы передал коллегам. Надеюсь, присоединятся и всё расскажут грамотно.
|
Наверх
|
|
|
|
#80395 - Mon Nov 21 2016 10:02 AM
Re: Функционирование TSLab и оптимальная реализация
[Re: Sergey Pavlov]
|
writer
Registered: Fri Apr 24 2015
Записи: 596
|
На скриншоте видно, что заявки через первый тслаб ставятся порядка на 1 секунду быстрее, чем через второй. Работает один и тот же скрипт. Вы могли бы подключить оба ТСЛаб к одному и тому же серверу? То есть сравнить в чистом виде производительность ТСЛаб 1.2 с 2.0 когда оба подключены через WhoTrades и когда оба подключены через HFT Transaq? Нам кажется естественным, что HFT Transaq должен вести себя быстрее или также по сравнению с WhoTrades. Но если аналогичная разница в скорости на 1 секунду будет наблюдаться именно из-за разницы версий ТСЛаб, то это значит мы где-то потеряли кусочек производительности... По крайней мере, это будет пища для размышлений.
|
Наверх
|
|
|
|
#80400 - Mon Nov 21 2016 12:05 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: Option Wizard]
|
newbie
Registered: Wed Nov 09 2016
Записи: 28
|
Насколько я понимаю, это невозможно, поскольку первый тслаб (whotrades) работает только через обычный финамовский transaq connector и только через него. Второй тслаб работает через высокоскоростной transaq connector, в котором в 10 раз выше скорость отправки транзакций...по этой идее всё должно быть оперативнее именно во втором тслабе.
Однако, вывод о том, что потеряна производительность именно во второй версии в сравнении с первой, делать нельзя, поскольку мне же, например, неизвестно, насколько загружены два этих разных сервера, с которыми идет коннект. Но как феномен я на это не могу не обратить внимание:)
Я буду в ближайшее время оптимизировать скрипты, чтобы в них всё обсчитывалось не более чем за 5 мс. Чтобы фактор расчетов фактически убрать из задержки выставления заявки. Сейчас в среднем каждый скрипт пересчитывается за 50 мс. Потом еще раз буду сравнивать.
Еще раз прикладываю сегодняшние расхождения. Слева время выставления заявок через первый тслаб (обычный транзак Whotrades), справа - через второй тслаб (HFTransaq финама). Работают одни и те же скрипты. Задержка не в пользу второго тслаба от 1 до 1.5 секунд.
Attachments
orders2.png (182 downloads)
|
Наверх
|
|
|
|
#80401 - Mon Nov 21 2016 12:41 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: Sergey Pavlov]
|
writer
Registered: Fri Apr 24 2015
Записи: 596
|
Насколько я понимаю, это невозможно, поскольку первый тслаб (whotrades) работает только через обычный финамовский transaq connector и только через него. Второй тслаб работает через высокоскоростной transaq connector, в котором в 10 раз выше скорость отправки транзакций...по этой идее всё должно быть оперативнее именно во втором тслабе. Технически, вы можете создать второй коннектор внутри ТСЛаб 2.0 для WhoTrades и торговать их одновременно. Возможно, даже ключ из 1.2 подойдет (не уверен на 100%). Еще раз прикладываю сегодняшние расхождения. Слева время выставления заявок через первый тслаб (обычный транзак Whotrades), справа - через второй тслаб (HFTransaq финама). Работают одни и те же скрипты. Задержка не в пользу второго тслаба от 1 до 1.5 секунд. Чисто теоретически (как рабочая идея), эти два сервера могут быть не синхронизированы по времени?.. Наблюдать эти отличия (если они есть) можно наверное на графике баров в таймфрейме S1... У меня даже где-то был скрипт, который этим сравнением занимается...
|
Наверх
|
|
|
|
#80402 - Mon Nov 21 2016 01:06 PM
Re: Функционирование TSLab и оптимальная реализация
[Re: Option Wizard]
|
newbie
Registered: Wed Nov 09 2016
Записи: 28
|
Технически, вы можете создать второй коннектор внутри ТСЛаб 2.0 для WhoTrades и торговать их одновременно. Возможно, даже ключ из 1.2 подойдет (не уверен на 100%).
Так я и хотел сделать изначально, но ключ к Whotrades, который я получил в ЛК при покупке позволил мне активировать подключение лишь в первом тслабе. Чисто теоретически (как рабочая идея), эти два сервера могут быть не синхронизированы по времени?..
Это может быть запросто, но выше писали, что тслаб никак не ориентируется на время сервера и локальное время, а использует лишь биржевое время, которое идет в поле TIME у тиков. Из опыта самописных программ, которые также работают с транзаком, могу сказать, что расхождение с серверным временем может быть до 13 секунд (бывало и такое!).
|
Наверх
|
|
|
|
|
|