Plaza2
Atom Ответить
21.07.2010


Говорят РТС перешел на плаза 2, и поменял что т отам в строке
транзакции. И наш старый робот (написаный дано и не н стокшарпе) стал
лажать на тех местах где надо двинуть заявку фортсовую. вы что то об
этом знаете?

Теги:


Спасибо:




76 Ответов
< 1 2 3 4  >
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.07.2010
Ответить


А если проверить на ссылочную эквивалентность?

Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


Кого? при перемещении как я понял в квике физически генерится новая
заявка.а старая снимается. и видимо если старую снять не удается -
возникает статус NitValidated

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.07.2010
Ответить


физически генерица в самой бирже. в том числе и новый объект Order в
S#. вот интересно, что приходит в OrderChanged - newOrder или oldOrder
(те объекты, что передаются в ReRegisterOrder)

Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


я вызываю
Order ReRegisterOrder(
Order oldOrder,
double price,
int volume
)

в OrderChanged приходит заявка .кторая возвращается этим методом.
Видимо, в случае

void ReRegisterOrder(
Order oldOrder,
Order newOrder
)

в OrderChanged придет newOrder

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.07.2010
Ответить


Ок, понятно. У этой заявки Id чему равен?

Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


Нулю конечно. она же NotValidated - биржа ее не приняла, ИД не
присвоила.

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.07.2010
Ответить


Ок, понятно. В принципе ясно, где бага.

Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


То, что OrderFailed не возникает?

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.07.2010
Ответить


Да, такую заявку не в OrdersChanged нужно засовывать, а OrdersFailed

Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


А при успешном перемещении новой заявке TransID не присваивается. это
нормально?

Автор топика
Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


Больше подробностей. ТрансИд = 0 у новой заявки, которая была создана
биржей в результате перемещения. и у нее естественно уже есть ордерИд,
но нулевой ТрансИд

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.07.2010
Ответить


Так не может быть, потому что Order.TransactionId генерируется ДО
отправки транзакции в Квик. Может в другом проблема?

Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


Смотрите что происходит.
вот кусок моего лога

18:03:51,140 - Orders new count = 1
выставляет мой робот заявку, трансИд ее - 67253

18:03:51,140 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1,
State = Active, Status = Done
18:03:51,796 - Orders cnanged count = 2
18:03:51,796 - TransID = 67254, Id = 0, Vol = 1, Bal = 0, State =
Active, Status = Done
18:03:51,796 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1,
State = Done, Status = Done
тут от отправил транзакцию на перемещение, ТрансИд у этой транзакции
на перемещение - 67254

18:03:51,921 - Orders cnanged count = 1
18:03:51,921 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1,
State = Active, Status = Done
18:03:51,921 - Orders cnanged count = 1
18:03:51,921 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1,
State = Active, Status = Done
18:03:52,421 - Orders cnanged count = 1
18:03:52,421 - TransID = 67253, Id = 1968290799, Vol = 1, Bal = 1,
State = Done, Status = Done
18:03:52,421 - Orders new count = 1
а вот тут БИРЖА прислала новую заявку, кторая была сформирована в
результате транзакции 67254
и я думаю так - раз ее сгенерировала биржа, то и ТрансИд будет 0.
18:03:52,421 - TransID = 0, Id = 1968291046, Vol = 1, Bal = 1, State =
Active, Status = SentToServer
18:04:04,187 - Orders cnanged count = 1
18:04:04,187 - TransID = 0, Id = 1968291046, Vol = 1, Bal = 0, State =
Done, Status = SentToServer
18:05:37,109 - Orders new count = 1
18:05:37,109 - TransID = 0, Id = 1218218312, Vol = 100, Bal = 0, State
= Done, Status = SentToServer

я пользуюсь методом в кторы не передаю новую заявку, а передаю стару,
цену и объем

Автор топика
Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


Сейчас попробую метод , в кторы передаются новый и старый ордера

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.07.2010
Ответить


А в таблице в Квике у нее какой TransID?

Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


Пустой.

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.07.2010
Ответить


А это точно заявка, которая была выставлена в результате перемещения?
Может это так, которая ручками выставлялась из Квика?

Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


А вы не таймстампы гляньте - я не успею так резко ручками :) Нет, не
ручками. Но гонял я это добро на сервере .торый щас на плаза 2. завтра
попробую на старом

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.07.2010
Ответить


Это явно ошибка Квика. Потому что сама транзакция отлывается с неким
номером, но в результате в Квик приходит заявке без номера транзакции.
Эта заявка появляется в таблице, и интерпретируется как параллельно
созданная. Пора писать в Квик о баге.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 22.07.2010
Ответить


Можете сделать простой тест? Регистрация заявки и ее перерегистрация.
Я так думаю, сразу появится пустой TransID в таблице заявок. В
качестве подтверждения можете подписаться на ProcessTransaction, чтобы
увидеть текст транзакции - там она идет с неким номером. ДДЕ экспорт и
прочее для такого примера можно не включать.

Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


нет такого события в QuikTrader

Автор топика
Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


Результаты

на основном сервере вот лог (новая заявка с пустым ТрансИД)

Set order
Order Id = 0, TransID = 77962203, Status = None, State = SentToServer
NewOrders
Order Id = 1969350467, TransID = 77962203, Status = Active, State =
Done
Reregister order
Order Id = 0, TransID = 77963500, Status = None, State = SentToServer
OrdersChaged
Order Id = 0, TransID = 77963500, Status = Active, State = Done
Order Id = 1969350467, TransID = 77962203, Status = Done, State = Done

резервный (плаза2)

Set order
Order Id = 0, TransID = 78155453, Status = None, State = SentToServer
NewOrders
Order Id = 1969355042, TransID = 78155453, Status = Active, State =
Done
Reregister order
Order Id = 0, TransID = 78156500, Status = None, State = SentToServer
OrdersChaged
Order Id = 0, TransID = 78156500, Status = Active, State = Done
Order Id = 1969355042, TransID = 78155453, Status = Done, State = Done

но! в новой заявке есть ТрансИД!

Автор топика
Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


основной сервер

Set order
Order Id = 0, TransID = 78353328, Status = None, State = SentToServer
NewOrders
Order Id = 1969362384, TransID = 78353328, Status = Active, State =
Done
Reregister order
Order Id = 0, TransID = 78354375, Status = None, State = SentToServer
OrdersChaged
Order Id = 0, TransID = 78354375, Status = Active, State = Done
Order Id = 1969362384, TransID = 78353328, Status = Done, State = Done

Новая заявка без трансИД

резервный сервер (говорят плаза2)
Set order
Order Id = 0, TransID = 78653734, Status = None, State = SentToServer
NewOrders
Order Id = 1969374406, TransID = 78653734, Status = Active, State =
Done
Reregister order
Order Id = 0, TransID = 78655015, Status = None, State = SentToServer
OrdersChaged
Order Id = 0, TransID = 78655015, Status = Active, State = Done
Order Id = 1969374406, TransID = 78653734, Status = Done, State = Done

И вот тут новая заявка с ТрансИД! (может я ошибаюсь и у открытия
резервный по старому, а основной плаза2)

вот такие пироги
Автор топика
Спасибо:

Tauler

Фотография
Дата: 22.07.2010
Ответить


и вдогонку лог с М-10 - на нем тоже ТрансИД сгенерился

Set order
Order Id = 0, TransID = 78765765, Status = None, State = SentToServer
NewOrders
Order Id = 1969380130, TransID = 78765765, Status = Active, State =
Done
Reregister order
Order Id = 0, TransID = 78766796, Status = None, State = SentToServer
OrdersChaged
Order Id = 0, TransID = 78766796, Status = Active, State = Done
Order Id = 1969380130, TransID = 78765765, Status = Done, State = Done
Автор топика
Спасибо:

artemox

Фотография
Дата: 22.07.2010
Ответить


Можно уточнить - речь идет о Strategy.OnProcess?
У меня часто при каких либо ошибках со стороны брокера стратегия
автоматически перезапускается.
А как это регулировать я не разобрался.

Спасибо:
< 1 2 3 4  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy