Временные метки в ордерах

про поля Order.TimeCallBack, Order.TimeCancel и т.п.

  1. surat

    Регистрация:
    06.01.18
    Сообщения:
    7
    Был на сайте:
    26.05.22

    Коннектор QuikDDE.

    Пытаюсь использовать поля Order.TimeCallBack, Order.TimeCancel. Последнее вообще никогда не заполняется (см. скриншот). Первое же по описанию - "время выставления ордера на биржу". Но оно меняется в течение жизни ордера. Например, выставлен ордер в 11:00:00, исполнен в 11:00:05. Вначале запишется первое значение, после исполнения поменяется на второе. С отменой то же самое - время отмены записывается в Order.TimeCallBack, а не туда, куда следует.

    P.S. а вообще хотелось бы иметь еще поле Order.TimeDone, куда будет записываться время исполнения ордера.

    surat
    13.12.2018 01:20
    #1
  2. surat

    Регистрация:
    06.01.18
    Сообщения:
    7
    Был на сайте:
    26.05.22
    Да, пользуюсь стандартным слоем создания роботов (класс робота наследуется от BotPanel). Коннектор был указан в первом посте - QuikDDE. К временным меткам ордеров обращаюсь внутри обработчика события OrderUpdateEvent. Примерно так:

    private void robot_OrderUpdateEvent(Order order)
    {
    DateTime UnnamedVar = order.TimeCallBack;
    }

    Скриншот к первому посту почему-то не прикрепился, попробую еще раз:

    P.S. За TimeDone спасибо!

    Скачать order.png 16 Кб
    surat
    22.01.2019 10:14
    #2
  3. Алексей Ван Команда форума

    Регистрация:
    02.02.13
    Сообщения:
    1172
    Был на сайте:
    24.04.24
    Цитата: surat

    Коннектор QuikDDE.

    Пытаюсь использовать поля Order.TimeCallBack, Order.TimeCancel. Последнее вообще никогда не заполняется (см. скриншот). Первое же по описанию - "время выставления ордера на биржу". Но оно меняется в течение жизни ордера. Например, выставлен ордер в 11:00:00, исполнен в 11:00:05. Вначале запишется первое значение, после исполнения поменяется на второе. С отменой то же самое - время отмены записывается в Order.TimeCallBack, а не туда, куда следует.

    P.S. а вообще хотелось бы иметь еще поле Order.TimeDone, куда будет записываться время исполнения ордера.

    Сделал TimeDone. Но опять же. Это работает только если Вы пользуетесь стандартным слоем создания роботов, позициями и журналированием.

    По поводу остального. У нас хранилище ордеров базовых находится в журнале. И доступ валидированный к ордерам осуществляется из него. Если Вы используете чистые серваки, то у них нет памяти по прошлым ордерам и нет специальных структур для хранения ордеров и грамотной расстановки времени того или иного характера. Для них каждый ордер как новый. Мы не можем нагрузить их базами данных ордеров, чтобы не уменьшать скорость работы, т.ч. как есть.

    Если Вы всё таки стандартным слоем роботов пользуетесь, то мне надо знать в каком коннекторе так с ордерами происходит, чтобы это пофиксить.

    Алексей Ван
    22.01.2019 11:39
    #3