Михаил, добрый день.
Все же ситуацию с Portfolio либо я неправильно понимаю, либо происходит что-то неправильно.
Ситуация:
1) Есть тестовый Квик.
В нем есть один «Счет депо» равный NL0011100043.
Есть «Фирма» равная NC0011100000.
2) В старой версии S# я ожидал появления портфеля с значением
Portfolio.Name равным NL0011100043 и в дальнейшем использовал этот
портфель для сделок.
3) В новой версии S# по событию Quik.NewPortfolios приходит только
один портфель с значением Portfolio.Name равным NC0011100000.
Но его использовать для сделок нельзя, так как происходит ошибка (описана ниже).
4) При тестировании работы с помощью Sample в окошке Заявки можно выбрать только
один счет равный NC0011100000. Если после этого выставить заявку, то происходит
ошибка. Скриншот ошибки можно посмотреть у меня в Альбоме. Файл №2.
Описание ошибки:
Цитата:{"Код ошибки WrongSyntax Сообщение ACCOUNT=NC0011100000; CLIENT_CODE=S#; TRANS_ID=36591485; CLASSCODE=QJSIM; SECCODE=SBER03; QUANTITY=1; OPERATION=B; TYPE=L; ACTION=NEW_ORDER; PRICE=100; EXECUTION_CONDITION=PUT_IN_QUEUE;"}
Цитата: at #=qA98JTuuXq7lQ1aQZLPVJbm1DLeYGJboi9O5tmeDP5icpuuPWnrW$9GsEgfGOuA1T.#=qaFmuGlzpTWbzFNFkL0XYVQ==(Int32 #=qZCQKdnf0Eit0Hbg_$IIcOQ==, StringBuilder #=qSQZByV6eDw7sBRxErYGOvw==)
at #=qG5gG25DHYRUxdLhMUitTs6EIadvuLRVfOzcbYiyI9KE=.#=qg0rp1ZKu$tTM6_A7eFso8V3Z3ETsOl_OWvKzbqVwiZI=(String #=qG3qYfxe9sl6d1pdF4HEolg==, OrderStatus& #=qx4OWjbTahJUf3bAvBiKKyw==, UInt32& #=q51qp_50TxygxuDg7tdO4Cw==, Int64& #=qb$zRH_BdRoces20Fe447gA==, String& #=qvUT4N_bmixloSEM2gS_nGQ==)
at Ecng.Trading.Quik.QuikTrader.#=qfn5G4xBeYxS5OnUENPG745dGCKCJ2O8ebk8iOGORmhw=(Order #=qYmy3yYh9EW4qxAb6NWzgdg==, TransactionBuilder #=qj3wCZJSihKRZQ4GCKll9QA==)
at Ecng.Trading.Quik.QuikTrader.OnRegisterOrder(Order order)
at Ecng.Trading.Algo.BaseTrader.RegisterOrder(Order order)
at Sample.NewOrderWindow.Send_Click(Object sender, RoutedEventArgs e) in G:\C\Tools\StockSharp\StockSharp_3.0.2\Sources\Sample\NewOrderWindow.xaml.cs:line 29
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.UIElement.CrackMouseButtonEventAndReRaiseEvent(DependencyObject sender, MouseButtonEventArgs e)
at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
5) Verifaer говорит, что все ок. Скриншот настроек можно посмотреть в фйле №3.
Михаил, можете более подробно описать логику Портфелей. Что откуда берется?
Уверен, что где-то все таки баг присутствует.