проблема с CancelOrders
Atom
03.08.2010
S.S.V.


Добрый день!

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

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

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

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


Теги:


Спасибо:


Mikhail Sukhov

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


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

Спасибо:

S.S.V.

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


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

************** Текст исключения ************** System.ArgumentException: Элемент с тем же ключом уже был добавлен. в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) в System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) в System.Collections.Generic.Dictionary2.Add(TKey key, TValue value) в Ecng.Collections.SynchronizedDictionary2.Add(K key, V value) в Ecng.Trading.Quik.QuikTrader.CancelOrder(Order order) в Ecng.Trading.BusinessEntities.BaseTrader.<>c__DisplayClass2f.<CancelOrders&gtb__2d(SynchronizedDictionary2 c) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action1 action) в Ecng.Trading.BusinessEntities.BaseTrader.CancelOrders(Nullable1 isStopOrder, String account, Nullable1 direction, String classCode, Security security) в Ecng.Trading.Algo.SyncTrader1.CancelOrders(Nullable1 isStopOrder, String account, Nullable1 direction, String classCode, Security security) в SQuikTick_v1.Form1.btnDelAllOrders_Click(Object sender, EventArgs

  1. в 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&
  2. в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Спасибо:

Mikhail Sukhov

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


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

Спасибо:

S.S.V.

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


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

Спасибо:

Mikhail Sukhov

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


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

Спасибо:


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

loading
clippy