проблема с CancelOrders
Atom Ответить
02.08.2010


Добрый день!

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

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

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

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


Теги:


Спасибо:



Поздравляем именинников: Станислав Гайворонский

5 Ответов
Mikhail Sukhov

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


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

Спасибо:

S.S.V.

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


Подробная информация об использовании оперативной
(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)

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

Mikhail Sukhov

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


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

Спасибо:

S.S.V.

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


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

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

Mikhail Sukhov

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


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

Спасибо:


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

loading
clippy