﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.ru/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Как в 4.1 формировать свечки из тиков в реал тайме?</title>
  <id>~/topic/2752/kak-v-4_1-formirovat-svechki-iz-tikov-v-real-taime/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-30T22:27:46Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=2752" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/19495/</id>
    <title type="text">TraderHelper.ToCandles в последней версии на codeplex</title>
    <published>2012-06-01T10:26:59Z</published>
    <updated>2012-06-01T10:26:59Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">TraderHelper.ToCandles в последней версии на codeplex</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19482/</id>
    <title type="text">Теперь необходимо конвертировать данные в ICandleBuilderSourceValue. Смотрите в сторону класса Conve...</title>
    <published>2012-05-31T09:54:12Z</published>
    <updated>2012-05-31T09:54:12Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.ru/users/2826/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Теперь необходимо конвертировать данные в ICandleBuilderSourceValue.&lt;br /&gt;Смотрите в сторону класса ConvertableCandleBuilderSource.</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.ru/posts/m/19454/</id>
    <title type="text">Как теперь формировать свечки из тиков в реальном времени? Мне нужно самому генерировать тики (сделк...</title>
    <published>2012-05-30T08:53:49Z</published>
    <updated>2012-05-30T08:53:49Z</updated>
    <author>
      <name>ionn</name>
      <uri>https://stocksharp.ru/users/6029/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Как теперь формировать свечки из тиков в реальном времени?&lt;br /&gt;Мне нужно самому генерировать тики (сделки), без ITrader.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;в 3 версии, я делал так:&lt;br /&gt;&lt;br /&gt;определял источник свечек, с методом AddNewTrade() и через него скармливал тики. CandleManager соответственно строил свечки, а теперь?&lt;br /&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;strong&gt;Код&lt;/strong&gt;&lt;div class="innercode"&gt;&lt;br /&gt;public abstract class MyCandleSource : Disposable, ICandleSource&lt;br /&gt;&lt;br /&gt;public class ParallelMyTraderCandleSource : MyCandleSource&lt;br /&gt;    {&lt;br /&gt;        private readonly SynchronizedList&amp;lt;Trade&amp;gt; _newTrades = new SynchronizedList&amp;lt;Trade&amp;gt;();&lt;br /&gt;&lt;br /&gt;        private bool _isInProcess;&lt;br /&gt;        private readonly Timer _timer;&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Создать &amp;lt;see cref=&amp;quot;ParallelTraderCandleSource&amp;quot;/&amp;gt;.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;trader&amp;quot;&amp;gt;Торговый шлюз, у которого используется событие &amp;lt;see cref=&amp;quot;ITrader.NewTrades&amp;quot;/&amp;gt;.&amp;lt;/param&amp;gt;&lt;br /&gt;        public ParallelMyCandleSource()&lt;br /&gt;            : this(TimeSpan.FromMilliseconds(300))&lt;br /&gt;        {        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Создать &amp;lt;see cref=&amp;quot;ParallelTraderCandleSource&amp;quot;/&amp;gt;.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;trader&amp;quot;&amp;gt;Торговый шлюз, у которого используется событие &amp;lt;see cref=&amp;quot;ITrader.NewTrades&amp;quot;/&amp;gt;.&amp;lt;/param&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;interval&amp;quot;&amp;gt;Интервал отправки новых сделок.&amp;lt;/param&amp;gt;&lt;br /&gt;        public ParallelMyCandleSource(TimeSpan interval)&lt;br /&gt;            : base(int.MaxValue, int.MaxValue)&lt;br /&gt;        {         &lt;br /&gt;&lt;br /&gt;            _timer = interval.CreateTimer(OnProcessTrades);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Обработчик события &amp;lt;see cref=&amp;quot;ITrader.NewTrades&amp;quot;/&amp;gt;.&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;trades&amp;quot;&amp;gt;Новые сделки.&amp;lt;/param&amp;gt;&lt;br /&gt;        protected override void OnNewTrades(IEnumerable&amp;lt;Trade&amp;gt; trades)&lt;br /&gt;        {&lt;br /&gt;            base.OnNewTrades(trades);&lt;br /&gt;&lt;br /&gt;            _newTrades.AddRange(trades);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        public override void AddNewTrades(Trade trade)&lt;br /&gt;        {&lt;br /&gt;            base.AddNewTrades(trade);&lt;br /&gt;&lt;br /&gt;            _newTrades.Add(trade);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void OnProcessTrades()&lt;br /&gt;        {&lt;br /&gt;            if (_isInProcess)&lt;br /&gt;                return;&lt;br /&gt;&lt;br /&gt;            _isInProcess = true;&lt;br /&gt;&lt;br /&gt;            try&lt;br /&gt;            {&lt;br /&gt;                var newTrades = _newTrades.SyncGet(c =&amp;gt;&lt;br /&gt;                {&lt;br /&gt;                    var retVal = c.ToArray();&lt;br /&gt;                    c.Clear();&lt;br /&gt;                    return retVal;&lt;br /&gt;                });&lt;br /&gt;&lt;br /&gt;                if (newTrades.Length &amp;gt; 0)&lt;br /&gt;                    base.RaiseNewTrades(newTrades);&lt;br /&gt;            }&lt;br /&gt;            finally&lt;br /&gt;            {&lt;br /&gt;                _isInProcess = false;&lt;br /&gt;            }&lt;br /&gt;        }        &lt;br /&gt;    }&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>