﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Ошибка при добавлении элементов в CartArea</title>
  <id>~/topic/5073/oshibka-pri-dobavlenii-ehlementov-v-cartarea/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-04T14:28:50Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=5073" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/33777/</id>
    <title type="text">Попробуйте на последних коммитах.</title>
    <published>2015-09-25T07:36:59Z</published>
    <updated>2015-09-25T07:36:59Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Попробуйте на последних коммитах.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/33776/</id>
    <title type="text">Добрый день, аналогичная ошибка Samples 4.3.10 при сборке примера SampleFixPublic MainWindow() Initi...</title>
    <published>2015-09-24T08:58:15Z</published>
    <updated>2015-09-24T08:58:15Z</updated>
    <author>
      <name>skamp66</name>
      <uri>https://stocksharp.com/users/50969/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добрый день, аналогичная ошибка Samples 4.3.10 при сборке примера SampleFixPublic&lt;br /&gt;&lt;br /&gt;MainWindow()&lt;br /&gt;&lt;br /&gt;InitializeComponent();&lt;br /&gt;&lt;br /&gt;Exception thrown: &amp;#39;System.Windows.Markup.XamlParseException&amp;#39; in PresentationFramework.dll&lt;br /&gt;Additional information: Инициализация &amp;quot;&lt;b&gt;StockSharp.Xaml.PropertyGrid.PropertyGridEx&lt;/b&gt;&amp;quot; вызвала исключение.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/33744/</id>
    <title type="text">Добрый день. Я изучаю пример SampleSmartSMA из текущей версии API (4.3.10). Я поменял коннектор с sm...</title>
    <published>2015-09-18T12:43:52Z</published>
    <updated>2015-09-18T15:32:08Z</updated>
    <author>
      <name>YaMolekula</name>
      <uri>https://stocksharp.com/users/39410/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добрый день.&lt;br /&gt;Я изучаю пример SampleSmartSMA из текущей версии API (4.3.10). Я поменял коннектор с smartCOM на Oanda. Конект проиходит успешно, находит мой портфель. Но после нажатия кнопки &amp;quot;Start&amp;quot; из App.xaml.cs стало вылетать исключение:&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;System.Windows.Markup.XamlParseException: Initialization of &amp;#39;StockSharp.Xaml.PropertyGrid.PropertyGridEx&amp;#39; threw an exception. ---&amp;gt; System.Xaml.XamlObjectWriterException: Initialization of &amp;#39;Xceed.Wpf.Toolkit.Core.VersionResourceDictionary&amp;#39; threw an exception. ---&amp;gt; System.IO.IOException: Cannot locate resource &amp;#39;xceed.wpf.toolkit;v2.4.0.0;themes/xceed.wpf.toolkit;v2.4.0.0;component/themes/aero/brushes_normalcolor.xaml&amp;#39;.&lt;br /&gt;   at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access)&lt;br /&gt;   at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access)&lt;br /&gt;   at System.IO.Packaging.PackWebResponse.CachedResponse.GetResponseStream()&lt;br /&gt;   at System.IO.Packaging.PackWebResponse.get_ContentType()&lt;br /&gt;   at MS.Internal.WpfWebRequestHelper.GetContentType(WebResponse response)&lt;br /&gt;   at MS.Internal.WpfWebRequestHelper.GetResponseStream(WebRequest request, ContentType&amp;amp; contentType)&lt;br /&gt;   at System.Windows.ResourceDictionary.set_Source(Uri value)&lt;br /&gt;   at Xceed.Wpf.Toolkit.Core.VersionResourceDictionary.System.ComponentModel.ISupportInitialize.EndInit()&lt;br /&gt;   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.InitializationGuard(XamlType xamlType, Object obj, Boolean begin)&lt;br /&gt;   --- End of inner exception stack trace ---&lt;br /&gt;   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.InitializationGuard(XamlType xamlType, Object obj, Boolean begin)&lt;br /&gt;   at System.Xaml.XamlObjectWriter.Logic_EndInit(ObjectWriterContext ctx)&lt;br /&gt;   at System.Xaml.XamlObjectWriter.WriteEndObject()&lt;br /&gt;   at System.Xaml.XamlServices.Transform(XamlReader xamlReader, XamlWriter xamlWriter, Boolean closeWriter)&lt;br /&gt;   at System.Windows.SystemResources.ResourceDictionaries.LoadDictionary(Assembly assembly, String assemblyName, String resourceName, Boolean isTraceEnabled)&lt;br /&gt;   at System.Windows.SystemResources.ResourceDictionaries.LoadThemedDictionary(Boolean isTraceEnabled)&lt;br /&gt;   at System.Windows.SystemResources.FindDictionaryResource(Object key, Type typeKey, ResourceKey resourceKey, Boolean isTraceEnabled, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference, Boolean&amp;amp; canCache)&lt;br /&gt;   at System.Windows.SystemResources.FindResourceInternal(Object key, Boolean allowDeferredResourceReference, Boolean mustReturnDeferredResourceReference)&lt;br /&gt;   at System.Windows.StyleHelper.GetThemeStyle(FrameworkElement fe, FrameworkContentElement fce)&lt;br /&gt;   at System.Windows.FrameworkElement.UpdateThemeStyleProperty()&lt;br /&gt;   at System.Windows.FrameworkElement.OnInitialized(EventArgs e)&lt;br /&gt;   at System.Windows.FrameworkElement.TryFireInitialized()&lt;br /&gt;   at Xceed.Wpf.Toolkit.PropertyGrid.PropertyGrid.EndInit()&lt;br /&gt;   at MS.Internal.Xaml.Runtime.ClrObjectRuntime.InitializationGuard(XamlType xamlType, Object obj, Boolean begin)&lt;br /&gt;   --- End of inner exception stack trace ---&lt;br /&gt;   at System.Windows.Markup.XamlReader.RewrapException(Exception e, Uri baseUri)&lt;br /&gt;   at System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlReader templateReader, XamlObjectWriter currentWriter)&lt;br /&gt;   at System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlObjectWriter objectWriter)&lt;br /&gt;   at System.Windows.FrameworkTemplate.LoadOptimizedTemplateContent(DependencyObject container, IComponentConnector componentConnector, IStyleConnector styleConnector, List`1 affectedChildren, UncommonField`1 templatedNonFeChildrenField)&lt;br /&gt;   at System.Windows.FrameworkTemplate.LoadContent(DependencyObject container, List`1 affectedChildren)&lt;br /&gt;   at System.Windows.StyleHelper.ApplyTemplateContent(UncommonField`1 dataField, DependencyObject container, FrameworkElementFactory templateRoot, Int32 lastChildIndex, HybridDictionary childIndexFromChildID, FrameworkTemplate frameworkTemplate)&lt;br /&gt;   at System.Windows.FrameworkTemplate.ApplyTemplateContent(UncommonField`1 templateDataField, FrameworkElement container)&lt;br /&gt;   at System.Windows.FrameworkElement.ApplyTemplate()&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.StackPanel.StackMeasureHelper(IStackMeasure measureElement, IStackMeasureScrollData scrollData, Size constraint)&lt;br /&gt;   at System.Windows.Controls.StackPanel.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)&lt;br /&gt;   at System.Windows.Controls.ItemsPresenter.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)&lt;br /&gt;   at System.Windows.Controls.ScrollContentPresenter.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean&amp;amp; hasDesiredSizeUChanged)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.ScrollViewer.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Border.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Control.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)&lt;br /&gt;   at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean&amp;amp; hasDesiredSizeUChanged)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Control.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean&amp;amp; hasDesiredSizeUChanged)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)&lt;br /&gt;   at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Border.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Control.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean&amp;amp; hasDesiredSizeUChanged)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean&amp;amp; hasDesiredSizeUChanged)&lt;br /&gt;   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)&lt;br /&gt;   at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Decorator.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.Documents.AdornerDecorator.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Controls.Border.MeasureOverride(Size constraint)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.Window.MeasureOverrideHelper(Size constraint)&lt;br /&gt;   at System.Windows.Window.MeasureOverride(Size availableSize)&lt;br /&gt;   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)&lt;br /&gt;   at System.Windows.UIElement.Measure(Size availableSize)&lt;br /&gt;   at System.Windows.ContextLayoutManager.UpdateLayout()&lt;br /&gt;   at System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)&lt;br /&gt;   at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()&lt;br /&gt;   at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)&lt;br /&gt;   at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)&lt;br /&gt;   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)&lt;br /&gt;   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Код я изменил только MainWindow.xaml.cs и то это замена коннектора с smartCOM на Oanda и закоменчивание проверок на пустые логин и пароль, так как в Оанда доступ по токену:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;
namespace SampleSmartSMA
{
	using System;
	using System.Collections.Generic;
	using System.ComponentModel;
	using System.Diagnostics;
	using System.Linq;
	using System.Windows;
	using System.Windows.Controls;
	using System.Windows.Media;

	using MoreLinq;

	using Ecng.Collections;
	using Ecng.Common;
	using Ecng.Xaml;

	using StockSharp.Algo;
	using StockSharp.Algo.Candles;
	using StockSharp.Algo.Strategies.Reporting;
	using StockSharp.Algo.Indicators;
	using StockSharp.Logging;
	using StockSharp.BusinessEntities;
	using StockSharp.Messages;
	//using StockSharp.SmartCom;
	using StockSharp.Xaml;
	using StockSharp.Xaml.Charting;
	using StockSharp.Localization;
    using StockSharp.Oanda;

	public partial class MainWindow
	{
		private bool _isConnected;
        private readonly TimeSpan _timeFrame = new TimeSpan(0,5,0);//SmartComTimeFrames.Minute5;
		private readonly SynchronizedList&amp;lt;TimeFrameCandle&amp;gt; _historyCandles = new SynchronizedList&amp;lt;TimeFrameCandle&amp;gt;();
		private readonly LogManager _logManager = new LogManager();
		private CandleManager _candleManager;
        //private SmartTrader _trader;
        private OandaTrader _trader;
		private SmaStrategy _strategy;
		private DateTime _lastHistoryCandle;
		private Security _lkoh;
		private readonly ChartArea _area;
		private ChartCandleElement _candlesElem;
		private ChartIndicatorElement _longMaElem;
		private ChartIndicatorElement _shortMaElem;
        
		public MainWindow()
		{
			InitializeComponent();

			_logManager.Listeners.Add(new GuiLogListener(LogControl));

			_area = new ChartArea();
			_chart.Areas.Add(_area);
		}

		private void OrdersOrderSelected(object sender, SelectionChangedEventArgs e)
		{
			CancelOrders.IsEnabled = !_orders.SelectedOrders.IsEmpty();
		}

		protected override void OnClosing(CancelEventArgs e)
		{
			if (_trader != null)
				_trader.Dispose();

			base.OnClosing(e);
		}

		private void ConnectClick(object sender, RoutedEventArgs e)
		{
			if (!_isConnected)
			{
				//if (Login.Text.IsEmpty())
				//{
				//	MessageBox.Show(this, LocalizedStrings.Str2974);
				//	return;
				//}
				//else if (Password.Password.IsEmpty())
				//{
				//	MessageBox.Show(this, LocalizedStrings.Str2975);
				//	return;
				//}

				if (_trader == null)
				{
                    // создаем подключение
                    _trader = new OandaTrader();//new SmartTrader();
                    _trader.Token = new System.Security.SecureString();
                    _trader.Server = OandaServers.Practice;
                    foreach (char c in &amp;quot;не хочу светить свой токен&amp;quot;)
                    {
                        _trader.Token.AppendChar(c);
                    }
                    _logManager.Sources.Add(_trader);

					Portfolios.Connector = _trader;

					// подписываемся на событие успешного соединения
					_trader.Connected += () =&amp;gt;
					{
						// возводим флаг, что соединение установлено
						_isConnected = true;

						// разблокируем кнопку Экспорт
						this.GuiAsync(() =&amp;gt; ChangeConnectStatus(true));

						_candleManager = new CandleManager(_trader);

						_trader.NewCandles += (series, candles) =&amp;gt; _historyCandles.SyncDo(col =&amp;gt;
						{
							_historyCandles.AddRange(candles.Cast&amp;lt;TimeFrameCandle&amp;gt;());

							foreach (var candle in candles)
								ProcessCandle(candle);
						});

						_trader.NewSecurities += securities =&amp;gt;
						{
                            // находим нужную бумагу
                            var lkoh = securities.FirstOrDefault( s =&amp;gt; s.Code == &amp;quot;GBP/ZAR&amp;quot;);//&amp;quot;LKOH&amp;quot;);

							if (lkoh != null)
							{
								_lkoh = lkoh;

								this.GuiAsync(() =&amp;gt;
								{
									Start.IsEnabled = true;
                                    MessageBox.Show(lkoh.Code);
								});
							}
						};

						_trader.NewMyTrades += trades =&amp;gt;
						{
							if (_strategy != null)
							{
								// найти те сделки, которые совершила стратегия скользящей средней
								trades = trades.Where(t =&amp;gt; _strategy.Orders.Any(o =&amp;gt; o == t.Order));

								_trades.Trades.AddRange(trades);
							}
						};

						// подписываемся на событие о неудачной регистрации заявок
						//_trader.OrdersRegisterFailed += OrdersFailed;

						_candleManager.Processing += (s, candle) =&amp;gt;
						{
							// выводим только те свечи, которые не были отрисованы как исторические
							if (candle.OpenTime &amp;gt; _lastHistoryCandle)
								ProcessCandle(candle);
						};

						this.GuiAsync(() =&amp;gt;
						{
							ConnectBtn.IsEnabled = false;
						});
					};

					// подписываемся на событие разрыва соединения
					_trader.ConnectionError += error =&amp;gt; this.GuiAsync(() =&amp;gt;
					{
						// заблокируем кнопку Экспорт (так как соединение было потеряно)
						ChangeConnectStatus(false);

						MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959);
					});

					_trader.Disconnected += () =&amp;gt; this.GuiAsync(() =&amp;gt; ChangeConnectStatus(false));

					// подписываемся на ошибку обработки данных (транзакций и маркет)
					//_trader.Error += error =&amp;gt; this.GuiAsync(() =&amp;gt; MessageBox.Show(this, error.ToString(), &amp;quot;Ошибка обработки данных&amp;quot;));

					// подписываемся на ошибку подписки маркет-данных
					_trader.MarketDataSubscriptionFailed += (security, type, error) =&amp;gt;
						this.GuiAsync(() =&amp;gt; MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2956Params.Put(type, security)));
				}

				//_trader.Login = Login.Text;
				//_trader.Password = Password.Password;
				//_trader.Address = Address.SelectedAddress;

				// очищаем из текстового поля в целях безопасности
				//Password.Clear();

				_trader.Connect();
			}
			else
			{
				_trader.Disconnect();
			}
		}

		//private void OrdersFailed(IEnumerable&amp;lt;OrderFail&amp;gt; fails)
		//{
		//	this.GuiAsync(() =&amp;gt;
		//	{
		//		foreach (var fail in fails)
		//			MessageBox.Show(this, fail.Error.ToString(), &amp;quot;Ошибка регистрации заявки&amp;quot;);
		//	});
		//}

		private void ChangeConnectStatus(bool isConnected)
		{
			_isConnected = isConnected;
			ConnectBtn.Content = isConnected ? LocalizedStrings.Disconnect : LocalizedStrings.Connect;
		}

		//private void OnLog(LogMessage message)
		//{
		//	// если стратегия вывела не просто сообщение, то вывести на экран.
		//	if (message.Level != LogLevels.Info &amp;amp;&amp;amp; message.Level != LogLevels.Debug)
		//		this.GuiAsync(() =&amp;gt; MessageBox.Show(this, message.Message));
		//}

		private void OnStrategyPropertyChanged(object sender, PropertyChangedEventArgs e)
		{
			this.GuiAsync(() =&amp;gt;
			{
				Status.Content = _strategy.ProcessState;
				PnL.Content = _strategy.PnL;
				Slippage.Content = _strategy.Slippage;
				Position.Content = _strategy.Position;
				Latency.Content = _strategy.Latency;
			});
		}

		private void CancelOrdersClick(object sender, RoutedEventArgs e)
		{
			_orders.SelectedOrders.ForEach(_trader.CancelOrder);
		}

		private void StartClick(object sender, RoutedEventArgs e)
		{
			// если были получены и инструмент, и портфель
			if (_strategy == null)
			{
				if (Portfolios.SelectedPortfolio == null)
				{
					MessageBox.Show(this, LocalizedStrings.Str3009);
					return;
				}
                //MessageBox.Show(&amp;quot;!!&amp;quot;);
                // создаем скользящие средние, на 80 5-минуток и 10 5-минуток
                var longSma = new SimpleMovingAverage { Length = 80 };
				var shortSma = new SimpleMovingAverage { Length = 10 };
                
                // регистрируем наш тайм-фрейм
                var series = new CandleSeries(typeof(TimeFrameCandle), _lkoh, _timeFrame);
                
                // создаем торговую стратегию
                _strategy = new SmaStrategy(series, longSma, shortSma)
				{
					Volume = 1,
					Security = _lkoh,
					Portfolio = Portfolios.SelectedPortfolio,
					Connector = _trader,
				};
				_logManager.Sources.Add(_strategy);
				//_strategy.Log += OnLog;
				_strategy.PropertyChanged += OnStrategyPropertyChanged;
                
                _candlesElem = new ChartCandleElement();
				_area.Elements.Add(_candlesElem);

				_longMaElem = new ChartIndicatorElement
				{
					Title = LocalizedStrings.Long,
					Color = Colors.OrangeRed
				};
				_area.Elements.Add(_longMaElem);
                
                _shortMaElem = new ChartIndicatorElement
				{
					Title = LocalizedStrings.Short,
					Color = Colors.RoyalBlue
				};
				_area.Elements.Add(_shortMaElem);
                
                var marketTime = _lkoh.ToExchangeTime(_trader.CurrentTime);

				// начинаем получать свечи за период в 5 дней
				_candleManager.Start(series, DateTime.Today - TimeSpan.FromDays(5), marketTime);

				_lastHistoryCandle = _timeFrame.GetCandleBounds(marketTime).Min;

				Report.IsEnabled = true;
			}

			if (_strategy.ProcessState == ProcessStates.Stopped)
			{
				// запускаем процесс получения стакана, необходимый для работы алгоритма котирования
				_trader.RegisterMarketDepth(_strategy.Security);
				_strategy.Start();
				Start.Content = LocalizedStrings.Str242;
			}
			else
			{
				_trader.UnRegisterMarketDepth(_strategy.Security);
				_strategy.Stop();
				Start.Content = LocalizedStrings.Str2421;
			}
		}

		private void ProcessCandle(Candle candle)
		{
			var longValue = candle.State == CandleStates.Finished ? _strategy.LongSma.Process(candle) : null;
			var shortValue = candle.State == CandleStates.Finished ? _strategy.ShortSma.Process(candle) : null;

			_chart.Draw(candle.OpenTime, new Dictionary&amp;lt;IChartElement, object&amp;gt;
			{
				{ _candlesElem, candle },
				{ _longMaElem, longValue },
				{ _shortMaElem, shortValue },
			});
		}

		private void ReportClick(object sender, RoutedEventArgs e)
		{
			// сгерерировать отчет по прошедшему тестированию
			new ExcelStrategyReport(_strategy, &amp;quot;sma.xlsx&amp;quot;).Generate();

			// открыть отчет
			Process.Start(&amp;quot;sma.xlsx&amp;quot;);
		}
	}
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Посоветуйте в чем может быть ошибка?&lt;br /&gt;Я не нашел где вставить AccountId и запускаю прям без него. Может ошибка в этом? Хотя конектится же он без ошибок.&lt;br /&gt;&lt;br /&gt;---------------update---------------&lt;br /&gt;Опытным путем я обнаружил, что ошибка возникает в конце процедуры StartClick, в следующих строчках:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

                _candlesElem = new ChartCandleElement();
                //_area.Elements.Add(_candlesElem);

                _longMaElem = new ChartIndicatorElement
                {
                    Title = LocalizedStrings.Long,
                    Color = Colors.OrangeRed
                };
                _area.Elements.Add(_longMaElem);

                _shortMaElem = new ChartIndicatorElement
                {
                    Title = LocalizedStrings.Short,
                    Color = Colors.RoyalBlue
                };
                _area.Elements.Add(_shortMaElem);

                var marketTime = _lkoh.ToExchangeTime(_trader.CurrentTime);

                // начинаем получать свечи за период в 5 дней
                _candleManager.Start(series, DateTime.Today - TimeSpan.FromDays(5), marketTime);

                _lastHistoryCandle = _timeFrame.GetCandleBounds(marketTime).Min;

                Report.IsEnabled = true;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Даже если закмоентить все эти строчки и оставить только 2 из них:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;pre class="brush:csharp"&gt;

                _candlesElem = new ChartCandleElement();
                _area.Elements.Add(_candlesElem);&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;То ошибка будет. Похоже проблема в библиотеке, точнее с объектом ChartArea.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>