BigBen
|
Дата: 10.10.2012
|
|
|
|
Молчат. Как-то баг всё равно надо отловить. Ладно, тогда попробую так. С# 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.Dictionary`2.get_Item(TKey key) в Ecng.Collections.SynchronizedDictionary`2.get_Item(TKey key) в StockSharp.Algo.Slippage.SlippageManager.#=qOdlOKYT7COgmqPX1tHXuEHbYAnvT834W6E6FOHURMcE=.#=qu2S$T40ImoiVKUxmYxNKqSNnpOcC2Gb1ab6h0c$CUCg=(CachedSynchronizedDictionary`2 #=q7cXFnd6TaxjCq8_SWcxE0w==) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action`1 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[T](IEnumerable`1 source, Action`1 action) в StockSharp.Algo.Strategies.Strategy.#=qdLN0rw1J6Fd1aeZySh4dRWtFlpk7T6cSgMkfR3IAaYQ=(IEnumerable`1 #=qOdkYLMiLGDQTkKTW9MyoVQ==) в System.Action`1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg) в Ecng.ComponentModel.EventsContainer`1.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. Робот и сервер биржы друг друга поняли, а библиотека при своём мнении. Где-то тут косяк. Что скажите?
|
BigBen
|
Дата: 10.10.2012
|
|
|
|
Добавил 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.Dictionary`2.get_Item(TKey key) в Ecng.Collections.SynchronizedDictionary`2.get_Item(TKey key) в StockSharp.Algo.Slippage.SlippageManager.#=qOdlOKYT7COgmqPX1tHXuEHbYAnvT834W6E6FOHURMcE=.#=qu2S$T40ImoiVKUxmYxNKqSNnpOcC2Gb1ab6h0c$CUCg=(CachedSynchronizedDictionary`2 #=q7cXFnd6TaxjCq8_SWcxE0w==) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action`1 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[T](IEnumerable`1 source, Action`1 action) в StockSharp.Algo.Strategies.Strategy.#=qdLN0rw1J6Fd1aeZySh4dRWtFlpk7T6cSgMkfR3IAaYQ=(IEnumerable`1 #=qOdkYLMiLGDQTkKTW9MyoVQ==) в System.Action`1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke[T](Action`1 handler, T arg) в Ecng.ComponentModel.EventsContainer`1.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
...............................................................................................................................................
|