Столкнулся с забавным явлением: у меня робот торгует, ориентируясь только на LAST, а в контекстном меню я пришпилил две кнопки "купить" и "продать" (для ручной торговли через скрипт), и там я повесил уже не LAST, а BID и OFFER (чтобы сделка исполнялась почти мгновенно, но не по рыночной цене). Всё бы хорошо, но сегодня я вдруг увидел там нули: LAST показывает нормальную цену последней сделки (впрочем, она её показывает даже при работе без Инета), а BID и OFFER обнулились. Начал разбираться - оказалось, что нули она показывает не для всех тикеров, а только для тех, по которым торги в данный момент не ведутся (вечерняя сессия на Мосбирже, когда после 19:00 торгуются только "голубые фишки"). Я не раз нарывался на диагностику "Торги по этому финансовому инструменту сейчас не ведутся" когда я или робот хотели что-то купить/продать "не вовремя". А теперь - вот он, индикатор: при подаче заявки буду проверять на 0 эти параметры и не торговать "чем попало". Не знаю, кто и как это делает (если делает), но этот индикатор мне кажется самым удобным. Рекомендую!
Пользователь
Сообщений: Регистрация: 20.12.2020
03.03.2021 11:34:48
Не проще ли пользоваться предназначенными для определения состояния сессии параметрами? STATUS STRING Статус инструмента
TRADINGSTATUS STRING Состояние сессии Но есть такая проблема, что таблица текущих торгов очень тормозная и могут быть задержки
Я лично для индикации сессии сравниваю время последней свечи инструмента с локальным временем скорректированным под нужный таймфрейм Для малых таймфреймов отлично подходит.
Пользователь
Сообщений: Регистрация: 25.09.2020
03.03.2021 11:51:17
BlaZed, Не проще. Оккам запрещает: ведь BID и OFFER по-любому нужны. К тому же, о тормозах здесь и речи быть не может - это же фактически две соседние цены в стакане. доступные даже без наличия самого стакана. Я в меню обновляю эти цены раз в 150 мс - куда уж чаще? Ну, теперь ещё буду читать перед отправкой заявки - по затратам ресурсов это не стоящие внимания копейки. Свечи же (у меня они минимум 15-секундные, у Вас, я полагаю, не меньше) намного тормознутее.
Пользователь
Сообщений: Регистрация: 27.01.2017
03.03.2021 12:00:00
Свечи могут не поступать. Есть такая ошибка (особенность) у серверной части брокера - последняя цена обновляется, а свечи нет. При этом торговая сессия идет. Смотришь на график, не двигается, а цена последней сделки меняется.
Данные стакана, тоже могут не поступать. При этом еще есть планка, когда нет заявок. Есть предторговый аукцион, когда стакан заполнен, а сессия не идет. Для срочного рынка есть клиринг, когда сессия не идет, а заявки какое-то время еще есть в стакане.
Пользователь
Сообщений: Регистрация: 25.09.2020
03.03.2021 12:40:31
Nikolay, Вот! Свечи, кстати, я тоже считаю сам - так надёжнее. :)
Владимир написал:
Я в меню обновляю эти цены раз в 150 мс - куда уж чаще?
Основной мой посыл сообщения был о том, что таблица текущих торгов крайне тормозная, обновляется не чаще чем раз в 1 секунду. Что при высоколиквидных рынках весьма неприятно.
Поэтому ваши 150мс абсолютно бесполезное занятие.
Пользователь
Сообщений: Регистрация: 20.12.2020
03.03.2021 13:06:51
Что-то предыдущее сообщение криво отправилось, а правки нет...
Цитата
Владимир написал: , Не проще. Оккам запрещает: ведь BID и OFFER по-любому нужны. К тому же, о тормозах здесь и речи быть не может - это же фактически две соседние цены в стакане. доступные даже без наличия самого стакана. Я в меню обновляю эти цены раз в 150 мс - куда уж чаще? Ну, теперь ещё буду читать перед отправкой заявки - по затратам ресурсов это не стоящие внимания копейки. Свечи же (у меня они минимум 15-секундные, у Вас, я полагаю, не меньше) намного тормознутее.
Основной мой посыл сообщения был о том, что таблица текущих торгов крайне тормозная, обновляется не чаще чем раз в 1 секунду. Что при высоколиквидных рынках весьма неприятно.
Поэтому ваши 150мс абсолютно бесполезное занятие.
Пользователь
Сообщений: Регистрация: 25.09.2020
03.03.2021 13:11:14
BlaZed, Ошибаетесь! Я же вижу, как у меня меняются данные, получаемые именно из TTT по BID и OFFER!
Пользователь
Сообщений: Регистрация: 20.12.2020
03.03.2021 13:19:23
Цитата
Владимир написал: , Ошибаетесь! Я же вижу, как у меня меняются данные, получаемые именно из TTT по BID и OFFER!
Сорри, вы оказались правы. У меня в квике, как оказалось, ограничения стояли на получение данных раз в 1 секунду.
Пользователь
Сообщений: Регистрация: 02.02.2015
миру мир!
05.03.2021 09:37:15
Цитата
BlaZed написал: У меня в квике, как оказалось, ограничения стояли на получение данных раз в 1 секунду.
написал: У меня в квике, как оказалось, ограничения стояли на получение данных раз в 1 секунду.
Прикольно, это что за настройка такая?
Основные настройки/Программа/Получение данных/Запрашивать данные раз в ___ сек.
Пользователь
Сообщений: Регистрация: 25.09.2020
05.03.2021 15:52:45
Игорь М, Непохоже. Там у меня вообще стоит 10 секунд, а данные обновляются НАМНОГО чаще!
Пользователь
Сообщений: Регистрация: 20.12.2020
05.03.2021 17:14:48
Цитата
Владимир написал: , Непохоже. Там у меня вообще стоит 10 секунд, а данные обновляются НАМНОГО чаще!
Именно вышеуказанная настройка мешала.
Вот простой код проверки частоты обновления параметров ТТТ по инструменту. Проверьте у себя при разных значениях.
Код
class_code="SPBFUT"
sec_code="SiH1"
function main()
clock1=0
is_run=true
while is_run do
sleep(100)
end
end
function OnStop()
is_run=false
return 100
end
function OnParam(c_code,s_code)
if(c_code==class_code)and(s_code==sec_code)then
clock2=os.clock()
message("delta="..clock2-clock1.."sec")
clock1=clock2
end
end
Пользователь
Сообщений: Регистрация: 27.01.2017
05.03.2021 17:53:44
Цитата
Владимир написал: , Непохоже. Там у меня вообще стоит 10 секунд, а данные обновляются НАМНОГО чаще!
Эти секунды берутся, если установлен флаг "Запрашивать данные раз в". Если не установлен, то происходит постоянное получение данных, с учетом минимальной допустимой дискретности.
Пользователь
Сообщений: Регистрация: 25.09.2020
05.03.2021 20:01:54
BlaZed, Да мне, в общем, пофиг - меня устраивает и раз в секунду, и даже реже (сейчас малый обработчик стоит на полутора секундах, большой, как и раньше, на 15. Задержку в 150 мс я поставил не для того, чтобы данные почаще обновлялись, а для того, чтобы на мышку побыстрее реагировало.