﻿<?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/1375/vcherashnie-svechi-v-candlemanager/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-08T23:41:45Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1375" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/6033/</id>
    <title type="text">Вчера интересовался тем как в candleManager получить вчерашние свечки. (Вопросы новичка) Вариант экс...</title>
    <published>2011-02-17T11:13:26Z</published>
    <updated>2016-08-15T23:46:54Z</updated>
    <author>
      <name>KAX</name>
      <uri>https://stocksharp.com/users/3408/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Вчера интересовался тем как в candleManager получить вчерашние свечки. (&lt;a href="http://stocksharp.com/posts/m/6010/#post5294" title="http://stocksharp.com/posts/m/6010/#post5294"&gt;Вопросы новичка&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Вариант экспорта портфеля на купайле, не понравился, поэтому вот мой велосипед:&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;using Ecng.Trading.Algo.Candles;&lt;br /&gt;    using Ecng.Trading.BusinessEntities;&lt;br /&gt;    using Ecng.Trading.Quik;&lt;br /&gt;&lt;br /&gt;    public class CandleHistoryManager : CandleManager&lt;br /&gt;    {&lt;br /&gt;        private CultureInfo _culture;&lt;br /&gt;        private IEnumerable&amp;lt;TimeFrameCandle&amp;gt; _history;&lt;br /&gt;        public CandleHistoryManager(QuikTrader Quik)&lt;br /&gt;            : base(Quik)&lt;br /&gt;        {&lt;br /&gt;            _culture = new CultureInfo(System.Threading.Thread.CurrentThread.CurrentCulture.Name) { NumberFormat = { NumberDecimalSeparator = &amp;quot;.&amp;quot; } };&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public IEnumerable&amp;lt;TimeFrameCandle&amp;gt; GetTimeFrameCandlesHistory(Security security, TimeSpan timeframe, int candleCount)&lt;br /&gt;        {&lt;br /&gt;            var candleList = base.GetTimeFrameCandles(security, timeframe, candleCount).ToList&amp;lt;TimeFrameCandle&amp;gt;();             &lt;br /&gt;            if (candleList.Count &amp;lt; candleCount)&lt;br /&gt;            {&lt;br /&gt;                int diff = candleCount - candleList.Count;&lt;br /&gt;                string fileName = String.Format(&amp;quot;{0}.txt&amp;quot;, security.Id);&lt;br /&gt;                if (!File.Exists(fileName)) &lt;br /&gt;                {&lt;br /&gt;                    return candleList;&lt;br /&gt;                }&lt;br /&gt;                if (_history == null)&lt;br /&gt;                {&lt;br /&gt;                    _history = File.ReadAllLines(fileName).Select(line =&amp;gt;&lt;br /&gt;                        {&lt;br /&gt;                            var parts = line.Split(&amp;#39;,&amp;#39;);&lt;br /&gt;                            var time = DateTime.ParseExact(parts&amp;#91;0&amp;#93; + parts&amp;#91;1&amp;#93;, &amp;quot;yyyyMMddHHmmss&amp;quot;, _culture);&lt;br /&gt;                            return new TimeFrameCandle&lt;br /&gt;                            {&lt;br /&gt;                                OpenPrice = double.Parse(parts&amp;#91;2&amp;#93;, _culture),&lt;br /&gt;                                HighPrice = double.Parse(parts&amp;#91;3&amp;#93;, _culture),&lt;br /&gt;                                LowPrice = double.Parse(parts&amp;#91;4&amp;#93;, _culture),&lt;br /&gt;                                ClosePrice = double.Parse(parts&amp;#91;5&amp;#93;, _culture),&lt;br /&gt;                                TimeFrame = timeframe,&lt;br /&gt;                                Time = time,&lt;br /&gt;                                TotalVolume = int.Parse(parts&amp;#91;6&amp;#93;, _culture),&lt;br /&gt;                                Security = security&lt;br /&gt;                            };&lt;br /&gt;                        });&lt;br /&gt;                }&lt;br /&gt;                var neededRange = _history.OrderBy(key =&amp;gt; key.Time).ToList&amp;lt;TimeFrameCandle&amp;gt;().GetRange((_history.Count() - diff), diff);&lt;br /&gt;                candleList.InsertRange(0, neededRange);&lt;br /&gt;            }&lt;br /&gt;            return candleList;&lt;br /&gt;        } &lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Собственно алгоритм простой, если количество запрашиваемых свечек больше чем есть, читаем данные из файла.&lt;br /&gt;Файл можно получить на финаме. Формат простой: Дата (ГГГГММДД), Время(ЧЧММСС), Open, High, Low, Close, Volume&lt;br /&gt;&lt;br /&gt;скриншоты и немного воды тут: &lt;a target="_blank" rel="nofollow" href="https://stocksharp.com/away/?u=AQAAAAAAAABuRNyMUhA_LuU32mTB3JOT7zTFAZZp3Xtz4aZRe-TtE8z1lVDHeUj8gpT5AHVLpDVzRDvllLiUMUDO3ly4iT-s" title="http://tradecommunity.ru/blog/stocksharp/41.html"&gt;http://tradecommunity.ru/blog/stocksharp/41.html&lt;/a&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>