Нужен совет по RealTimeEmulationTrader
Atom
11.10.2011
Serg


Подскажите плиз от чего могут возникать ошибки при тестировании: 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




Спасибо:


1 2  >
Serg

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


Может кто подскажет, он с квиком работает?

Спасибо:

Mikhail Sukhov

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


Serg: Может кто подскажет, он с квиком работает?

По первой ошибке. Она когда появляется (ее периодичность)?

Спасибо:

Serg

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


Mikhail Sukhov: По первой ошибке. Она когда появляется (ее периодичность)?

Регистрирую три заявки и после того как родительская выводит в лог

23:49:58.305 |            | SS              | Новая Sell сделка 3 по цене 510 на 1 заявки 85788346.

по каждой сделке получаю этот exception

Спасибо:

Mikhail Sukhov

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


Serg:

Mikhail Sukhov: По первой ошибке. Она когда появляется (ее периодичность)?

Регистрирую три заявки и после того как родительская выводит в лог

23:49:58.305 | | SS | Новая Sell сделка 3 по цене 510 на 1 заявки 85788346.

> по каждой сделке получаю этот exception

Это по первое, где NRE? А заявки из дочерних стратегий выстреливают?
Спасибо:

Serg

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


да это по первой где NRE

По заявкам они выставляются из дочерней стратегии дочерней стратегии, то есть внучки если так можно выразиться)

Вкратце: создается стратегия которая по событию создает дочернюю. Та(которая дочерняя) в свою очередь при повторении события создает еще одну дочку которая и пуляет заявки.

Спасибо:

Mikhail Sukhov

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


Serg: да это по первой где NRE

По заявкам они выставляются из дочерней стратегии дочерней стратегии, то есть внучки если так можно выразиться)

Вкратце: создается стратегия которая по событию создает дочернюю. Та(которая дочерняя) в свою очередь при повторении события создает еще одну дочку которая и пуляет заявки.

Ошибка может быть только в одном случае - если Strategy.Security == null. Родительская стратегия полностью инициализирована?

Спасибо:

Serg

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


ммм... Вот как раз Security == null Спасибо за ответ.

Подскажите а как можно тестировать стратегию которая работала бы с разными security?

Или может я вообще строю неправильную структуру при работе с несколькими инструментами? Просто ранее никогда не инициализировал Security если делаю арбитражную стратегию.

Спасибо:

Mikhail Sukhov

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


BasketSecurity

Спасибо:

Serg

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


Mikhail Sukhov: BasketSecurity Да я изначально ее и взял но что-то не пошло) попробую опять разобраться. Подскажите как используется Weights? И есть ли припер для BasketSecurity?

Спасибо:

Alexander

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


По второму - печатайте стакан и order.Balance по событию QuotesChanged после регистрации заявки до тех пор, пока не упадёт. Приложите лог сюда на форум. По коду всё ок, не нашли.

Спасибо:
1 2  >

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

loading
clippy