﻿<?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">Невозможно изменить значение для свечи</title>
  <id>~/topic/9050/nevozmozhno-izmenit-znachenie-dlya-svechi/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-25T16:30:56Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=9050" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/42401/</id>
    <title type="text">Добрый день! Вот такой код: using System; using System.Net; using System.Security; using System.Wind...</title>
    <published>2018-01-28T01:06:08Z</published>
    <updated>2018-01-28T01:06:08Z</updated>
    <author>
      <name>Константин</name>
      <uri>https://stocksharp.com/users/98279/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добрый день! Вот такой код:&lt;br /&gt;&lt;div class='spoilertitle'&gt;&lt;input type='button' value='Show spoiler' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_642dbee7bc434061a1d391af764dd4b2');" title='Show spoiler' /&gt;&lt;/div&gt;&lt;div class='spoilerbox' id='spolier_642dbee7bc434061a1d391af764dd4b2' style='display:none'&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;using System;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Security;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Media;&lt;br /&gt;using Ecng.Common;&lt;br /&gt;using StockSharp.Algo;&lt;br /&gt;using StockSharp.Algo.Candles;&lt;br /&gt;using StockSharp.BusinessEntities;&lt;br /&gt;using StockSharp.Xaml.Charting;&lt;br /&gt;using StockSharp.Quik;&lt;br /&gt;using Ecng.Xaml;&lt;br /&gt;using StockSharp.Messages;&lt;br /&gt;using System.Linq;&lt;br /&gt;&lt;br /&gt;namespace ShowChart&lt;br /&gt;{&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Логика взаимодействия для MainWindow.xaml&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public partial class MainWindow : Window&lt;br /&gt;    {&lt;br /&gt;        private QuikTrader _trader;&lt;br /&gt;        public static CandleManager CandleManager { get; private set; }&lt;br /&gt;        public static CandleSeries Series { get; private set; }&lt;br /&gt;        public CandleSeries CandleSeries { get; private set; }&lt;br /&gt;        public ChartArea Area { get; set; }&lt;br /&gt;        public bool IsRealtiem { get; set; }&lt;br /&gt;        public ChartCandleElement ChartCandleElement { get; private set; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        public MainWindow()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;            Loaded += MainWindow_Loaded;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void MainWindow_Loaded(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            _trader = new QuikTrader()&lt;br /&gt;            {&lt;br /&gt;                LuaLogin = &amp;quot;Quik&amp;quot;,&lt;br /&gt;                LuaPassword = &amp;quot;Quik&amp;quot;.To&amp;lt;SecureString&amp;gt;(),&lt;br /&gt;                LuaFixServerAddress = &amp;quot;127.0.0.1:5001&amp;quot;.To&amp;lt;EndPoint&amp;gt;(),&lt;br /&gt;            };&lt;br /&gt;            CandleManager = new CandleManager(_trader);&lt;br /&gt;&lt;br /&gt;            _trader.NewSecurity += security =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                if (security.Id == &amp;quot;SBER@QJSIM&amp;quot;)&lt;br /&gt;                {&lt;br /&gt;                    CandleSeries = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromMinutes(1));&lt;br /&gt;                    this.GuiAsync(InitCart);&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;            };&lt;br /&gt;            _trader.Connect();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void InitCart()&lt;br /&gt;        {&lt;br /&gt;            Chart.ClearAreas();&lt;br /&gt;&lt;br /&gt;            Area = new ChartArea();&lt;br /&gt;            var yAxis = Area.YAxises.First();&lt;br /&gt;            yAxis.AutoRange = true;&lt;br /&gt;            Chart.IsAutoScroll = true;&lt;br /&gt;            Chart.ShowOverview = true;&lt;br /&gt;            Chart.AddArea(Area);&lt;br /&gt;&lt;br /&gt;            ChartCandleElement = new ChartCandleElement()&lt;br /&gt;            {&lt;br /&gt;                DownFillColor = Brushes.DarkRed.Color,&lt;br /&gt;                UpFillColor = Brushes.DarkGreen.Color,&lt;br /&gt;                DownBorderColor = Brushes.Red.Color,&lt;br /&gt;                UpBorderColor = Brushes.Green.Color,&lt;br /&gt;            };&lt;br /&gt;            Chart.AddElement(Area, ChartCandleElement, CandleSeries);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void DisplayNewMarketData(CandleSeries candleSeries, Candle candle)&lt;br /&gt;        {&lt;br /&gt;            IsRealtiem = candle.CloseTime + TimeSpan.FromSeconds(5) &amp;gt; DateTimeOffset.Now || IsRealtiem;&lt;br /&gt;&lt;br /&gt;            var chartDrawData = new ChartDrawData();&lt;br /&gt;            var group = chartDrawData.Group(candle.OpenTime);&lt;br /&gt;            group.Add(ChartCandleElement, candle);&lt;br /&gt;            if (IsRealtiem || candle.State == CandleStates.Finished)&lt;br /&gt;                Chart.Draw(chartDrawData);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        private void StartButton_Click(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;br /&gt;            CandleManager.Processing += DisplayNewMarketData;&lt;br /&gt;            CandleManager.Start(CandleSeries);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void StopButton_Click(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            CandleManager.Processing -= DisplayNewMarketData;&lt;br /&gt;            CandleManager.Stop(CandleSeries);&lt;br /&gt;            InitCart();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Данный код рисует свечи при клике по кнопке Start и очищает чарт при клике по кнопке Stop. Если запустить отрисовку свечей кликом по кнопке Start, за тем остановить кнопкой Stop и снова запустить Start то выскакивает исключение:&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;System.InvalidOperationException: &amp;quot;Невозможно изменить значение для свечи для даты 01/27/2018 04:05:00 +03:00 последнее добавленное значение для даты 01/27/2018 22:58:00.&amp;quot;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;В обработчике события (StopButton_Click) по кнопке Stop происходит инициализация чарта заново. Весь день ломаю голову. Почему так происходит? Подскажите пожалуйста.&lt;br /&gt;Во вложении проект.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>