Подскажите плиз от чего могут возникать ошибки при тестировании:
1ая: :::spoiler
14:13:22.515 | | SS | Новая Buy сделка 1 по цене 135180 на 1 заявки 51189688.
14:13:22.578 | Error | QuikTrader | System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в StockSharp.Algo.PnL.StrategyPnLManager.GetCurencyMultiplier(Security security)
в StockSharp.Algo.PnL.BasketSecurityPnLManager.#=q6HiCAL0wXXwdvRY7uE$AM8NN9tKbrs$02s9ko$8PuSg=.#=qcKCI67EDKenpnXbbwgQzyVk_tVjwVg5bqB_VEhdFLM4=.#=q_7aAU8b_zEypCQ8s7GI9rlmVYn479GdZoRtI$xC5APU=.#=qbX2NMw97YN647uARUP4kiOrEzSgns_NeDhIPE6$rb8o=(MyTrade #=q4VARR7mxDe7ScscA9aQQgw==)
в System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() в System.Linq.Enumerable.Sum(IEnumerable1 source)
в System.Linq.Enumerable.Sum[TSource](IEnumerable1 source, Func2 selector)
в StockSharp.Algo.PnL.BasketSecurityPnLManager.#=q6HiCAL0wXXwdvRY7uE$AM8NN9tKbrs$02s9ko$8PuSg=.#=qcKCI67EDKenpnXbbwgQzyVk_tVjwVg5bqB_VEhdFLM4=.#=qZatH$9FLmNwfKCCRIM6YDxuN4WwKbLbdoLvVsD5BAuk=(IGrouping2 #=q$4G2npAC2gseF74RW$6_xg==) в System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext()
в System.Linq.Enumerable.Sum(IEnumerable1 source) в System.Linq.Enumerable.Sum[TSource](IEnumerable1 source, Func2 selector) в StockSharp.Algo.PnL.BasketSecurityPnLManager.#=q6HiCAL0wXXwdvRY7uE$AM8NN9tKbrs$02s9ko$8PuSg=.#=qQqgnjBTTRmSjC3HMTr1s0ymGFsxoL7K0cd9g4Xsn_zU=(SynchronizedDictionary2 #=qcu9T_f8BYsAA4Gj0glG5_w==)
в Ecng.Collections.CollectionHelper.SyncGet[TCollection,TResult](TCollection collection, Func2 func) в StockSharp.Algo.PnL.BasketSecurityPnLManager.OnNewMyTrades(IEnumerable1 trades)
в System.Action1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg)
в StockSharp.Algo.Strategies.Strategy.OnNewMyTrades(IEnumerable1 trades) в StockSharp.Algo.Strategies.Strategy.#=qjjCXVa_GkSf19tV164IPg$B_BuyYNpEwvJpaRsaBYZI=.#=q60fTWYHn96Qa$uznqgIKIdnOtsOoL0SL9e7y$KI_674=() в StockSharp.Algo.Strategies.Strategy.#=qMfrcg9BqoX_SrZ_PniRSkLS_JuuciwSwF87AWA6lJIg=.#=q11nNvW_LDjU59uRCN9Amg3LTB0xZWdIMnxhQTLxuzAY=() в StockSharp.Algo.Strategies.Strategy.#=qAgonEJk0t22bTsrfK6SLoMr5BgqmFwSLQQpYD$xcaXs=.#=qdtQ3dCu7HaE3WJNsuA3bxg==(Action #=q7jtjfDpSoxBzSHUHwNz7Fg==) в StockSharp.Algo.Strategies.Strategy.#=qGIX_yMJhdV6DUS_vV$qTBA==(Action #=q50Oy$J7iOXqEyIlapwlEpA==) в StockSharp.Algo.Strategies.Strategy.#=qLYbcqZqRAt1$bI37jUJqSg==(IEnumerable1 #=qPNgWxpQ5W3V9vJE73JFWaA==)
в StockSharp.Algo.Strategies.Strategy.#=qVZa9bG8nZP4eO47Hby9llv33WO7k4iWmOSFbutpvqYg=(IEnumerable1 #=q32T_VyX_KbypOvRURsTLEQ==) в System.Action1.Invoke(T obj)
в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg) в StockSharp.Algo.Testing.RealTimeEmulationTrader1.#=qumfF10tDQXmC5j3tQRXgIfaJqaeMWNqH_CZTIENv1Ck=(IEnumerable1 #=qH3UKDf2$6uHRGF78v65UOQ==) в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg)
в StockSharp.Algo.Testing.MarketEmulator.RaiseNewMyTrades(IEnumerable1 trades) в StockSharp.Algo.Testing.MarketEmulator.#=q8tBHVFJqB$doPBoQ__G$Eg==(Order #=qNmIAA7smnU$VqJSm38vFdQ==, Decimal #=qXnkhs$UHfBoHHLtRCo8Tzg==, Decimal #=qwiKCKWtgj5uhtzQ2jdOFHw==) в StockSharp.Algo.Testing.MarketEmulator.#=qKnsW2oTjuzsJtGYKFUJmT9zvfEhF_ZzINvWpTLEATXA=(MarketDepth #=qdMYj$LVC2zDIvBciB_VCsw==, Order #=qGXVvWslUzjYnlybOtY9UUg==, Quote #=q410lzqkc587s2hjn49EQPQ==) в StockSharp.Algo.Testing.MarketEmulator.#=qH0Jhi92Iqm6wUzAAH8tmy5VL6E9oAL41t5wKKVhcSRM=(Order #=qS7eX6V48kbp7_LDzAXFqBA==, MarketDepth #=qlspWVsbJgXWw1ZX08NK8PQ==) в StockSharp.Algo.Testing.MarketEmulator.#=qUj_MKo_5xFu57$BdmAtvdp$dsDVU0GRscQ2wPozrHrc=.#=qDh4rLm2MeH9JI_PMbgc4mg==(SynchronizedDictionary2 #=qnvDoR0SOYQ3nEDywMrBJZg==)
в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action1 action) в StockSharp.Algo.Testing.MarketEmulator.#=qbcQv4DURsovmF2_6KulaXQ==(Security #=qoSuBdev71Xj6QhcRd7$wHw==, IEnumerable1 #=qaUqXfHo54t0PzgplHgDiag==)
в StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(IEnumerable1 marketDepths) в StockSharp.Algo.Testing.RealTimeEmulationTrader1.#=qp71gckUC4MvXdWMR2qIKmrIltzQA9rF63y5KR4$npu8=(IEnumerable1 #=qOZt87BPgdAr3Z3tLLHoC$A==) в System.Action1.Invoke(T obj)
в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg) в StockSharp.Algo.BaseTrader.#=qM_7o6DN8OdobL_XpXsi_9AM_QuiUMhf$FWqj39$RUtE=.#=qvmABIQDcLFlpivEX446O7w==(IEnumerable1 #=qzHTMqWxpXDUsygAUAMg3Dg==)
2ая: :::spoiler
14:13:23.109 | Error | QuikTrader | System.ArgumentOutOfRangeException: Объем заявки не правильный.
Имя параметра: volume
Фактическое значение было 0.
в StockSharp.Algo.Testing.MarketEmulator.#=q8tBHVFJqB$doPBoQ__G$Eg==(Order #=qNmIAA7smnU$VqJSm38vFdQ==, Decimal #=qXnkhs$UHfBoHHLtRCo8Tzg==, Decimal #=qwiKCKWtgj5uhtzQ2jdOFHw==)
в StockSharp.Algo.Testing.MarketEmulator.#=qKnsW2oTjuzsJtGYKFUJmT9zvfEhF_ZzINvWpTLEATXA=(MarketDepth #=qdMYj$LVC2zDIvBciB_VCsw==, Order #=qGXVvWslUzjYnlybOtY9UUg==, Quote #=q410lzqkc587s2hjn49EQPQ==)
в StockSharp.Algo.Testing.MarketEmulator.#=qH0Jhi92Iqm6wUzAAH8tmy5VL6E9oAL41t5wKKVhcSRM=(Order #=qS7eX6V48kbp7_LDzAXFqBA==, MarketDepth #=qlspWVsbJgXWw1ZX08NK8PQ==)
в StockSharp.Algo.Testing.MarketEmulator.#=qUj_MKo_5xFu57$BdmAtvdp$dsDVU0GRscQ2wPozrHrc=.#=qDh4rLm2MeH9JI_PMbgc4mg==(SynchronizedDictionary2 #=qnvDoR0SOYQ3nEDywMrBJZg==) в Ecng.Collections.CollectionHelper.SyncDo[TCollection](TCollection collection, Action1 action)
в StockSharp.Algo.Testing.MarketEmulator.#=qbcQv4DURsovmF2_6KulaXQ==(Security #=qoSuBdev71Xj6QhcRd7$wHw==, IEnumerable1 #=qaUqXfHo54t0PzgplHgDiag==) в StockSharp.Algo.Testing.MarketEmulator.UpdateQuotes(IEnumerable1 marketDepths)
в StockSharp.Algo.Testing.RealTimeEmulationTrader1.#=qp71gckUC4MvXdWMR2qIKmrIltzQA9rF63y5KR4$npu8=(IEnumerable1 #=qOZt87BPgdAr3Z3tLLHoC$A==)
в System.Action1.Invoke(T obj) в Ecng.Common.DelegateHelper.SafeInvoke(Action1 handler, T arg)
в StockSharp.Algo.BaseTrader.#=qM_7o6DN8OdobL_XpXsi_9AM_QuiUMhf$FWqj39$RUtE=.#=qvmABIQDcLFlpivEX446O7w==(IEnumerable`1 #=qzHTMqWxpXDUsygAUAMg3Dg==)
По второй: все регистрируемые заявки имеют объем отличный от 0.
Версия 4.0.2
Kommentare (13)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Может кто подскажет, он с квиком работает?
По первой ошибке. Она когда появляется (ее периодичность)?
Регистрирую три заявки и после того как родительская выводит в лог
по каждой сделке получаю этот exception
23:49:58.305 | | SS | Новая Sell сделка 3 по цене 510 на 1 заявки 85788346.
да это по первой где NRE
По заявкам они выставляются из дочерней стратегии дочерней стратегии, то есть внучки если так можно выразиться)
Вкратце: создается стратегия которая по событию создает дочернюю. Та(которая дочерняя) в свою очередь при повторении события создает еще одну дочку которая и пуляет заявки.
Ошибка может быть только в одном случае - если Strategy.Security == null. Родительская стратегия полностью инициализирована?
ммм... Вот как раз Security == null Спасибо за ответ.
Подскажите а как можно тестировать стратегию которая работала бы с разными security?
Или может я вообще строю неправильную структуру при работе с несколькими инструментами? Просто ранее никогда не инициализировал Security если делаю арбитражную стратегию.
BasketSecurity
По второму - печатайте стакан и order.Balance по событию QuotesChanged после регистрации заявки до тех пор, пока не упадёт. Приложите лог сюда на форум. По коду всё ок, не нашли.
RealTimeEmulationTrader<QuikTrader> модифицирует стакан при исполнение своих заявок? если да, то можно ли както отключить этот функционал?
Еще вчера по вашей проблеме начали смотреть код и увидели, что работа идет над оригинальным стаканом. Клонирование уже сделали. Выложим на КП asap.