← Zurück

Что сие значит: #=qvz7eit8pxNUvraHaSr ...

Переведите, плиз, с бусурманского хотя бы на английский, что означают эти много букв:

в System.Collections.Generic.Dictionary2.get_Item(TKey key) в Ecng.Collections.SynchronizedDictionary2.get_Item(TKey key) в StockSharp.Algo.Slippage.SlippageManager.#=qOdlOKYT7COgmqPX1tHXuEHbYAnvT834W6E6FOHURMcE=.#=qu2S$T40ImoiVKUxmYxNKqSNnpOcC2Gb1ab6h0c$CUCg=(CachedSynchronizedDictionary2 #=q7cXFnd6TaxjCq8_SWcxE0w==) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action1 action) в StockSharp.Algo.Slippage.SlippageManager.ReRegister(Order oldOrder, Order newOrder) в StockSharp.Algo.Strategies.Strategy.#=qvz7eit8pxNUvraHaSroAfj5kI$J4SOZSa1OpNlmEebA=.#=qcGGdy5HGGyKT93RSQXkZ52LdTK4diyndWokNNDOQi5k=() в StockSharp.Algo.Strategies.Strategy.#=q1z2_O1i2I6iBdwEbxAkKh1osVBgYzjMHQe3L5Nv5Euc=.#=qAdqcopAjDpR6VdVGil1jqAnNM_j68vMTvX0BJxTSRj0=() в StockSharp.Algo.Strategies.Strategy.#=qEX_8L11P$MLYMk4kVxKAu7vVJZwAnY0R_winjcvGdyY=.#=qEgq5EsI$8yFLeWdf0XqNEA==(Action #=qyaY09V6QJlHsZBhBBylGnA==) в StockSharp.Algo.Strategies.Strategy.#=q4hdKU5fePTKLCzx017mjgQ==(Action #=qoLtbGp5xIWnRL$3_yGkKCQ==) в StockSharp.Algo.Strategies.Strategy.AddOrder(Order order) в Ecng.Collections.CollectionHelper.ForEach(IEnumerable1 source, Action1 action) в StockSharp.Algo.Strategies.Strategy.#=qdLN0rw1J6Fd1aeZySh4dRWtFlpk7T6cSgMkfR3IAaYQ=(IEnumerable1 #=qOdkYLMiLGDQTkKTW9MyoVQ==) в System.Action1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg) в Ecng.ComponentModel.EventsContainer1.Raise(IEnumerable`1 items)

А то замуровали демоны.

War dieses Thema hilfreich?

Thema teilen

Kommentare (11)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Mikhail Sukhov
Mikhail Sukhov

BigBen: Переведите, плиз, с бусурманского хотя бы на английский, что означают эти много букв:

Что-то с перерегистрацией. Старая заявка не найдена, а по ней уже идет замена.

BigBen
BigBen Autor

"в System.Collections.Generic.Dictionary2.get_Item(TKey key) в Ecng.Collections.SynchronizedDictionary2.get_Item(TKey key) ................................................................................................. "

А что это за словарь и как он формируется?

BigBen
BigBen Autor

Молчат. Как-то баг всё равно надо отловить. Ладно, тогда попробую так. С# 4.1.4 Робот ставит две заявки - buy & sell. Сопровождает их через Move до исполнения. В логах то, что по умолчанию выводит сама библиотека:

.............................................................................................................................................. 2012.10.09 19:55:34.699| |QuikTrader|New order: TrId=82465719, Id=1839315405, Dir=Buy, Price=9295, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:34.795| |QuikTrader|New order: TrId=82465720, Id=1839315407, Dir=Sell, Price=9299, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:34.968| |QuikTrader|Order changed: TrId=82465718, Id=1839315358, Dir=Buy, Price=9296, Bal=1, Sec=SRZ2@RTS, State=Done 2012.10.09 19:55:34.969| |Strategy2 |Заявка 82465718 больше не активна. 2012.10.09 19:55:35.044| |QuikTrader|Order changed: TrId=82465719, Id=1839315405, Dir=Buy, Price=9295, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:43.562| |QuikTrader|Order changed: TrId=82465716, Id=1839315336, Dir=Sell, Price=9300, Bal=1, Sec=SRZ2@RTS, State=Done 2012.10.09 19:55:43.627| |Strategy2 |Заявка 82465716 больше не активна.

2012.10.09 19:55:43.629| |QuikTrader|Order changed: TrId=82465720, Id=1839315407, Dir=Sell, Price=9299, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:43.630| |QuikTrader|Order changed: TrId=82465719, Id=1839315405, Dir=Buy, Price=9295, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:43.630| |QuikTrader|Order changed: TrId=82465720, Id=1839315407, Dir=Sell, Price=9299, Bal=1, Sec=SRZ2@RTS, State=Active

2012.10.09 19:55:43.878|Error |QuikTrader|System.Collections.Generic.KeyNotFoundException: Данный ключ отсутствует в словаре. в System.Collections.Generic.Dictionary2.get_Item(TKey key) в Ecng.Collections.SynchronizedDictionary2.get_Item(TKey key) в StockSharp.Algo.Slippage.SlippageManager.#=qOdlOKYT7COgmqPX1tHXuEHbYAnvT834W6E6FOHURMcE=.#=qu2S$T40ImoiVKUxmYxNKqSNnpOcC2Gb1ab6h0c$CUCg=(CachedSynchronizedDictionary2 #=q7cXFnd6TaxjCq8_SWcxE0w==) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action1 action) в StockSharp.Algo.Slippage.SlippageManager.ReRegister(Order oldOrder, Order newOrder) в StockSharp.Algo.Strategies.Strategy.#=qvz7eit8pxNUvraHaSroAfj5kI$J4SOZSa1OpNlmEebA=.#=qcGGdy5HGGyKT93RSQXkZ52LdTK4diyndWokNNDOQi5k=() в StockSharp.Algo.Strategies.Strategy.#=q1z2_O1i2I6iBdwEbxAkKh1osVBgYzjMHQe3L5Nv5Euc=.#=qAdqcopAjDpR6VdVGil1jqAnNM_j68vMTvX0BJxTSRj0=() в StockSharp.Algo.Strategies.Strategy.#=qEX_8L11P$MLYMk4kVxKAu7vVJZwAnY0R_winjcvGdyY=.#=qEgq5EsI$8yFLeWdf0XqNEA==(Action #=qyaY09V6QJlHsZBhBBylGnA==) в StockSharp.Algo.Strategies.Strategy.#=q4hdKU5fePTKLCzx017mjgQ==(Action #=qoLtbGp5xIWnRL$3_yGkKCQ==) в StockSharp.Algo.Strategies.Strategy.AddOrder(Order order) в Ecng.Collections.CollectionHelper.ForEach(IEnumerable1 source, Action1 action) в StockSharp.Algo.Strategies.Strategy.#=qdLN0rw1J6Fd1aeZySh4dRWtFlpk7T6cSgMkfR3IAaYQ=(IEnumerable1 #=qOdkYLMiLGDQTkKTW9MyoVQ==) в System.Action1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg) в Ecng.ComponentModel.EventsContainer1.Raise(IEnumerable`1 items)

2012.10.09 19:55:43.984| |QuikTrader|New order: TrId=82465721, Id=1839315612, Dir=Buy, Price=9296, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:44.068| |QuikTrader|Order changed: TrId=82465719, Id=1839315405, Dir=Buy, Price=9295, Bal=1, Sec=SRZ2@RTS, State=Done 2012.10.09 19:55:44.070| |Strategy2 |Заявка 82465719 больше не активна. 2012.10.09 19:55:44.071| |QuikTrader|Order changed: TrId=82465721, Id=1839315612, Dir=Buy, Price=9296, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:44.072| |QuikTrader|Order changed: TrId=82465720, Id=1839315407, Dir=Sell, Price=9299, Bal=1, Sec=SRZ2@RTS, State=Done 2012.10.09 19:55:44.072| |Strategy2 |Заявка 82465720 больше не активна.

2012.10.09 19:55:44.088| |QuikTrader|Order changed: TrId=82465722, Id=0, Dir=Sell, Price=9300, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:44.089| |QuikTrader|Order changed: TrId=82465721, Id=1839315612, Dir=Buy, Price=9296, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:44.090| |QuikTrader|Order changed: TrId=82465722, Id=0, Dir=Sell, Price=9300, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:44.637| |QuikTrader|New order: TrId=82465722, Id=1839315613, Dir=Sell, Price=9300, Bal=1, Sec=SRZ2@RTS, State=Active

...............................................................................................................................................

На 35-ой секунде через Move появились новые ордера TrId=82465719 и TrId=82465720 взамен TrId=82465718 и TrId=82465716. У обеих новых заявок State=Active. Робот это понимает и на 44-ой секунде отправляет Move на замену одной из них. Библиотека сообщает - KeyNotFoundException: Данный ключ отсутствует в словаре. Однако сервер биржы принимает замену и на 44-ой и 45-ой секундах информирует о снятии TrId=82465719 и TrId=82465720, и активации TrId=82465721 и TrId=82465722. Робот и сервер биржы друг друга поняли, а библиотека при своём мнении. Где-то тут косяк. Что скажите?

Mikhail Sukhov
Mikhail Sukhov

BigBen: Молчат. Как-то баг всё равно надо отловить.

Ошибка в вашем коде, я писал это сразу.

BigBen: Ладно, тогда попробую так. С# 4.1.4 Что скажите?

Качайте 4.1.5 из транка.

BigBen
BigBen Autor

Я думаю это не ошибка, что у меня состояние Active заявки определяется в order.WhenRegistered и в order.WhenChanged()-OrderStates.Active. Эти правила срабатывают в разной последовательности и по первому выполненному я фиксирую State=Active для заявки, при этом второе правило не исполняется. Если в ваш словарь ордер попадает, например, только через WhenRegistered, которое отработало после WhenChanged, а я уже зафиксировал State=Active для заявки и отправил Move на биржу, то тогда мы с сервером друг друга поймём, а библиотека нас - нет. Почему я и пытаюсь добиться ответа, как у вас формируется этот словарь?

Кстати, с отключенным правилом order.WhenChanged()-OrderStates.Active робот колбасит пока без ошибок. Но в этом случае не самая быстрая реакция на OrderMove. Разберём эту ситуацию до конца или не будете?

esper
esper

На 4.1.5 тоже повторяется? По вашим данным не видно, каким образом и с какими параметрами делается move заявок.

BigBen
BigBen Autor

Это было на 4.0.23, это есть на 4.1.4, почему-то думаю, что и на 4.1.5 будет. 4.1.5 пока не ставил, хочу разобраться с обозначенным вопросом.

esper
esper

Как раз в последних билдах 4.1.5 много всего поменялось в квиковском коннекторе.

BigBen
BigBen Autor

esper: Как раз в последних билдах 4.1.5 много всего поменялось в квиковском коннекторе.

Я высказал предположение, как мне это видится со стороны через непроницаемые стенки "чёрного ящика", но никто не опроверг и не подтвердил.

Mikhail Sukhov
Mikhail Sukhov

BigBen:

esper: Как раз в последних билдах 4.1.5 много всего поменялось в квиковском коннекторе.

Я высказал предположение, как мне это видится со стороны через непроницаемые стенки "чёрного ящика", но никто не опроверг и не подтвердил.

http://stocksharp.com/sources/

BigBen
BigBen Autor

Добавил 2 строки по ReRegister, которые вывожу я. Они выделены Bold. .............................................................................................................................................. 2012.10.09 19:55:34.699| |QuikTrader|New order: TrId=82465719, Id=1839315405, Dir=Buy, Price=9295, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:34.795| |QuikTrader|New order: TrId=82465720, Id=1839315407, Dir=Sell, Price=9299, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:34.968| |QuikTrader|Order changed: TrId=82465718, Id=1839315358, Dir=Buy, Price=9296, Bal=1, Sec=SRZ2@RTS, State=Done 2012.10.09 19:55:34.969| |Strategy2 |Заявка 82465718 больше не активна. 2012.10.09 19:55:35.044| |QuikTrader|Order changed: TrId=82465719, Id=1839315405, Dir=Buy, Price=9295, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:43.562| |QuikTrader|Order changed: TrId=82465716, Id=1839315336, Dir=Sell, Price=9300, Bal=1, Sec=SRZ2@RTS, State=Done 2012.10.09 19:55:43.627| |Strategy2 |Заявка 82465716 больше не активна.

2012.10.09 19:55:43.629| |QuikTrader|Order changed: TrId=82465720, Id=1839315407, Dir=Sell, Price=9299, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:43.630| |QuikTrader|Order changed: TrId=82465719, Id=1839315405, Dir=Buy, Price=9295, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:43.630| |QuikTrader|Order changed: TrId=82465720, Id=1839315407, Dir=Sell, Price=9299, Bal=1, Sec=SRZ2@RTS, State=Active

2012.10.09 19:55:43.755| |Strategy2 | - ReRegister->oldOrder: TrId=82465719, Id=1839315405, Dir=Buy, Price=9295, Bal=1, Sec=SRZ2@RTS, State=Active || newORDER: TrId=82465721, Price=9296 2012.10.09 19:55:43.770| |Strategy2 | - ReRegister->oldOrder: TrId=82465720, Id=1839315407, Dir=Sell, Price=9299, Bal=1, Sec=SRZ2@RTS, State=Active || newORDER: TrId=82465722, Price=9300

2012.10.09 19:55:43.878|Error |QuikTrader|System.Collections.Generic.KeyNotFoundException: Данный ключ отсутствует в словаре. в System.Collections.Generic.Dictionary2.get_Item(TKey key) в Ecng.Collections.SynchronizedDictionary2.get_Item(TKey key) в StockSharp.Algo.Slippage.SlippageManager.#=qOdlOKYT7COgmqPX1tHXuEHbYAnvT834W6E6FOHURMcE=.#=qu2S$T40ImoiVKUxmYxNKqSNnpOcC2Gb1ab6h0c$CUCg=(CachedSynchronizedDictionary2 #=q7cXFnd6TaxjCq8_SWcxE0w==) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action1 action) в StockSharp.Algo.Slippage.SlippageManager.ReRegister(Order oldOrder, Order newOrder) в StockSharp.Algo.Strategies.Strategy.#=qvz7eit8pxNUvraHaSroAfj5kI$J4SOZSa1OpNlmEebA=.#=qcGGdy5HGGyKT93RSQXkZ52LdTK4diyndWokNNDOQi5k=() в StockSharp.Algo.Strategies.Strategy.#=q1z2_O1i2I6iBdwEbxAkKh1osVBgYzjMHQe3L5Nv5Euc=.#=qAdqcopAjDpR6VdVGil1jqAnNM_j68vMTvX0BJxTSRj0=() в StockSharp.Algo.Strategies.Strategy.#=qEX_8L11P$MLYMk4kVxKAu7vVJZwAnY0R_winjcvGdyY=.#=qEgq5EsI$8yFLeWdf0XqNEA==(Action #=qyaY09V6QJlHsZBhBBylGnA==) в StockSharp.Algo.Strategies.Strategy.#=q4hdKU5fePTKLCzx017mjgQ==(Action #=qoLtbGp5xIWnRL$3_yGkKCQ==) в StockSharp.Algo.Strategies.Strategy.AddOrder(Order order) в Ecng.Collections.CollectionHelper.ForEach(IEnumerable1 source, Action1 action) в StockSharp.Algo.Strategies.Strategy.#=qdLN0rw1J6Fd1aeZySh4dRWtFlpk7T6cSgMkfR3IAaYQ=(IEnumerable1 #=qOdkYLMiLGDQTkKTW9MyoVQ==) в System.Action1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg) в Ecng.ComponentModel.EventsContainer1.Raise(IEnumerable`1 items)

2012.10.09 19:55:43.984| |QuikTrader|New order: TrId=82465721, Id=1839315612, Dir=Buy, Price=9296, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:44.068| |QuikTrader|Order changed: TrId=82465719, Id=1839315405, Dir=Buy, Price=9295, Bal=1, Sec=SRZ2@RTS, State=Done 2012.10.09 19:55:44.070| |Strategy2 |Заявка 82465719 больше не активна. 2012.10.09 19:55:44.071| |QuikTrader|Order changed: TrId=82465721, Id=1839315612, Dir=Buy, Price=9296, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:44.072| |QuikTrader|Order changed: TrId=82465720, Id=1839315407, Dir=Sell, Price=9299, Bal=1, Sec=SRZ2@RTS, State=Done 2012.10.09 19:55:44.072| |Strategy2 |Заявка 82465720 больше не активна.

2012.10.09 19:55:44.088| |QuikTrader|Order changed: TrId=82465722, Id=0, Dir=Sell, Price=9300, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:44.089| |QuikTrader|Order changed: TrId=82465721, Id=1839315612, Dir=Buy, Price=9296, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:44.090| |QuikTrader|Order changed: TrId=82465722, Id=0, Dir=Sell, Price=9300, Bal=1, Sec=SRZ2@RTS, State=Active 2012.10.09 19:55:44.637| |QuikTrader|New order: TrId=82465722, Id=1839315613, Dir=Sell, Price=9300, Bal=1, Sec=SRZ2@RTS, State=Active

...............................................................................................................................................