Индикатор торговой сессии

Страницы: 1
RSS
Индикатор торговой сессии
 
Столкнулся с забавным явлением: у меня робот торгует, ориентируясь только на LAST, а в контекстном меню я пришпилил две кнопки "купить" и "продать" (для ручной торговли через скрипт), и там я повесил уже не LAST, а BID и OFFER (чтобы сделка исполнялась почти мгновенно, но не по рыночной цене). Всё бы хорошо, но сегодня я вдруг увидел там нули: LAST показывает нормальную цену последней сделки (впрочем, она её показывает даже при работе без Инета), а BID и OFFER обнулились. Начал разбираться - оказалось, что нули она показывает не для всех тикеров, а только для тех, по которым торги в данный момент не ведутся (вечерняя сессия на Мосбирже, когда после 19:00 торгуются только "голубые фишки"). Я не раз нарывался на диагностику "Торги по этому финансовому инструменту сейчас не ведутся" когда я или робот хотели что-то купить/продать "не вовремя". А теперь - вот он, индикатор: при подаче заявки буду проверять на 0 эти параметры и не торговать "чем попало". Не знаю, кто и как это делает (если делает), но этот индикатор мне кажется самым удобным. Рекомендую!
 
Не проще ли пользоваться предназначенными для определения состояния сессии параметрами?
STATUS                  STRING   Статус инструмента

TRADINGSTATUS           STRING   Состояние сессии
Но есть такая проблема, что таблица текущих торгов очень тормозная и могут быть задержки


Я лично для индикации сессии сравниваю время последней свечи инструмента с локальным временем скорректированным под нужный таймфрейм
Для малых таймфреймов отлично подходит.
 
BlaZed, Не проще. Оккам запрещает: ведь BID и OFFER по-любому нужны. К тому же, о тормозах здесь и речи быть не может - это же фактически две соседние цены в стакане. доступные даже без наличия самого стакана. Я в меню обновляю эти цены раз в 150 мс - куда уж чаще? Ну, теперь ещё буду читать перед отправкой заявки - по затратам ресурсов это не стоящие внимания копейки. Свечи же (у меня они минимум 15-секундные, у Вас, я полагаю, не меньше) намного тормознутее.
 
Свечи могут не поступать. Есть такая ошибка (особенность) у серверной части брокера - последняя цена обновляется, а свечи нет. При этом торговая сессия идет. Смотришь на график, не двигается, а цена последней сделки меняется.

Данные стакана, тоже могут не поступать. При этом еще есть планка, когда нет заявок. Есть предторговый аукцион, когда стакан заполнен, а сессия не идет.
Для срочного рынка есть клиринг, когда сессия не идет, а заявки какое-то время еще есть в стакане.
 
Nikolay, Вот! Свечи, кстати, я тоже считаю сам - так надёжнее. :)
 
Цитата
Владимир написал: Я в меню обновляю эти цены раз в 150 мс - куда уж чаще?
Основной мой посыл сообщения был о том, что таблица текущих торгов крайне тормозная, обновляется не чаще чем раз в 1 секунду.
Что при высоколиквидных рынках весьма неприятно.

Поэтому ваши 150мс абсолютно бесполезное занятие.
 
Что-то предыдущее сообщение криво отправилось, а правки нет...

Цитата
Владимир написал:
BlaZed, Не проще. Оккам запрещает: ведь BID и OFFER по-любому нужны. К тому же, о тормозах здесь и речи быть не может - это же фактически две соседние цены в стакане. доступные даже без наличия самого стакана. Я в меню обновляю эти цены раз в 150 мс - куда уж чаще? Ну, теперь ещё буду читать перед отправкой заявки - по затратам ресурсов это не стоящие внимания копейки. Свечи же (у меня они минимум 15-секундные, у Вас, я полагаю, не меньше) намного тормознутее.
Основной мой посыл сообщения был о том, что таблица текущих торгов крайне тормозная, обновляется не чаще чем раз в 1 секунду.
Что при высоколиквидных рынках весьма неприятно.

Поэтому ваши 150мс абсолютно бесполезное занятие.
 
BlaZed, Ошибаетесь! Я же вижу, как у меня меняются данные, получаемые именно из TTT по BID и OFFER!
 
Цитата
Владимир написал:
BlaZed, Ошибаетесь! Я же вижу, как у меня меняются данные, получаемые именно из TTT по BID и OFFER!
Сорри, вы оказались правы.
У меня в квике, как оказалось, ограничения стояли на получение данных раз в 1 секунду.
 
Цитата
BlaZed написал:
У меня в квике, как оказалось, ограничения стояли на получение данных раз в 1 секунду.

Прикольно, это что за настройка такая?
 
Цитата
swerg написал:
Цитата
BlaZed написал:
У меня в квике, как оказалось, ограничения стояли на получение данных раз в 1 секунду.

Прикольно, это что за настройка такая?
Основные настройки/Программа/Получение данных/Запрашивать данные раз в ___ сек.
 
Игорь М, Непохоже. Там у меня вообще стоит 10 секунд, а данные обновляются НАМНОГО чаще!
 
Цитата
Владимир написал:
Игорь М, Непохоже. Там у меня вообще стоит 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
 
Цитата
Владимир написал:
Игорь М, Непохоже. Там у меня вообще стоит 10 секунд, а данные обновляются НАМНОГО чаще!
Эти секунды берутся, если установлен флаг "Запрашивать данные раз в".
Если не установлен, то происходит постоянное получение данных, с учетом минимальной допустимой дискретности.
 
BlaZed, Да мне, в общем, пофиг - меня устраивает и раз в секунду, и даже реже (сейчас малый обработчик стоит на полутора секундах, большой, как и раньше, на 15. Задержку в 150 мс я поставил не для того, чтобы данные почаще обновлялись, а для того, чтобы на мышку побыстрее реагировало. :smile:

Nikolay, Во! Это - похоже! :smile:  
Страницы: 1
Читают тему
Наверх