﻿<?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">Работа с candleManager</title>
  <id>~/topic/977/rabota-s-candlemanager/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-03T17:57:50Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=977" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/2604/</id>
    <title type="text">Опять непонятный косяк возник. Код, по нажатию на кнопку(нажимаем ее когда прошло уже как минимум 10...</title>
    <published>2010-04-14T20:10:00Z</published>
    <updated>2010-04-14T20:10:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Опять непонятный косяк возник.&lt;br /&gt;Код, по нажатию на кнопку(нажимаем ее когда прошло уже как минимум 10&lt;br /&gt;свечей с момента открытия):&lt;br /&gt;&lt;br /&gt;ВремяНажатия=DateTime.Now;&lt;br /&gt;var arg = new CandleArg();&lt;br /&gt;                arg.Value = TimeSpan.FromMinutes(TimeFrame);&lt;br /&gt;                _candleManager.RegisterTimeFrameCandles(secur,&lt;br /&gt;(TimeSpan)arg.Value);&lt;br /&gt;&lt;br /&gt;_candleManager.NewCandles += delegate&lt;br /&gt;                {&lt;br /&gt;                   if (ВремяНажатияПуск.AddSeconds(milsec) &amp;gt;&lt;br /&gt;DateTime.Now) return;&lt;br /&gt;                   candles = _candleManager.GetTimeFrameCandles(secur,&lt;br /&gt;TimeSpan.FromMinutes(TimeFrame), 8);&lt;br /&gt;                };&lt;br /&gt;&lt;br /&gt;И в итоге candles выдает непонятно что...&lt;br /&gt;Аналогично получается если свечи получаю таким образом(когда&lt;br /&gt;просматриваю свечи, то получаю нормальный набор свечей,начиная с&lt;br /&gt;начала сессии до какого то  времени(не до текущего), дальше пусто):&lt;br /&gt;&lt;br /&gt;candles = _candleManager.GetTimeFrameCandles(secur,&lt;br /&gt;&lt;br /&gt;TimeSpan.FromMinutes(TimeFrame),&lt;br /&gt;&lt;br /&gt;new Range&amp;lt;DateTime&amp;gt;(secur.LastTrade.Time.Date + begin,&lt;br /&gt;secur.LastTrade.Time));&lt;br /&gt;&lt;br /&gt;Причем на одном компе работает как часы, а на другом непонятно что&lt;br /&gt;показывает(и опять же не всегда, а к концу сессии)&lt;br /&gt;Версия s# 1.6(сейчас буду на 1.8 переписывать, но не знаю поможет или&lt;br /&gt;нет) &lt;br /&gt; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2603/</id>
    <title type="text">new GetTimeFrameCandles(secur, TimeSpan.FromMinutes(TimeFrame), new Range(minDate, maxDate)); </title>
    <published>2010-03-17T12:41:00Z</published>
    <updated>2010-03-17T12:41:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">new GetTimeFrameCandles(secur, TimeSpan.FromMinutes(TimeFrame), new&lt;br /&gt;Range&amp;lt;DateTime&amp;gt;(minDate, maxDate));&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2602/</id>
    <title type="text">А подскажите пожалуйста, как можно пользоваться перегрузкой GetTimeFrameCandles(Security, TimeSpan, ...</title>
    <published>2010-03-17T07:12:00Z</published>
    <updated>2010-03-17T07:12:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">А подскажите пожалуйста, как можно пользоваться перегрузкой&lt;br /&gt;GetTimeFrameCandles(Security, TimeSpan, Range((DateTime)))&lt;br /&gt;Т.е. я к сожалению не смог нигде найти  где и как можно задать&lt;br /&gt;Range&amp;lt;DateTime&amp;gt; timeRange , м.б. есть какой нибудь пример?&lt;br /&gt;&lt;br /&gt;Вообще мне это надо для того, чтобы получить все доступные свечки&lt;br /&gt;заданного тайм фрейма. Я так понял тут мы задаем диапазон времени и&lt;br /&gt;получаем все свечи из этого диапазона, так? &lt;br /&gt; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2601/</id>
    <title type="text">Получить можно: _candleManager.GetTimeFrameCandles(trader.GetCandleBounds().Min) </title>
    <published>2010-03-15T15:37:00Z</published>
    <updated>2010-03-15T15:37:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Получить можно:&lt;br /&gt;&lt;br /&gt;_candleManager.GetTimeFrameCandles(trader.GetCandleBounds().Min)&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2600/</id>
    <title type="text">Сделал вот так _candleManager.CandlesChanged += delegate { if (ВремяНажатияПуск.AddMinutes(TimeFrame...</title>
    <published>2010-03-15T11:40:00Z</published>
    <updated>2010-03-15T11:40:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Сделал вот так&lt;br /&gt;&lt;br /&gt;_candleManager.CandlesChanged += delegate&lt;br /&gt;                {&lt;br /&gt;                    if&lt;br /&gt;(ВремяНажатияПуск.AddMinutes(TimeFrame)&amp;gt;DateTime.Now)&lt;br /&gt;                    candles =&lt;br /&gt;_candleManager.GetTimeFrameCandles(secur,&lt;br /&gt;TimeSpan.FromMinutes(TimeFrame), 20);&lt;br /&gt;                };&lt;br /&gt;&lt;br /&gt;Все заработало нормально, но один ньюанс появился. Самая последняя&lt;br /&gt;свечка(candles[19]) представляет собой не последнюю свечку на чарте, а&lt;br /&gt;предпоследнюю,т.е. текущую свечку получить не получается... &lt;br /&gt; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2599/</id>
    <title type="text">)) спасибо, попробую </title>
    <published>2010-03-12T16:31:00Z</published>
    <updated>2010-03-12T16:31:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">))&lt;br /&gt;спасибо, попробую &lt;br /&gt; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2598/</id>
    <title type="text">Есть. Вы запускаете RegisterTimeFrameCandles в момент X. Сохраните это время. Ждите, пока не появило...</title>
    <published>2010-03-12T16:30:00Z</published>
    <updated>2010-03-12T16:30:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Есть. Вы запускаете RegisterTimeFrameCandles в момент X. Сохраните это&lt;br /&gt;время. Ждите, пока не появилось NewCandles для времени X + TimeFrame.&lt;br /&gt;&lt;br /&gt;Если следовать Вашему кода, то возникает ситуация. CandlesChanges&lt;br /&gt;вызвалось для свечек с самого начала сессии (фактически для первых&lt;br /&gt;сделок). А Вы еще пытаетесь и -20 свечек взять. Влезать в вечерку&lt;br /&gt;пред. сессиии S# не позволяет =)&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2597/</id>
    <title type="text">А есть выход? Т.е. мне нужно в любой момент времени иметь данные о 20и последних свечках, м.б. подск...</title>
    <published>2010-03-12T16:23:00Z</published>
    <updated>2010-03-12T16:23:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">А есть выход? Т.е. мне нужно в любой момент времени иметь данные о 20и&lt;br /&gt;последних свечках, м.б. подскажите как сделать? &lt;br /&gt; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2596/</id>
    <title type="text">Будут не корректны. Потому что вот что получается. Вы в событие об изменении одних свечек, получаете...</title>
    <published>2010-03-12T16:10:00Z</published>
    <updated>2010-03-12T16:10:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Будут не корректны. Потому что вот что получается. Вы в событие об&lt;br /&gt;изменении одних свечек, получаете данные по другим свечкам. Которые&lt;br /&gt;могут быть еще не сформированны.&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2595/</id>
    <title type="text">Я делаю так: есть кнопка connect, dde и start При нажатии на коннект создаем экземпляр CandleManager...</title>
    <published>2010-03-12T15:41:00Z</published>
    <updated>2010-03-12T15:41:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Я делаю так: есть кнопка connect, dde и start&lt;br /&gt;При нажатии на коннект создаем экземпляр CandleManager, далее делаем&lt;br /&gt;дде вывод и при нажатии на start вот что прописываю:&lt;br /&gt;&lt;br /&gt;_candleManager.RegisterTimeFrameCandles(secur, (TimeSpan)arg.Value);&lt;br /&gt;&lt;br /&gt;               _candleManager.CandlesChanged += delegate&lt;br /&gt;                {&lt;br /&gt;                    candles =&lt;br /&gt;_candleManager.GetTimeFrameCandles(secur,&lt;br /&gt;TimeSpan.FromMinutes(TimeFrame), 20);&lt;br /&gt;                };&lt;br /&gt;&lt;br /&gt;А далее по коду вызываю значения этих свечек, однако все равно данные&lt;br /&gt;не корректные.....&lt;br /&gt; &lt;br /&gt; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2594/</id>
    <title type="text">Так делать нельзя. Свечки формируются в параллельном потоке. Когда Вы вызываете RegisterTimeFrameCan...</title>
    <published>2010-03-12T14:40:00Z</published>
    <updated>2010-03-12T14:40:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Так делать нельзя. Свечки формируются в параллельном потоке. Когда Вы&lt;br /&gt;вызываете RegisterTimeFrameCandles, запускается данный процесс.&lt;br /&gt;Необходимо время для окончания формирования (+ еще особенность ДДЕ&lt;br /&gt;Квика посылать данные не упорядоченно). Именно для этого я и сделал&lt;br /&gt;события СandleChanged.&lt;br /&gt;&lt;br /&gt;Старайтесь делать следующим образом. Запускать экспорт и формирование&lt;br /&gt;свечек в самом старте работы. Затем, предоставлять время роботу&lt;br /&gt;подумать. Как вариант, не сразу запускать процесс торговли, а делать&lt;br /&gt;кнопку старт, которую нажимает пользователь. Человек в состоянии&lt;br /&gt;понять, что загружка проца упала, и что все данные перелиты. В&lt;br /&gt;дальнейшем, уже работать со свечками в стиле: пришло событие&lt;br /&gt;NewCandles, значит все свечки до только что созданных (именно что&lt;br /&gt;только что созданных, а не окончательно сформированных)&lt;br /&gt;сформировались.&lt;br /&gt;&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/2593/</id>
    <title type="text">Здравствуйте. Ситуация такая: в роботе получаю значения 20и последних свечек таким образом arg.Value...</title>
    <published>2010-03-12T14:03:00Z</published>
    <updated>2010-03-12T14:03:00Z</updated>
    <author>
      <name>AndreiFX</name>
      <uri>https://stocksharp.com/users/28035/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Здравствуйте.&lt;br /&gt;Ситуация такая: в роботе получаю значения 20и последних свечек таким&lt;br /&gt;образом&lt;br /&gt;&lt;br /&gt;arg.Value = TimeSpan.FromMinutes(TimeFrame);&lt;br /&gt;secur = Securities.FirstOrDefault(secc =&amp;gt; secc.Code == this.sec.Text);&lt;br /&gt; _candleManager.RegisterTimeFrameCandles(secur, (TimeSpan)arg.Value);&lt;br /&gt; var candles = _candleManager.GetTimeFrameCandles(secur,&lt;br /&gt;TimeSpan.FromMinutes(TimeFrame), 20);&lt;br /&gt;&lt;br /&gt;Сначала они считались грамотно и верно, однако сегодня какая то&lt;br /&gt;неожиданная ошибка: последние 3 свечки не соответствуют&lt;br /&gt;действительности, т.е. там цена какая то не та и время свечи указано&lt;br /&gt;которого на текущий момент еще не было.&lt;br /&gt;Из за чего такое может быть?&lt;br /&gt; &lt;br /&gt; </content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>