S# 4.0.5 order.TransactionId = 0 в NewOrders

S# 4.0.5 order.TransactionId = 0 в NewOrders
Atom
11/14/2011
Roman0


Сегодня возникла такая ситуация и дальше 0 сохранялся в OrdersChanged какое-то время:
16:31:01.1570028 OrdersChanged: TransactionId=0 Direction=Sell Time=14.11.2011 16:31:00 Price=151235 State=Done Status= Balance=0 Comm=FIVDMD0Y Portfolio=SPBFUT00XXX Id=5851294706 Type=Limit
16:31:01.4489763 OrdersChanged: TransactionId=0 Direction=Sell Time=14.11.2011 16:31:00 Price=151235 State=Done Status= Balance=0 Comm=FIVDMD0Y Portfolio=SPBFUT00XXX Id=5851294706 Type=Limit
16:31:01.5310023 OrdersChanged: TransactionId=56779959 Direction=Sell Time=14.11.2011 16:31:00 Price=151235 State=Done Status=Accepted Balance=0 Comm=FIVDMD0Y Portfolio=SPBFUT00XXX Id=5851294706 Type=Limit

Вроде бы TransactionId должен устанавливаться сразу в RegisterOrder и в NewOrders он уже должен быть инициализирован или я что-то не так понимаю? Спасибо!

Tags:


Thanks:


1 2 3  > >>
Alexander

Avatar
Date: 11/14/2011
Reply


Заявка отправляется синхронно или асинхронно?
Thanks:

Roman0

Avatar
Date: 11/14/2011
Reply


Alexander Mukhanchikov
Заявка отправляется синхронно или асинхронно?

Trader.IsAsyncMode = false;
Thanks:

Alexander

Avatar
Date: 11/14/2011
Reply


Приведите участок кода с созданием и отправкой заявки.
Thanks:

Roman0

Avatar
Date: 11/14/2011
Reply


Alexander Mukhanchikov
Приведите участок кода с созданием и отправкой заявки.

Code

order = new Order()
{
Portfolio = Portfolio, //получено из NewPortfolios
Security = CurSec, //получено из NewSecurities
Volume = orderVolume,
Direction = bSignal ? OrderDirections.Buy : OrderDirections.Sell,
Comment = MyOrdersId,
ExtensionInfo = new Dictionary<object, object>()
};

order.ExtensionInfo.Add("Time", DateTime.Now);
order.ExtensionInfo.Add("Timeout", false);

     //тип заявки
foreach (Control control in gbxOrderTypes.Controls)
{
if (control is RadioButton && ((RadioButton)control).Checked)
{
order.ExtensionInfo.Add("Type", (MyOrderTypes)control.Tag);
break;
}
}
    
    //в этом конкретном случае было
    order.Price = CurSec.ShrinkPrice(bSignal ? CurSec.BestBid.Price + nudSLO.Value : CurSec.BestAsk.Price - nudSLO.Value);

    Trader.RegisterOrder(order);

Опущены try\catch и т.п. Все работало в течение месяцев без изменений в коде, касающихся регистрации заявок.
Thanks:

Alexander

Avatar
Date: 11/14/2011
Reply


Ерунда какая-то.
Быть не может такого =)

Trader - это QuikTrader?
Что выдают события OrdersFailed, ProcessDataError?
Thanks:

Roman0

Avatar
Date: 11/14/2011
Reply


Alexander Mukhanchikov
Ерунда какая-то.
Быть не может такого =)

Trader - это QuikTrader?
Что выдают события OrdersFailed, ProcessDataError?

Я тоже так подумал, но факт есть факт ) У меня по TransactionId, который получен в NewOrders, в таблице обновляется информация по заявкам, иначе я бы может быть и не заметил, а так поле с TransactionId было 0. Да, QuikTrader и OrdersFailed с ProcessDataError не выдавали ничего, заявка нормально исполнилась. Может быть это как-то связано с тем, что используется не совсем обычный квик (типа брокерского с объедененными счетами клиентов), но вроде бы здесь это не должно никак влиять.
Thanks:

Alexander

Avatar
Date: 11/14/2011
Reply


Roman0
Alexander Mukhanchikov
Ерунда какая-то.
Быть не может такого =)

Trader - это QuikTrader?
Что выдают события OrdersFailed, ProcessDataError?

Я тоже так подумал, но факт есть факт ) У меня по TransactionId, который получен в NewOrders, в таблице обновляется информация по заявкам, иначе я бы может быть и не заметил, а так поле с TransactionId было 0. Да, QuikTrader и OrdersFailed с ProcessDataError не выдавали ничего, заявка нормально исполнилась. Может быть это как-то связано с тем, что используется не совсем обычный квик (типа брокерского с объедененными счетами клиентов), но вроде бы здесь это не должно никак влиять.


так вроде там многое что другое и как раз может быть из-за этого. посмотрите на transactionid после вызова register order
verifier молчит на проверках?
Thanks:

Roman0

Avatar
Date: 11/14/2011
Reply


Alexander Mukhanchikov
Roman0
Alexander Mukhanchikov
Ерунда какая-то.
Быть не может такого =)

Trader - это QuikTrader?
Что выдают события OrdersFailed, ProcessDataError?

Я тоже так подумал, но факт есть факт ) У меня по TransactionId, который получен в NewOrders, в таблице обновляется информация по заявкам, иначе я бы может быть и не заметил, а так поле с TransactionId было 0. Да, QuikTrader и OrdersFailed с ProcessDataError не выдавали ничего, заявка нормально исполнилась. Может быть это как-то связано с тем, что используется не совсем обычный квик (типа брокерского с объедененными счетами клиентов), но вроде бы здесь это не должно никак влиять.


так вроде там многое что другое и как раз может быть из-за этого. посмотрите на transactionid после вызова register order
verifier молчит на проверках?


Да, verifier говорит, что все нормально. А transactionid разве не генерируется в RegisterOrder? Вроде бы раньше было что-то вроде InitOrder, который создавал уже инициализированную заявку.
> посмотрите на transactionid после вызова register order
попробую, только завтра, наверное
Thanks:

Alexander

Avatar
Date: 11/14/2011
Reply


Roman0
Alexander Mukhanchikov
Roman0
Alexander Mukhanchikov
Ерунда какая-то.
Быть не может такого =)

Trader - это QuikTrader?
Что выдают события OrdersFailed, ProcessDataError?

Я тоже так подумал, но факт есть факт ) У меня по TransactionId, который получен в NewOrders, в таблице обновляется информация по заявкам, иначе я бы может быть и не заметил, а так поле с TransactionId было 0. Да, QuikTrader и OrdersFailed с ProcessDataError не выдавали ничего, заявка нормально исполнилась. Может быть это как-то связано с тем, что используется не совсем обычный квик (типа брокерского с объедененными счетами клиентов), но вроде бы здесь это не должно никак влиять.


так вроде там многое что другое и как раз может быть из-за этого. посмотрите на transactionid после вызова register order
verifier молчит на проверках?


Да, verifier говорит, что все нормально. А transactionid разве не генерируется в RegisterOrder? Вроде бы раньше было что-то вроде InitOrder, который создавал уже инициализированную заявку.
> посмотрите на transactionid после вызова register order
попробую, только завтра, наверное


Сейчас также.
Но если у вас в терминале в этом столбце 0 - при обновлении тоже запишется 0.
Да, приведите скриншот терминала с заявками.
Thanks:

Roman0

Avatar
Date: 11/15/2011
Reply


Alexander Mukhanchikov
Roman0
Alexander Mukhanchikov
Roman0
Alexander Mukhanchikov
Ерунда какая-то.
Быть не может такого =)

Trader - это QuikTrader?
Что выдают события OrdersFailed, ProcessDataError?

Я тоже так подумал, но факт есть факт ) У меня по TransactionId, который получен в NewOrders, в таблице обновляется информация по заявкам, иначе я бы может быть и не заметил, а так поле с TransactionId было 0. Да, QuikTrader и OrdersFailed с ProcessDataError не выдавали ничего, заявка нормально исполнилась. Может быть это как-то связано с тем, что используется не совсем обычный квик (типа брокерского с объедененными счетами клиентов), но вроде бы здесь это не должно никак влиять.


так вроде там многое что другое и как раз может быть из-за этого. посмотрите на transactionid после вызова register order
verifier молчит на проверках?


Да, verifier говорит, что все нормально. А transactionid разве не генерируется в RegisterOrder? Вроде бы раньше было что-то вроде InitOrder, который создавал уже инициализированную заявку.
> посмотрите на transactionid после вызова register order
попробую, только завтра, наверное


Сейчас также.
Но если у вас в терминале в этом столбце 0 - при обновлении тоже запишется 0.
Да, приведите скриншот терминала с заявками.

В терминале все нормально, но что там было в момент выставления заявки, конечно, непонятно.
Snap1.jpg 98 KB (254)
Thanks:
1 2 3  > >>

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy