проблема с CancelOrders

проблема с CancelOrders
Atom
8/3/2010
S.S.V.


Добрый день!

Выполняю следющую комманду:

QT.CancelOrders(false, txtAccount.Text, null, null,
this.CSec.ElementAt(0));

Если активна одна заявка, то все корректно отрабатывает, если же
несколько активных заявок, после снятия первой заявки выдается
исключение - "Элемент с тем же ключом уже добавлен".

В чем может быть причина? Версия библиотеки 2.1.
Заранее спасибо.


Tags:


Thanks:


Mikhail Sukhov

Avatar
Date: 8/3/2010
Reply


Текст исключения можно полный привести?

Thanks:

S.S.V.

Avatar
Date: 8/3/2010
Reply


Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.ArgumentException: Элемент с тем же ключом уже был добавлен.
в System.ThrowHelper.ThrowArgumentException(ExceptionResource
resource)
в System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue
value, Boolean add)
в System.Collections.Generic.Dictionary`2.Add(TKey key, TValue
value)
в Ecng.Collections.SynchronizedDictionary`2.Add(K key, V value)
в Ecng.Trading.Quik.QuikTrader.CancelOrder(Order order)
в
Ecng.Trading.BusinessEntities.BaseTrader.<>c__DisplayClass2f.<CancelOrders&gtb__2d(SynchronizedDictionary`2
c)
в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection
collection, Action`1 action)
в Ecng.Trading.BusinessEntities.BaseTrader.CancelOrders(Nullable`1
isStopOrder, String account, Nullable`1 direction, String classCode,
Security security)
в Ecng.Trading.Algo.SyncTrader`1.CancelOrders(Nullable`1
isStopOrder, String account, Nullable`1 direction, String classCode,
Security security)
в SQuikTick_v1.Form1.btnDelAllOrders_Click(Object sender, EventArgs
e) в C:\Quik_Net\SQuik5Min_v2\SQuik5Min_v2\Form1.cs:строка 937
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons
button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в
System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&
m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32
msg, IntPtr wparam, IntPtr lparam)

Thanks:

Mikhail Sukhov

Avatar
Date: 8/4/2010
Reply


Такая ошибка может произойти, если BaseTrader.TransactionIdGenerator
вернул номер транзакции, который уже был использован до этого. У Вас в
BaseTrader.TransactionIdGenerator какой класс используется?

Thanks:

S.S.V.

Avatar
Date: 8/5/2010
Reply


в версии 2.2.1 все работает.
Спасибо.

Thanks:

Mikhail Sukhov

Avatar
Date: 8/5/2010
Reply


Ок, теперь понятно. Да, в 2.1 такое бы не прокатило. Я писал в блоге
об исправлении.

Thanks:


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

loading
clippy