Или надо шаманить с параметрами TRADINGSTATE + CLSTATE ?
Порой мне кажется разработчики QUIK забыли сделать пару очевидных колбеков типа OnTradingStart() и OnTradingStop(), которые срабатываюь, когда торговля начинается/возобновляется и когда она приостанавливается, вместо того, чтобы париться с расписанием торгов или вышеупомянутыми параметрами?
Времена часто изменяются. Они на сайте биржи в разделе расписание торгов есть. У Валютной секции совсем другие времена, для примера. Так что да, надо читать самому статус, правда здесь тоже есть проблема, т.к. флаги приходят с явными задержками, особенно с CLSTATE в вечернюю сессию. Очень часто до 2-х минут задержка. С TRADINGSTATE получше, но тоже задержки до 10-15 секунд.
И почему-то очень часто вижу, что время вечерней сессии 19:00, хотя 19:05 на самом деле, если нет другого сообщения. Это на фондовой секции в 19:00 начинается вечерний аукцион открытия, сама же сессия тоже в 19:05.
Как-то тоже интересовался этим вопросом. Записывал скриптом в лог изменения статусов на срочном рынке (их аж четыре!), и параметр session_status в коллбэке OnFuturesClientHolding.
Лог:
Скрытый текст
Актуальный статус торговой сессии. Возможные значения: «0» – не определено; «1» – основная сессия; «2» – начался промклиринг; «3» – завершился промклиринг; «4» – начался основной клиринг; «5» – основной клиринг: новая сессия назначена; «6» – завершился основной клиринг; «7» – завершилась вечерняя сессия
22/Aug 09:39:32 22/Aug 09:41:18 приостановлена Назначен пр. 22/Aug 09:41:49 приостановлена Назначен пр. BRU4: 1 22/Aug 09:41:49 приостановлена Назначен пр. SRU4: 1 22/Aug 09:50:03 торгуется Назначен пр. 22/Aug 09:59:39 приостановлена Назначен пр. 22/Aug 10:00:11 торгуется Назначен пр. 22/Aug 10:31:50 торгуется Назначен пр. BRU4: 1 22/Aug 10:32:14 торгуется Назначен пр. BRU4: 1 22/Aug 10:50:49 22/Aug 10:54:08 торгуется Назначен пр. 22/Aug 10:54:25 торгуется Назначен пр. BRU4: 1 22/Aug 10:54:25 торгуется Назначен пр. SRU4: 1 22/Aug 11:00:49 торгуется Назначен пр. SiU4: 1 22/Aug 11:01:56 торгуется Назначен пр. SiU4: 1 22/Aug 14:00:02 приостановлена Идёт пр. 22/Aug 14:01:35 приостановлена Идёт пр. SRU4: 3 22/Aug 14:01:35 приостановлена Идёт пр. BRU4: 3 22/Aug 14:01:35 приостановлена Идёт пр. SiU4: 3 22/Aug 14:05:10 торгуется Завершен пр. 22/Aug 14:20:49 торгуется Завершен пр. MMU4: 3 22/Aug 14:21:08 торгуется Завершен пр. MMU4: 3
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 23/Aug 23:00:45 23/Aug 23:01:35 открыта открыта Назначен пр. торгуется 23/Aug 23:01:48 открыта открыта Назначен пр. торгуется MMU4: 6 23/Aug 23:01:48 открыта открыта Назначен пр. торгуется SiU4: 6 23/Aug 23:50:01 открыта закрыта Назначен пр. приостановлена 23/Aug 23:50:07 закрыта закрыта Назначен пр. приостановлена
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк
26/Aug 09:46:57 закрыта закрыта Назначен пр. приостановлена 26/Aug 09:47:19 закрыта закрыта Назначен пр. приостановлена SiU4: 1 26/Aug 09:50:01 закрыта открытие Назначен пр. торгуется 26/Aug 09:50:13 аукцион открытие Назначен пр. торгуется 26/Aug 09:59:23 аукцион закрыта Назначен пр. приостановлена 26/Aug 09:59:27 закрыта закрыта Назначен пр. приостановлена 26/Aug 10:00:09 открыта закрыта Назначен пр. приостановлена 26/Aug 10:00:19 открыта открыта Назначен пр. торгуется
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк
26/Aug 11:12:09 открыта открыта Назначен пр. торгуется 26/Aug 11:12:35 открыта открыта Назначен пр. торгуется SiU4: 1 26/Aug 11:26:16 открыта открыта Назначен пр. торгуется GZU4: 1 26/Aug 11:54:50 открыта открыта Назначен пр. торгуется MMU4: 1 26/Aug 13:18:37 открыта открыта Назначен пр. торгуется MMU4: 1 26/Aug 13:18:37 открыта открыта Назначен пр. торгуется MMU4: 1 26/Aug 13:35:31 открыта открыта Назначен пр. торгуется MMU4: 1 26/Aug 14:00:02 открыта закрыта Идёт пр. приостановлена ************ 26/Aug 14:00:06 закрыта закрыта Идёт пр. приостановлена 26/Aug 14:01:37 закрыта закрыта Идёт пр. приостановлена SiU4: 3 26/Aug 14:01:37 закрыта закрыта Идёт пр. приостановлена GZU4: 3 26/Aug 14:01:37 закрыта закрыта Идёт пр. приостановлена MMU4: 3 26/Aug 14:05:08 открыта закрыта Идёт пр. приостановлена 26/Aug 14:05:10 открыта открыта Завершен пр. торгуется ************ 26/Aug 14:31:19 открыта открыта Завершен пр. торгуется BRU4: 3 26/Aug 14:35:41 открыта открыта Завершен пр. торгуется BRU4: 3
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 26/Aug 18:48:37 26/Aug 18:49:39 открыта открыта Завершен пр. торгуется 26/Aug 18:49:51 открыта открыта Завершен пр. торгуется BRU4: 3 26/Aug 18:49:51 открыта открыта Завершен пр. торгуется GZU4: 3 26/Aug 18:49:51 открыта открыта Завершен пр. торгуется MMU4: 3 26/Aug 18:49:51 открыта открыта Завершен пр. торгуется SiU4: 3 26/Aug 18:50:03 открыта закрыта Идёт осн. завершена 26/Aug 18:50:11 закрыта закрыта Идёт осн. завершена 26/Aug 18:50:14 закрыта закрыта Идёт осн. завершена SiU4: 4 26/Aug 18:50:14 закрыта закрыта Идёт осн. завершена GZU4: 4 26/Aug 18:50:14 закрыта закрыта Идёт осн. завершена MMU4: 4 26/Aug 18:50:14 закрыта закрыта Идёт осн. завершена BRU4: 4 26/Aug 18:58:37 неопределен закрыта Идёт осн. завершена 26/Aug 18:58:39 неопределен закрыта Идёт осн. назначена 26/Aug 18:58:49 неопределен закрыта Идёт осн. назначена SiU4: 5 26/Aug 18:58:49 неопределен закрыта Идёт осн. назначена GZU4: 5 26/Aug 18:58:49 неопределен закрыта Идёт осн. назначена MMU4: 5 26/Aug 18:58:49 неопределен закрыта Идёт осн. назначена BRU4: 5 26/Aug 19:05:02 неопределен закрыта Идёт осн. назначена MMU4: 5 26/Aug 19:05:07 открыта открыта Идёт осн. торгуется 26/Aug 19:05:23 открыта открыта Идёт осн. торгуется MMU4: 5 26/Aug 19:07:51 открыта открыта Идёт осн. торгуется MMU4: 5 26/Aug 19:08:57 открыта открыта Назначен пр. торгуется 26/Aug 19:08:59 открыта открыта Назначен пр. торгуется SiU4: 6 26/Aug 19:09:00 открыта открыта Назначен пр. торгуется GZU4: 6 26/Aug 19:09:00 открыта открыта Назначен пр. торгуется MMU4: 6 26/Aug 19:09:00 открыта открыта Назначен пр. торгуется BRU4: 6 26/Aug 19:09:17 открыта открыта Назначен пр. торгуется MMU4: 6
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 27/Aug 10:52:15 27/Aug 10:55:42 открыта открыта Назначен пр. торгуется 27/Aug 10:55:57 открыта открыта Назначен пр. торгуется MMU4: 1 27/Aug 11:19:22 27/Aug 11:20:03 открыта открыта Назначен пр. торгуется 27/Aug 11:20:26 открыта открыта Назначен пр. торгуется MMU4: 1 27/Aug 14:00:06 закрыта закрыта Идёт пр. приостановлена 27/Aug 14:04:14 закрыта закрыта Идёт пр. приостановлена MMU4: 3 27/Aug 14:05:06 открыта закрыта Идёт пр. приостановлена 27/Aug 14:05:11 открыта открыта Завершен пр. торгуется 27/Aug 18:50:03 открыта закрыта Идёт осн. завершена 27/Aug 18:50:05 открыта закрыта Идёт осн. завершена MMU4: 4 27/Aug 18:50:06 закрыта закрыта Идёт осн. завершена 27/Aug 18:58:05 неопределен закрыта Идёт осн. завершена 27/Aug 18:58:07 неопределен закрыта Идёт осн. назначена 27/Aug 18:58:17 неопределен закрыта Идёт осн. назначена MMU4: 5 27/Aug 19:05:07 открыта открыта Идёт осн. торгуется 27/Aug 19:08:59 открыта открыта Назначен пр. торгуется 27/Aug 19:09:00 открыта открыта Назначен пр. торгуется MMU4: 6 27/Aug 19:46:14 открыта открыта Назначен пр. торгуется IMOEXF: 6 27/Aug 19:54:35 открыта открыта Назначен пр. торгуется IMOEXF: 6
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 28/Aug 13:19:10 28/Aug 13:23:34 открыта открыта Назначен пр. торгуется 28/Aug 13:23:55 открыта открыта Назначен пр. торгуется IMOEXF: 1 28/Aug 14:00:06 закрыта открыта Назначен пр. торгуется 28/Aug 14:00:10 закрыта закрыта Идёт пр. приостановлена 28/Aug 14:01:39 закрыта закрыта Идёт пр. приостановлена IMOEXF: 3 28/Aug 14:05:11 открыта открыта Завершен пр. торгуется 28/Aug 16:13:09 открыта открыта Завершен пр. торгуется MMU4: 3 28/Aug 17:31:04 открыта открыта Завершен пр. торгуется BRU4: 3 28/Aug 17:54:39 открыта открыта Завершен пр. торгуется BRU4: 3 28/Aug 18:15:40 открыта открыта Завершен пр. торгуется MMU4: 3 28/Aug 18:50:02 открыта закрыта Идёт осн. завершена 28/Aug 18:50:05 открыта закрыта Идёт осн. завершена IMOEXF: 4 28/Aug 18:50:05 открыта закрыта Идёт осн. завершена MMU4: 4 28/Aug 18:50:05 открыта закрыта Идёт осн. завершена BRU4: 4 28/Aug 18:50:07 закрыта закрыта Идёт осн. завершена 28/Aug 18:57:47 неопределен закрыта Идёт осн. назначена 28/Aug 18:57:56 неопределен закрыта Идёт осн. назначена IMOEXF: 5 28/Aug 18:57:56 неопределен закрыта Идёт осн. назначена MMU4: 5 28/Aug 18:57:56 неопределен закрыта Идёт осн. назначена BRU4: 5 28/Aug 19:02:09 неопределен закрыта Идёт осн. назначена MMU4: 5 28/Aug 19:02:09 неопределен закрыта Идёт осн. назначена BRU4: 5 28/Aug 19:05:07 открыта открыта Идёт осн. торгуется 28/Aug 19:08:23 открыта открыта Назначен пр. торгуется 28/Aug 19:08:23 открыта открыта Назначен пр. торгуется IMOEXF: 6 28/Aug 19:08:24 открыта открыта Назначен пр. торгуется MMU4: 6 28/Aug 19:08:24 открыта открыта Назначен пр. торгуется BRU4: 6 28/Aug 21:30:28 открыта открыта Назначен пр. торгуется BRU4: 6 28/Aug 23:50:05 закрыта открыта Назначен пр. торгуется 28/Aug 23:50:10 закрыта закрыта Назначен пр. приостановлена
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 29/Aug 09:27:11 29/Aug 09:28:48 закрыта закрыта Назначен пр. приостановлена 29/Aug 09:29:01 закрыта закрыта Назначен пр. приостановлена BRU4: 1 29/Aug 09:50:02 закрыта открытие Назначен пр. торгуется 29/Aug 09:50:06 аукцион открытие Назначен пр. торгуется 29/Aug 09:59:36 аукцион закрыта Назначен пр. приостановлена 29/Aug 09:59:41 закрыта закрыта Назначен пр. приостановлена 29/Aug 10:00:01 закрыта открыта Назначен пр. торгуется 29/Aug 10:00:06 открыта открыта Назначен пр. торгуется 29/Aug 13:16:16 открыта открыта Назначен пр. торгуется MMU4: 1 ............................................................................ 29/Aug 13:50:19 открыта открыта Назначен пр. торгуется MMU4: 1 29/Aug 14:00:02 открыта закрыта Идёт пр. приостановлена 29/Aug 14:00:07 закрыта закрыта Идёт пр. приостановлена 29/Aug 14:00:46 закрыта закрыта Идёт пр. приостановлена MMU4: 2 29/Aug 14:01:38 закрыта закрыта Идёт пр. приостановлена BRU4: 3 29/Aug 14:01:57 закрыта закрыта Идёт пр. приостановлена MMU4: 3 29/Aug 14:05:07 открыта закрыта Идёт пр. приостановлена 29/Aug 14:05:12 открыта открыта Завершен пр. торгуется 29/Aug 14:45:34 открыта открыта Завершен пр. торгуется MMU4: 3 ........................................................................... 29/Aug 18:45:15 открыта открыта Завершен пр. торгуется MMU4: 3 29/Aug 18:50:04 открыта закрыта Идёт осн. завершена 29/Aug 18:50:05 открыта закрыта Идёт осн. завершена BRU4: 4 29/Aug 18:50:05 открыта закрыта Идёт осн. завершена MMU4: 4 29/Aug 18:50:05 открыта закрыта Идёт осн. завершена NGU4: 4 29/Aug 18:50:10 закрыта закрыта Идёт осн. завершена 29/Aug 19:03:39 неопределен закрыта Идёт осн. назначена NGU4: 5 29/Aug 19:03:39 неопределен закрыта Идёт осн. назначена MMU4: 5 29/Aug 19:05:05 неопределен открыта Идёт осн. торгуется 29/Aug 19:05:10 открыта открыта Идёт осн. торгуется 29/Aug 19:09:24 открыта открыта Назначен пр. торгуется 29/Aug 19:09:27 открыта открыта Назначен пр. торгуется BRU4: 6 29/Aug 19:09:27 открыта открыта Назначен пр. торгуется MMU4: 6 29/Aug 19:09:27 открыта открыта Идёт осн. торгуется NGU4: 6 29/Aug 19:09:30 открыта открыта Назначен пр. торгуется
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 30/Aug 09:43:50 30/Aug 09:45:13 закрыта закрыта Назначен пр. приостановлена 30/Aug 09:50:05 закрыта открытие Назначен пр. торгуется 30/Aug 09:50:09 аукцион открытие Назначен пр. торгуется 30/Aug 09:59:55 закрыта закрыта Назначен пр. приостановлена 30/Aug 10:00:10 открыта закрыта Назначен пр. приостановлена 30/Aug 10:00:15 открыта открыта Назначен пр. торгуется 30/Aug 13:10:38 открыта открыта Назначен пр. торгуется MMU4: 1 30/Aug 13:42:33 открыта открыта Назначен пр. торгуется MMU4: 1 30/Aug 14:00:05 закрыта закрыта Идёт пр. приостановлена 30/Aug 14:00:45 закрыта закрыта Идёт пр. приостановлена MMU4: 2 30/Aug 14:01:34 закрыта закрыта Идёт пр. приостановлена MMU4: 3 30/Aug 14:01:56 закрыта закрыта Идёт пр. приостановлена MMU4: 3 30/Aug 14:05:10 открыта открыта Завершен пр. торгуется 30/Aug 14:16:50 открыта открыта Завершен пр. торгуется MMU4: 3 30/Aug 15:16:34 открыта открыта Завершен пр. торгуется MMU4: 3 30/Aug 16:40:35 открыта открыта Завершен пр. торгуется BRU4: 3 30/Aug 16:40:38 открыта открыта Завершен пр. торгуется BRU4: 3 30/Aug 16:40:48 открыта открыта Завершен пр. торгуется NGU4: 3 30/Aug 16:40:50 открыта открыта Завершен пр. торгуется NGU4: 3 30/Aug 16:41:24 открыта открыта Завершен пр. торгуется CRU4: 3 30/Aug 16:43:41 открыта открыта Завершен пр. торгуется CRU4: 3
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 30/Aug 23:03:51 30/Aug 23:11:12 открыта открыта Назначен пр. торгуется 30/Aug 23:11:29 открыта открыта Назначен пр. торгуется BRU4: 6 30/Aug 23:11:29 открыта открыта Назначен пр. торгуется CRU4: 6 30/Aug 23:11:29 открыта открыта Назначен пр. торгуется MMU4: 6 30/Aug 23:11:29 открыта открыта Назначен пр. торгуется NGU4: 6 30/Aug 23:15:54 открыта открыта Назначен пр. торгуется NAU4: 6 30/Aug 23:16:09 открыта открыта Назначен пр. торгуется NAU4: 6 30/Aug 23:50:02 открыта закрыта Назначен пр. приостановлена 30/Aug 23:50:07 закрыта закрыта Назначен пр. приостановлена
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 02/Sep 22:39:41 02/Sep 22:41:23 открыта открыта Назначен пр. торгуется 02/Sep 22:41:40 открыта открыта Назначен пр. торгуется NAU4: 6 02/Sep 23:39:30 открыта открыта Назначен пр. торгуется NAU4: 6 02/Sep 23:50:09 закрыта закрыта Назначен пр. приостановлена
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 03/Sep 11:17:43 открыта открыта Назначен пр. торгуется SiU4: 1 03/Sep 14:00:03 открыта закрыта Идёт пр. приостановлена 03/Sep 14:00:08 закрыта закрыта Идёт пр. приостановлена 03/Sep 14:01:51 закрыта закрыта Идёт пр. приостановлена NAU4: 3 03/Sep 14:01:52 закрыта закрыта Идёт пр. приостановлена SiU4: 3 03/Sep 14:05:13 открыта закрыта Идёт пр. приостановлена 03/Sep 14:05:18 открыта открыта Завершен пр. торгуется 03/Sep 14:24:04 открыта открыта Завершен пр. торгуется SiU4: 3 ........................................................................
03/Sep 18:45:56 открыта открыта Завершен пр. торгуется SiU4: 3 03/Sep 18:50:02 открыта закрыта Идёт осн. завершена 03/Sep 18:50:06 открыта закрыта Идёт осн. завершена NAU4: 4 03/Sep 18:50:06 открыта закрыта Идёт осн. завершена SiU4: 4 03/Sep 18:50:06 открыта закрыта Идёт осн. завершена BRV4: 4 03/Sep 18:50:06 открыта закрыта Идёт осн. завершена NGU4: 4 03/Sep 18:50:07 закрыта закрыта Идёт осн. завершена 03/Sep 18:58:42 неопределен закрыта Идёт осн. завершена 03/Sep 18:58:47 неопределен закрыта Идёт осн. завершена SiU4: 4 03/Sep 18:58:47 неопределен закрыта Идёт осн. назначена 03/Sep 18:58:55 неопределен закрыта Идёт осн. назначена NAU4: 5 03/Sep 18:58:55 неопределен закрыта Идёт осн. назначена SiU4: 5 03/Sep 18:58:55 неопределен закрыта Идёт осн. назначена BRV4: 5 03/Sep 18:58:55 неопределен закрыта Идёт осн. назначена NGU4: 5 03/Sep 19:03:35 неопределен закрыта Идёт осн. назначена SiU4: 5 03/Sep 19:05:02 неопределен открыта Идёт осн. торгуется 03/Sep 19:05:07 неопределен открыта Идёт осн. торгуется SiU4: 5 03/Sep 19:05:08 открыта открыта Идёт осн. торгуется 03/Sep 19:07:11 открыта открыта Идёт осн. торгуется SiU4: 5 03/Sep 19:09:10 открыта открыта Идёт осн. торгуется SiU4: 5 03/Sep 19:09:17 открыта открыта Идёт осн. торгуется NAU4: 6 03/Sep 19:09:17 открыта открыта Идёт осн. торгуется SiU4: 6 03/Sep 19:09:17 открыта открыта Идёт осн. торгуется BRV4: 6 03/Sep 19:09:17 открыта открыта Идёт осн. торгуется NGU4: 6 03/Sep 19:09:18 открыта открыта Назначен пр. торгуется 03/Sep 19:13:30 открыта открыта Назначен пр. торгуется SiU4: 6 ........................................................................
03/Sep 22:51:34 открыта открыта Назначен пр. торгуется BRV4: 6 03/Sep 23:50:07 закрыта закрыта Назначен пр. приостановлена
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 04/Sep 09:33:12 04/Sep 09:34:48 закрыта закрыта Назначен пр. приостановлена 04/Sep 09:35:07 закрыта закрыта Назначен пр. приостановлена BRV4: 1 04/Sep 09:35:07 закрыта закрыта Назначен пр. приостановлена NAU4: 1 04/Sep 09:35:07 закрыта закрыта Назначен пр. приостановлена SiU4: 1 04/Sep 09:50:02 закрыта открытие Назначен пр. торгуется 04/Sep 09:50:07 аукцион открытие Назначен пр. торгуется 04/Sep 09:59:27 аукцион закрыта Назначен пр. приостановлена 04/Sep 09:59:32 закрыта закрыта Назначен пр. приостановлена 04/Sep 10:00:07 открыта закрыта Назначен пр. приостановлена 04/Sep 10:00:12 открыта открыта Назначен пр. торгуется 04/Sep 10:06:00 открыта открыта Назначен пр. торгуется SiU4: 1 04/Sep 10:10:07 открыта открыта Назначен пр. торгуется SiU4: 1 04/Sep 10:10:55 открыта открыта Назначен пр. торгуется NAU4: 1 04/Sep 10:12:08 открыта открыта Назначен пр. торгуется NAU4: 1 04/Sep 10:26:08 04/Sep 10:27:03 открыта открыта Назначен пр. торгуется 04/Sep 10:27:26 открыта открыта Назначен пр. торгуется BRV4: 1 04/Sep 10:27:26 открыта открыта Назначен пр. торгуется NAU4: 1 04/Sep 10:27:26 открыта открыта Назначен пр. торгуется SiU4: 1 04/Sep 11:00:22 открыта открыта Назначен пр. торгуется NAU4: 1 04/Sep 11:49:48 открыта открыта Назначен пр. торгуется SiU4: 1 04/Sep 11:52:29 открыта открыта Назначен пр. торгуется NAU4: 1 04/Sep 12:49:56 открыта открыта Назначен пр. торгуется NAU4: 1 04/Sep 14:00:04 закрыта открыта Назначен пр. торгуется 04/Sep 14:00:09 закрыта закрыта Идёт пр. приостановлена 04/Sep 14:01:41 закрыта закрыта Идёт пр. приостановлена SiU4: 3 04/Sep 14:01:41 закрыта закрыта Идёт пр. приостановлена NAU4: 3 04/Sep 14:01:41 закрыта закрыта Идёт пр. приостановлена BRV4: 3 04/Sep 14:05:10 открыта закрыта Идёт пр. приостановлена 04/Sep 14:05:14 открыта открыта Завершен пр. торгуется 04/Sep 15:49:32 открыта открыта Завершен пр. торгуется NAU4: 3 04/Sep 17:09:55 открыта открыта Завершен пр. торгуется NAU4: 3 04/Sep 17:34:45 открыта открыта Завершен пр. торгуется SiU4: 3 04/Sep 17:39:04 открыта открыта Завершен пр. торгуется SiU4: 3 04/Sep 17:56:22 открыта открыта Завершен пр. торгуется MMU4: 3 04/Sep 18:02:42 открыта открыта Завершен пр. торгуется MMU4: 3 04/Sep 18:21:32 открыта открыта Завершен пр. торгуется BRV4: 3 04/Sep 18:22:56 открыта открыта Завершен пр. торгуется BRV4: 3
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 05/Sep 00:21:16 05/Sep 00:22:24 закрыта закрыта Назначен пр. приостановлена 05/Sep 00:22:51 закрыта закрыта Назначен пр. приостановлена BRV4: 6 05/Sep 00:22:51 закрыта закрыта Назначен пр. приостановлена MMU4: 6 05/Sep 00:22:51 закрыта закрыта Назначен пр. приостановлена NAU4: 6 05/Sep 00:22:51 закрыта закрыта Назначен пр. приостановлена SiU4: 6
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 05/Sep 13:22:12 05/Sep 13:29:50 открыта открыта Назначен пр. торгуется 05/Sep 14:00:09 закрыта закрыта Идёт пр. приостановлена 05/Sep 14:05:09 открыта открыта Завершен пр. торгуется 05/Sep 18:25:27 открыта открыта Завершен пр. торгуется BRV4: 3 05/Sep 18:29:59 открыта открыта Завершен пр. торгуется BRV4: 3 05/Sep 18:30:52 открыта открыта Завершен пр. торгуется SiU4: 3 05/Sep 18:34:05 открыта открыта Завершен пр. торгуется SiU4: 3 05/Sep 18:39:03 открыта открыта Завершен пр. торгуется BRV4: 3 05/Sep 18:40:15 открыта открыта Завершен пр. торгуется BRV4: 3 05/Sep 18:50:07 открыта закрыта Идёт осн. завершена BRV4: 4 05/Sep 18:50:07 открыта закрыта Идёт осн. завершена SiU4: 4 05/Sep 18:50:16 закрыта закрыта Идёт осн. завершена 05/Sep 18:58:02 неопределен закрыта Идёт осн. завершена 05/Sep 18:58:12 неопределен закрыта Идёт осн. назначена 05/Sep 18:58:16 неопределен закрыта Идёт осн. назначена BRV4: 5 05/Sep 18:58:16 неопределен закрыта Идёт осн. назначена SiU4: 5 05/Sep 19:05:07 открыта закрыта Идёт осн. назначена 05/Sep 19:05:12 открыта открыта Идёт осн. торгуется 05/Sep 19:06:10 открыта открыта Идёт осн. торгуется SiU4: 5 05/Sep 19:07:15 открыта открыта Идёт осн. торгуется SiU4: 5 05/Sep 19:08:32 открыта открыта Назначен пр. торгуется 05/Sep 19:08:34 открыта открыта Назначен пр. торгуется BRV4: 6 05/Sep 19:08:34 открыта открыта Назначен пр. торгуется SiU4: 6 05/Sep 19:10:54 открыта открыта Назначен пр. торгуется MMU4: 6 05/Sep 20:57:13 открыта открыта Назначен пр. торгуется BRV4: 6 05/Sep 21:12:34 открыта открыта Назначен пр. торгуется MMU4: 6
Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк 10/Sep 22:06:46 10/Sep 22:08:12 открыта открыта Назначен пр. торгуется
Скрипт:
Скрытый текст
Код
function OnInit(scr_path)
is_run = true
file = io.open(scr_path:sub(1,-4).."log", "a+")
callBack = {}
sec = "CNYRUBF" -- Стартовый тикер
end
function OnFuturesClientHolding(t)-- Позиции по клиентским счетам (фьючерсы).
table.sinsert(callBack, t)
end
function OnStop()
file:close()
is_run = false
return 2000
end
function main()
--file:write("\n Дата Время Сессия Бирж.сесс. Статус кл. Статус Коллбэк \n")
file:write("\n Дата\t Время\t Сессия\t Бирж.сесс.\t Статус кл.\t Статус\t Коллбэк \n")
local function UpdStts(param)
return getParamEx("SPBFUT", sec, param).param_image
end
while is_run do
trd_phase = UpdStts("TRADINGPHASE") -- Сессия.
trd_stts = UpdStts("TRADINGSTATUS") -- Биржевой статус торговой сессии.
cl_stts = UpdStts("CLSTATE") -- Статус клиринга.
status = UpdStts("STATUS") -- Статус.
while #callBack > 0 or trd_phase ~= prev_trdphs or trd_stts ~= prev_trdst or cl_stts ~= prev_clst or status ~= prev_st do
if callBack[1] then -- Есть коллбек.
local t = table.sremove(callBack, 1)
sec = t.sec_code
cb_stts = sec ..": ".. t.session_status
else
cb_stts = " "
end
prev_trdphs = trd_phase
prev_trdst = trd_stts
prev_clst = cl_stts
prev_st = status
--file:write(os.date(" %d/%b %X "),trd_phase," ",trd_stts," ",cl_stts," ",status," ",cb_stts,"\n")
file:write(string.format("%s\t %s\t %s\t %s\t %s\t %s\n", os.date(" %d/%b %X"), trd_phase, trd_stts, cl_stts, status, cb_stts))
file:flush()
end
sleep(300)
end
end
Больше всего, до нескольких минут, задержка изменения в коллбэке OnFuturesClientHolding. Такое впечатление, что на бирже статус меняют вручную, рубильником!
param_image = "открыта" или, что то же самое, param_value = 1
На срочном у меня так:
Код
function OnParam(class, sec)
if class == "SPBFUT" and (sec == Tr[1].sec or sec == Tr[2].sec) then
local sessn = (getParamEx("SPBFUT",sec,"TRADINGSTATUS").param_image == "открыта")
if sessn and (cond & 0x0080 == 0x0080) then
cond = cond & 0xFF7F -- Сброс "Сессия стоп".
SetColor(tw_id, 5, -1, -1, -1, -1, -1)
elseif not sessn and cond & 0x0080 == 0 then
cond = cond | 0x0080 -- "Сессия стоп".
SetColor(tw_id, 5, -1, yellow, -1, -1, -1)
end
end
end
Ziveleos написал: param_image = "открыта" или, что то же самое, param_value = 1
На срочном у меня так:
Код
function OnParam (class, sec)
if class = = "SPBFUT" and (sec = = Tr[ 1 ].sec or sec = = Tr[ 2 ].sec) then
local sessn = ( getParamEx ( "SPBFUT" ,sec,"TRADINGSTATUS").param_image = = "открыта" )
if sessn and (cond & 0x0080 = = 0x0080 ) then
cond = cond & 0xFF7F -- Сброс "Сессия стоп".
SetColor (tw_id, 5 , - 1 , - 1 , - 1 , - 1 , - 1 )
elseif not sessn and cond & 0x0080 = = 0 then
cond = cond | 0x0080 -- "Сессия стоп".
SetColor (tw_id, 5 , - 1 , yellow, - 1 , - 1 , - 1 )
end
end
end
Так как скрипт исполняется при каждом изменении ТПП и при этом останавливает основной поток QUIK, то он тормозит работу терминала. Чтобы это устранить, можно сделать отключение скрипта, если сессия открыта для всех торгуемых инструментов, либо по времени.
Проверять на 0 цены - это плохая затея, т.к. во-первых, есть инструменты с допустимой ценой = 0, а во-вторых, для срочного рынка во время клиринга, для фондовой между сессиями цена может "бегать" от 0 до последней. Собственно в период, когда торги не идут, данные с сервера могут приходить какие угодно. Так что уже лучше время проверять, обеспечив точность своих часов. У меня сделано через несколько проверок, время, статус, сделки. И если один из них не проходит, то данные не считываются, т.к. получить цену 0 как рабочую - это проблема для алгоритмов.
Nikolay написал: Проверять на 0 цены - это плохая затея, т.к. во-первых, есть инструменты с допустимой ценой = 0, а во-вторых, для срочного рынка во время клиринга, для фондовой между сессиями цена может "бегать" от 0 до последней. Собственно в период, когда торги не идут, данные с сервера могут приходить какие угодно. Так что уже лучше время проверять, обеспечив точность своих часов. У меня сделано через несколько проверок, время, статус, сделки. И если один из них не проходит, то данные не считываются, т.к. получить цену 0 как рабочую - это проблема для алгоритмов.
Относительно времени согласен, неоднократно писал на форуме. Синхронизация компа с сервером точного времени позволяет иметь погрешность не более 20 мс. Относительно нулевой цены у инструментов. Вы такими торгуете? Можно список?
Это календарные спреды. Да торгую. Также, после известных событий, для обычных фьючерсов тоже диапазон цен может быть расширен в отрицательную область.
Nikolay написал: Это календарные спреды. Да торгую. Также, после известных событий, для обычных фьючерсов тоже диапазон цен может быть расширен в отрицательную область.
Если правильно понимаю, то это торговля опционами. Верно?
Нет, календарный спред на ММВБ - это два контракта с разной датой экспирации. Если цены будет равны, то 0. Если беквордация, то отрицательные цены. У опционов такой спред если только самому делать.
nikolz написал: Так как скрипт исполняется при каждом изменении ТТП и при этом останавливает основной поток QUIK, то он тормозит работу терминала.
При каждом изменении ТТП исполняется только первая строка. Проверка по времени - не лучший вариант. Частенько бывают задержки возобновления торгов после клиринга. К тому же, торги могут быть приостановлены по конкретному инструменту; на срочном такое не редкость. Проверку состояния сессии можно проводить непосредственно перед отправкой заявки, и, если инструмент не торгуется, устанавливать соответствующий флаг. А потом, в цикле контролировать возобновление торгов.
nikolz написал: Так как скрипт исполняется при каждом изменении ТТП и при этом останавливает основной поток QUIK, то он тормозит работу терминала.
При каждом изменении ТТП исполняется только первая строка. Проверка по времени - не лучший вариант. Частенько бывают задержки возобновления торгов после клиринга. К тому же, торги могут быть приостановлены по конкретному инструменту; на срочном такое не редкость. Проверку состояния сессии можно проводить непосредственно перед отправкой заявки, и, если инструмент не торгуется, устанавливать соответствующий флаг. А потом, в цикле контролировать возобновление торгов.
Если торги остановлены, то поэтому инструменту не будут вызываться колбеки. Что в таком случае надо еще ?
nikolz написал: Так как скрипт исполняется при каждом изменении ТТП и при этом останавливает основной поток QUIK, то он тормозит работу терминала.
При каждом изменении ТТП исполняется только первая строка. Проверка по времени - не лучший вариант. Частенько бывают задержки возобновления торгов после клиринга. К тому же, торги могут быть приостановлены по конкретному инструменту; на срочном такое не редкость. Проверку состояния сессии можно проводить непосредственно перед отправкой заявки, и, если инструмент не торгуется, устанавливать соответствующий флаг. А потом, в цикле контролировать возобновление торгов.
Да, поэтому и надо проверять в несколько проверок, чтобы фильтровать стоп-торги. На всех секциях планки бывают.
nikolz написал: Если торги остановлены, то поэтому инструменту не будут вызываться колбеки. Что в таком случае надо еще ?
1, Торги могут быть приостановлены только по одному инструменту из пары, но стакан все равно в это время может изменяться. 2, Во время клиринга колбэки приходят.
Nikolay написал: Проверять на 0 цены - это плохая затея, т.к. во-первых, есть инструменты с допустимой ценой = 0, а во-вторых, для срочного рынка во время клиринга, для фондовой между сессиями цена может "бегать" от 0 до последней. Собственно в период, когда торги не идут, данные с сервера могут приходить какие угодно. Так что уже лучше время проверять, обеспечив точность своих часов. У меня сделано через несколько проверок, время, статус, сделки. И если один из них не проходит, то данные не считываются, т.к. получить цену 0 как рабочую - это проблема для алгоритмов.
Вы же сами выше написали, что полагаться на время - так себе затея.
Цитата
Времена часто изменяются. Они на сайте биржи в разделе расписание торгов есть. У Валютной секции совсем другие времена, для примера.