﻿<?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">События NewCandles и CandlesChanged не происходят.</title>
  <id>~/topic/1773/sobytiya-newcandles-i-candleschanged-ne-proishodyat_/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-12T19:39:40Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1773" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/10054/</id>
    <title type="text">посмотрите SampleSma - как раз пример запуска стратегии</title>
    <published>2011-07-30T15:52:54Z</published>
    <updated>2011-07-30T15:52:54Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">посмотрите SampleSma - как раз пример запуска стратегии</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/10052/</id>
    <title type="text">Возник еще один вопрос. Как в данный код внедрить стратегию SmaStrategy? Я перед циклом вставляю сле...</title>
    <published>2011-07-30T15:20:34Z</published>
    <updated>2011-07-30T15:20:34Z</updated>
    <author>
      <name>paunov</name>
      <uri>https://stocksharp.com/users/27840/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Возник еще один вопрос. Как в данный код внедрить стратегию SmaStrategy?&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;pre class="brush:csharp"&gt;

  _strategy = new SmaStrategy(_candleManager, new Sma(80), new Sma(10), _timeFrame)
                        {
                            Volume = 1,
                            Portfolio = _portfolio,
                            Security = _lkoh,
                            Trader = trader,

                        };


                      
                        _strategy.Start();
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&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/9967/</id>
    <title type="text">Спасибо! Все заработало!</title>
    <published>2011-07-27T15:02:07Z</published>
    <updated>2011-07-27T15:02:07Z</updated>
    <author>
      <name>paunov</name>
      <uri>https://stocksharp.com/users/27840/</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/9966/</id>
    <title type="text">Прошу прощения, с первого раза не понял) а как называется таблица всех сделок? я так понял, что прос...</title>
    <published>2011-07-27T15:00:30Z</published>
    <updated>2011-07-27T15:00:30Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;paunov &lt;a href="https://stocksharp.com/posts/m/9965/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Прошу прощения, с первого раза не понял) &lt;br /&gt;а как называется таблица всех сделок?&lt;br /&gt;я так понял, что просто должен ее в &amp;quot;trader.StartExport(trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable);&amp;quot; вставить)&lt;br /&gt;Спасибо огромное!&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;TradesTable&lt;br /&gt;или просто trader.StartExport(); - все таблицы стартуют</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9965/</id>
    <title type="text">Прошу прощения, с первого раза не понял) а как называется таблица всех сделок? я так понял, что прос...</title>
    <published>2011-07-27T14:58:06Z</published>
    <updated>2011-07-27T14:58:06Z</updated>
    <author>
      <name>paunov</name>
      <uri>https://stocksharp.com/users/27840/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Прошу прощения, с первого раза не понял) &lt;br /&gt;а как называется таблица всех сделок?&lt;br /&gt;я так понял, что просто должен ее в &amp;quot;trader.StartExport(trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable);&amp;quot; вставить)&lt;br /&gt;Спасибо огромное!</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9964/</id>
    <title type="text">Мне нужно получать информацию о свечках. В коде (141-150 строчки) еcть свечные события. Я планирую п...</title>
    <published>2011-07-27T14:38:25Z</published>
    <updated>2011-07-27T14:38:25Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;paunov &lt;a href="https://stocksharp.com/posts/m/9963/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Мне нужно получать информацию о свечках.&lt;br /&gt;В коде (141-150 строчки) еcть свечные события.&lt;br /&gt;Я планирую получать значения свечек через них.&lt;br /&gt;Но как видно из распечатки консоли они не происходят.&lt;br /&gt;Как преодолеть эту проблему?&lt;br /&gt;Спасибо!&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Я ведь ответил:&lt;br /&gt;&lt;span class="highlight"&gt;Свечки строятся по потоку всех сделок инструмента&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;У вас экспорт таблицы всех сделок не стартует =&amp;gt; откуда изволите получать информацию для построения свечек? :)</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9963/</id>
    <title type="text">Мне нужно получать информацию о свечках. В коде (141-150 строчки) еcть свечные события. Я планирую п...</title>
    <published>2011-07-27T14:35:19Z</published>
    <updated>2011-07-27T14:35:19Z</updated>
    <author>
      <name>paunov</name>
      <uri>https://stocksharp.com/users/27840/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Мне нужно получать информацию о свечках.&lt;br /&gt;В коде (141-150 строчки) еcть свечные события.&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/9962/</id>
    <title type="text">Свечки строятся по потоку всех сделок инструмента</title>
    <published>2011-07-27T14:29:39Z</published>
    <updated>2011-07-27T14:29:39Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</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/9961/</id>
    <title type="text">Добавил распечатку RegisterTimeFrameCandles Версия C# 3.2.5 Ошибок вроде никаких. вот консоль Запуще...</title>
    <published>2011-07-27T14:08:38Z</published>
    <updated>2011-07-27T14:08:38Z</updated>
    <author>
      <name>paunov</name>
      <uri>https://stocksharp.com/users/27840/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Добавил распечатку RegisterTimeFrameCandles&lt;br /&gt;Версия C# 3.2.5&lt;br /&gt;Ошибок вроде никаких.&lt;br /&gt;вот консоль&lt;br /&gt;&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;Quote:&lt;/span&gt;&lt;div class="innerquote"&gt;&lt;br /&gt;Запущенный Quik найден по пути C:\Program Files\Quik-Zerich\info.exe&lt;br /&gt;Введите номер счета, через который будет выставлена заявка: Производим подключе&lt;br /&gt;ие...&lt;br /&gt;Подключение было произведено успешно.&lt;br /&gt;Дожидаемся появления в программе инструмента Лукойл и портфеля 1636...&lt;br /&gt;Инструмент Лукойл появился.&lt;br /&gt;Стакан Лукойла появился.&lt;br /&gt;TimeFrameCandle LKOH@EQBR 00:05:00&lt;br /&gt;Портфель 1636 появился.&lt;br /&gt;Первоначальное значение середины спреда 1862,25&lt;br /&gt;Заявка 442774 зарегистрирована.&lt;br /&gt;Заявка 442810 зарегистрирована.&lt;br /&gt;Заявка 442838 зарегистрирована.&lt;br /&gt;Заявка 442895 зарегистрирована.&lt;br /&gt;Заявка 442948 зарегистрирована.&lt;br /&gt;Заявка 442991 зарегистрирована.&lt;br /&gt;Заявка 443021 зарегистрирована.&lt;br /&gt;Заявка 443048 зарегистрирована.&lt;br /&gt;Заявка 443096 зарегистрирована.&lt;br /&gt;Заявка 443121 зарегистрирована.&lt;br /&gt;Заявка 443141 зарегистрирована.&lt;br /&gt;Заявка 443162 зарегистрирована.&lt;br /&gt;Заявка 443209 зарегистрирована.&lt;br /&gt;Заявка 443227 зарегистрирована.&lt;br /&gt;Заявка 443244 зарегистрирована.&lt;br /&gt;Заявка 443277 зарегистрирована.&lt;br /&gt;Заявка 443300 зарегистрирована.&lt;br /&gt;Заявка 443353 зарегистрирована.&lt;br /&gt;Заявка 443368 зарегистрирована.&lt;br /&gt;Заявка 443451 зарегистрирована.&lt;br /&gt;Заявка 443474 зарегистрирована.&lt;br /&gt;Заявка 443538 зарегистрирована.&lt;br /&gt;Заявка 443744 зарегистрирована.&lt;br /&gt;Заявка 444355 зарегистрирована.&lt;br /&gt;Заявка 444578 зарегистрирована.&lt;br /&gt;Сделка 217243 по цене 1861 по бумаге LKOH по объему 1 в 27.07.2011 18:00:08.&lt;br /&gt;Заявка 444660 зарегистрирована.&lt;br /&gt;Заявка 444909 зарегистрирована.&lt;br /&gt;Заявка 445119 зарегистрирована.&lt;br /&gt;Заявка 445210 зарегистрирована.&lt;br /&gt;Заявка 445411 зарегистрирована.&lt;br /&gt;Заявка 445476 зарегистрирована.&lt;br /&gt;Заявка 445569 зарегистрирована.&lt;br /&gt;Заявка 445679 зарегистрирована.&lt;br /&gt;Заявка 445713 зарегистрирована.&lt;br /&gt;Заявка 445762 зарегистрирована.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9960/</id>
    <title type="text">Сначала то, что все инструменты и портфель появились, а потом идут Заявки подряд(с интервалом в пару...</title>
    <published>2011-07-27T13:54:50Z</published>
    <updated>2011-07-27T13:54:50Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;div class="quote"&gt;&lt;span class="quotetitle"&gt;paunov &lt;a href="https://stocksharp.com/posts/m/9959/" class="quote_nav"&gt;&lt;/a&gt;&lt;/span&gt;&lt;div class="innerquote"&gt;Сначала то, что все инструменты и портфель появились, а потом идут Заявки подряд(с интервалом в пару секунд). &amp;quot;Заявка {0} зарегистрирована&amp;quot;. И иногда &amp;quot;Заявка не может быть снята&amp;quot;. (Если сделка уже свершилась, а я попытался снять). И в случае если сделка свершилась в консоль выводится &amp;quot;Сделка {0} по цене {1} по бумаге {2} по объему {3} в {4}.&amp;quot;.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt; &lt;br /&gt;Лучше из консоли скопировать, чтоб точно было.&lt;br /&gt;&lt;br /&gt;Что выводит ProcessDataError?&lt;br /&gt;Что возвращает RegisterTimeFrameCandles?&lt;br /&gt;Версия S#?</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9959/</id>
    <title type="text">Сначала то, что все инструменты и портфель появились, а потом идут Заявки подряд(с интервалом в пару...</title>
    <published>2011-07-27T13:48:39Z</published>
    <updated>2011-07-27T13:48:39Z</updated>
    <author>
      <name>paunov</name>
      <uri>https://stocksharp.com/users/27840/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Сначала то, что все инструменты и портфель появились, а потом идут Заявки подряд(с интервалом в пару секунд). &amp;quot;Заявка {0} зарегистрирована&amp;quot;. И иногда &amp;quot;Заявка не может быть снята&amp;quot;. (Если сделка уже свершилась, а я попытался снять). И в случае если сделка свершилась в консоль выводится &amp;quot;Сделка {0} по цене {1} по бумаге {2} по объему {3} в {4}.&amp;quot;.&lt;br /&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/9958/</id>
    <title type="text">а что выводится в консоль?</title>
    <published>2011-07-27T13:36:24Z</published>
    <updated>2011-07-27T13:36:24Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</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/9957/</id>
    <title type="text">Я добавил в SampleConsole события NewCandles и CandlesChanged. Сделки совершаются, но эти события не...</title>
    <published>2011-07-27T13:30:24Z</published>
    <updated>2011-07-27T13:30:24Z</updated>
    <author>
      <name>paunov</name>
      <uri>https://stocksharp.com/users/27840/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">Я добавил в SampleConsole события NewCandles и CandlesChanged. Сделки совершаются, но эти события не вызываются.&lt;br /&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;pre class="brush:csharp"&gt;
namespace SampleConsole
{
	using System;
	using System.Linq;
	using System.Threading;

	using Ecng.Common;

	using StockSharp.BusinessEntities;
	using StockSharp.Quik;
	using StockSharp.Algo;
    using StockSharp.Algo.Candles;
    using StockSharp.Algo.Reporting;
    using StockSharp.Algo.Strategies;
	class Program
	{
        private readonly static TimeSpan _timeFrame = TimeSpan.FromMinutes(5);
		private static Security _lkoh;
		private static Portfolio _portfolio;
		private static MarketDepth _depth;
        private static CandleManager _candleManager;
		static void Main()
		{
			try
			{
				// для теста выбираем бумагу Лукойл
				const string secCode = &amp;quot;LKOH&amp;quot;;

				var quikPath = QuikTerminal.GetDefaultPath();

				if (quikPath.IsEmpty())
				{
					Console.WriteLine(&amp;quot;Не найден ни один запущенный Quik&amp;quot;);
					return;
				}

				Console.WriteLine(&amp;quot;Запущенный Quik найден по пути &amp;quot; + quikPath);

				Console.Write(&amp;quot;Введите номер счета, через который будет выставлена заявка: &amp;quot;);
                var account = &amp;quot;1636&amp;quot;;

				using (var waitHandle = new AutoResetEvent(false))
				{
					// создаем шлюз к Quik-у
					using (var trader = new QuikTrader(quikPath))
					{
						// необходимо раскомментировать, если идет работа с РТС Стандарт
						//trader.FormatTransaction += builder =&amp;gt; builder.RemoveInstruction(TransactionBuilder.ExecutionCondition);

						// подписываемся на событие успешного подключения
						// все действия необходимо производить только после подключения
						trader.Connected += () =&amp;gt;
						{

                            _candleManager = new CandleManager(trader);
							Console.WriteLine(&amp;quot;Подключение было произведено успешно.&amp;quot;);

							// извещаем об успешном соединени
							waitHandle.Set();
						};

						Console.WriteLine(&amp;quot;Производим подключение...&amp;quot;);

						trader.Connect();

						// дожидаемся события об успешном соединении
						waitHandle.WaitOne();

						trader.NewPortfolios += portfolios =&amp;gt;
						{
							if (_portfolio == null)
							{
								// находим Лукойл и присваиваем ее переменной lkoh
								_portfolio = portfolios.FirstOrDefault(p =&amp;gt; p.Name == account);

								if (_portfolio != null)
								{
									Console.WriteLine(&amp;quot;Портфель {0} появился.&amp;quot;, account);

									// если инструмент и стакан уже появились,
									// то извещаем об этом основной поток для выставления заявки
									if (_lkoh != null &amp;amp;&amp;amp; _depth != null)
										waitHandle.Set();
								}
							}
						};
                        
                        

						// подписываемся на событие появление инструментов
						trader.NewSecurities += securities =&amp;gt;
						{
							if (_lkoh == null)
							{
								// находим Лукойл и присваиваем ее переменной lkoh
								_lkoh = securities.FirstOrDefault(sec =&amp;gt; sec.Code == secCode);

								if (_lkoh != null)
								{
									Console.WriteLine(&amp;quot;Инструмент Лукойл появился.&amp;quot;);

									// запускаем экспорт стакана
									trader.RegisterQuotes(_lkoh);
                                    _candleManager.RegisterTimeFrameCandles(_lkoh, _timeFrame);
									if (_portfolio != null)
										waitHandle.Set();
								}
							}
						};

						// подписываемся на событие появления моих новых сделок
						trader.NewMyTrades += myTrades =&amp;gt;
						{
							foreach (var myTrade in myTrades)
							{
								var trade = myTrade.Trade;
								Console.WriteLine(&amp;quot;Сделка {0} по цене {1} по бумаге {2} по объему {3} в {4}.&amp;quot;, trade.Id, trade.Price, trade.Security.Code, trade.Volume, trade.Time);
							}
						};

						// подписываемся на событие обновления стакана
						trader.QuotesChanged += depths =&amp;gt;
						{
							if (_depth == null &amp;amp;&amp;amp; _lkoh != null)
							{
								_depth = depths.FirstOrDefault(d =&amp;gt; d.Security == _lkoh);

								if (_depth != null)
								{
									Console.WriteLine(&amp;quot;Стакан Лукойла появился.&amp;quot;);

									// если портфель уже появился, то извещаем об этом основной поток для выставления заявки
									if (_portfolio != null)
										waitHandle.Set();
								}
							}
						};

						Console.WriteLine(&amp;quot;Дожидаемся появления в программе инструмента Лукойл и портфеля {0}...&amp;quot;.Put(account));

                        
                        _candleManager.NewCandles += (token, candles) =&amp;gt;
                        {
                            Console.WriteLine(&amp;quot;Событие NewCandles произошло&amp;quot;);
                        };
                        _candleManager.CandlesChanged += (token, candles) =&amp;gt; 
                        {
                            Console.WriteLine(&amp;quot;Событие CandlesChanged произошло&amp;quot;);
                        };
                        
						// запускаем экспорт по DDE
						trader.StartExport(trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable);

						// дожидаемся появления портфеля и инструмента
						waitHandle.WaitOne();

						// 0.1% от изменения цены
						const decimal delta = 0.001m;

						// запоминаем первоначальное значение середины спреда
						var firstMid = _lkoh.BestPair.SpreadPrice / 2;
						Console.WriteLine(&amp;quot;Первоначальное значение середины спреда {0:0.##}&amp;quot;, _lkoh.BestBid.Price + firstMid);

						while (true)
						{
							var mid = _lkoh.BestPair.SpreadPrice / 2;

							// если спред вышел за пределы нашего диапазона
							if	(
									((firstMid + firstMid * delta) &amp;lt;= mid) ||
									((firstMid - firstMid * delta) &amp;gt;= mid) ||(0==0)
								)
							{




								var order = new Order
								{
									Portfolio = _portfolio,
									Price = _lkoh.ShrinkPrice(_lkoh.BestBid.Price + mid),
									Security = _lkoh,
									Volume = 1,
									Direction = OrderDirections.Buy,
								};


								trader.RegisterOrder(order);
								Console.WriteLine(&amp;quot;Заявка {0} зарегистрирована.&amp;quot;, order.Id);

                                Thread.Sleep(1000);

                                try
                                {
                                    if (!order.IsMatched() &amp;amp;&amp;amp; (order.State == OrderStates.Active))
                                        trader.CancelOrder(order);
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine(&amp;quot;Заявка не может быть снята&amp;quot;);
                                }



							}
							else
								Console.WriteLine(&amp;quot;Текущее значение середины спреда {0:0.##}&amp;quot;, _lkoh.BestBid.Price + mid);

							// ждем 1 секунду
							Thread.Sleep(1000);

						}

						// останавливаем экспорт по DDE
						trader.StopExport(trader.SecuritiesTable, trader.MyTradesTable, trader.EquityPositionsTable);
					}
				}
			}
			catch (Exception ex)
			{
				Console.WriteLine(ex);
			}
            var getch = Console.ReadLine();
		}
     
	}
}&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>