﻿<?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/1062/nepravilnoe-formirovanie-svechek-neskolko-tf-mnogo-strategii/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-19T08:56:32Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1062" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/3865/</id>
    <title type="text">Надо. Иначе будет исключение. Специально сделал чтобы ловили с своих роботах код, который норовит за...</title>
    <published>2010-08-25T02:36:00Z</published>
    <updated>2010-08-25T02:36:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Надо. Иначе будет исключение. Специально сделал чтобы ловили с своих
роботах код, который норовит зарегистрировать лишнее.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3864/</id>
    <title type="text">Михаил, задам вопрос тут, дабы не плодить множество тем - надо ли дополнительно проверять IsTimeFram...</title>
    <published>2010-08-25T01:40:00Z</published>
    <updated>2010-08-25T01:40:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Михаил, задам вопрос тут, дабы не плодить множество тем - надо ли
дополнительно проверять IsTimeFrameCandlesRegistered перед
регистрацией таймфрейма или это уже запрятано внутрь
RegisterTimeFrameCandles и повторной регистрации не произойдёт в любом
случае?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3863/</id>
    <title type="text">Чтобы закрыть эту тему - реализовал именно таким образом сейчас, завтра протестирую </title>
    <published>2010-08-25T00:55:00Z</published>
    <updated>2010-08-25T00:55:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Чтобы закрыть эту тему - реализовал именно таким образом сейчас,
завтра протестирую&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3415/</id>
    <title type="text">Я правильно понимаю что для каждого QuikTrader надо создать свой CandleManager и регистрировать необ...</title>
    <published>2010-08-24T21:20:00Z</published>
    <updated>2010-08-24T21:20:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я правильно понимаю что для каждого QuikTrader надо создать свой
CandleManager и регистрировать необходимые ТФ?
Если так, то не проблема, конечно сделаю.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3414/</id>
    <title type="text">Хм, а вот тут не все так просто. Я пока даже предствить себе не могу, как это фиксить. Алгоритм свеч...</title>
    <published>2010-08-24T20:16:00Z</published>
    <updated>2010-08-24T20:16:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Хм, а вот тут не все так просто. Я пока даже предствить себе не могу,
как это фиксить. Алгоритм свечной не поддерживает такое поведение...
Может быть формировать свечки по конретным QuikTrader?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3413/</id>
    <title type="text">Понял, похоже на мои предположения. Буду ждать фикса тогда, сейчас с несколькими квиками не получает...</title>
    <published>2010-08-24T19:57:00Z</published>
    <updated>2010-08-24T19:57:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Понял, похоже на мои предположения. Буду ждать фикса тогда, сейчас с
несколькими квиками не получается иначе работать :(&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3412/</id>
    <title type="text">Ха, я кажется понял в чем фишка. Один Квик строит свечки последовательно, по сделкам. 6 квиков посыл...</title>
    <published>2010-08-24T16:11:00Z</published>
    <updated>2010-08-24T16:11:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Ха, я кажется понял в чем фишка. Один Квик строит свечки
последовательно, по сделкам. 6 квиков посылают сделки параллельно. Как
следствие, неправильные свечки. Алго построения свечек основан на том,
что как только появляется сделка из следующего ТФ, то текущая свечка
помечается как сформированная и к ней более обращений не идет.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3411/</id>
    <title type="text">Да, на сервере 6 квиков, на локальной машине - 1 квик. И там и там идёт работа через MultiTrader, пр...</title>
    <published>2010-08-24T15:33:00Z</published>
    <updated>2010-08-24T15:33:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Да, на сервере 6 квиков, на локальной машине - 1 квик. И там и там
идёт работа через MultiTrader, программа-робот одна и таже.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3410/</id>
    <title type="text">Чем проще цикл, тем меньше ошибок... Так что насчет разницы между тачками? </title>
    <published>2010-08-24T15:08:00Z</published>
    <updated>2010-08-24T15:08:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Чем проще цикл, тем меньше ошибок... Так что насчет разницы между
тачками?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3409/</id>
    <title type="text">У меня просто там много дополнительных условий в цикле, наверное на foreach не получится так просто ...</title>
    <published>2010-08-24T14:29:00Z</published>
    <updated>2010-08-24T14:29:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;У меня просто там много дополнительных условий в цикле, наверное на
foreach не получится так просто заменить. Попробую в любом случае =)&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3408/</id>
    <title type="text">Так, разница между тачками все-таки есть - 1 квик и несколько? </title>
    <published>2010-08-24T14:28:00Z</published>
    <updated>2010-08-24T14:28:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Так, разница между тачками все-таки есть - 1 квик и несколько?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3407/</id>
    <title type="text">Ух, так и правда проще, спасибо. Нет, не менялись - начиная с первой новой свечки (которая формирует...</title>
    <published>2010-08-24T14:25:00Z</published>
    <updated>2010-08-24T14:25:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Ух, так и правда проще, спасибо.
Нет, не менялись - начиная с первой новой свечки (которая формируется
по ходу стратегии, а не до запуска) - неправильные значения.
На локальном компьютере с 1м квиком - всё нормально&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3406/</id>
    <title type="text">Ок... Еще по логу можете посмотреть, менялись ли старые свечки? Или на всех итерациях неправильное з...</title>
    <published>2010-08-24T14:19:00Z</published>
    <updated>2010-08-24T14:19:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Ок... Еще по логу можете посмотреть, менялись ли старые свечки? Или на
всех итерациях неправильное значение?&lt;/p&gt;
&lt;p&gt;Просто поправка по коду. Как то сложно пишите. Может вот так?&lt;/p&gt;
&lt;p&gt;foreach (var localCandle in oldCandles.OrderByDescending(c =&amp;gt; c.Time))&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3405/</id>
    <title type="text">Да, свечки получаются через var oldCandles = _candleManager.GetTimeFrameCandles(Security, TimeFrame,...</title>
    <published>2010-08-24T14:01:00Z</published>
    <updated>2010-08-24T14:01:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Да, свечки получаются через
var oldCandles = _candleManager.GetTimeFrameCandles(Security,
TimeFrame, new Range&amp;lt;DateTime&amp;gt;(firstTime, Trader.MarketTime));&lt;/p&gt;
&lt;p&gt;Но дальше я ведь пробегаю по всем этим свечкам в цикле и печатаю.
Печатаются из цикла неверные значения для всех (!) свечек, не только
для последней (последнюю я как раз и не смотрю) - для всех от 10:20 до
10:45.
Печать, которую дал в первом посте была сделана в 10:50:01, просто
убрал это из сообщения.&lt;/p&gt;
&lt;p&gt;Если убрать всё ненужное, то вот печать:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;                      var oldCandCount = oldCandles.Count();
                        while (it &amp;lt;= oldCandCount)
                        {
                            localCandle =
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;oldCandles.ElementAt(oldCandCount - it);
if (localCandle != null)
{
AddLog(StrategyErrorStates.None,
&amp;quot;localCandle: time({0}), open({1}), close({2}), high({3}), low({4}); &amp;quot;
+&lt;/p&gt;
&lt;p&gt;&amp;quot;TimeFrame: {5}, TotalVolume({6}), TotalPrice({7})&amp;quot;,
new object[]
{
localCandle.Time.TimeOfDay,
localCandle.OpenPrice,
localCandle.ClosePrice, localCandle.HighPrice,
localCandle.LowPrice,
localCandle.TimeFrame,
localCandle.TotalVolume,
localCandle.TotalPrice
});
}
it++;
}&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3404/</id>
    <title type="text">Так Вы же пишите, что включения робота свечки верные. Первые потому, что они полностью сформированы,...</title>
    <published>2010-08-24T13:52:00Z</published>
    <updated>2010-08-24T13:52:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Так Вы же пишите, что включения робота свечки верные. Первые потому,
что они полностью сформированы, и трюк к запросом всех свечек по
текущее время прокатит. А у Вас наверное запрос свечек идет в
OnProcess. И на каждой итерации будет захватываться еще не
сформированная свечка... Откуда у Вас вызывается получение свечек?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3403/</id>
    <title type="text">Нет, не это. Все остальные свечки после включения роботов (в 10:18) тоже кривые, всё они неверные - ...</title>
    <published>2010-08-24T13:29:00Z</published>
    <updated>2010-08-24T13:29:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Нет, не это. Все остальные свечки после включения роботов (в 10:18)
тоже кривые, всё они неверные - неправильно всё, от минимума и
максимума до закрытия\открытия и объёма.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3402/</id>
    <title type="text">Если запрашивать через диапазон new Range(firstTime, marketTime), то можно захватить еще не сформиро...</title>
    <published>2010-08-24T13:23:00Z</published>
    <updated>2010-08-24T13:23:00Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Если запрашивать через диапазон new Range&lt;DateTime&gt;(firstTime,
marketTime), то можно захватить еще не сформированную текущую свечку.
Случаем, не это ли случилось?&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3401/</id>
    <title type="text">свечка в 10:45 должна быть: открытие 139920 макс 139965 мин 139870 закрытие 139800 объём 6957 (никак...</title>
    <published>2010-08-24T13:16:00Z</published>
    <updated>2010-08-24T13:16:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;ol&gt;
&lt;li&gt;свечка в 10:45 должна быть:
открытие 139920
макс 139965
мин 139870
закрытие 139800
объём 6957 (никак не 474 по логу (объём дописал потом))&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;т.е. совсем другие данные&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Никакой разницы нет,время синхронизировано с сервером и стоит одна
и таже зона - Москва.&lt;/li&gt;
&lt;/ol&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3400/</id>
    <title type="text">На счет объема не понял - он в лог не выводится... А в чем кривость свечек то? А в чем разница между...</title>
    <published>2010-08-24T13:10:00Z</published>
    <updated>2010-08-24T13: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;ol&gt;
&lt;li&gt;На счет объема не понял - он в лог не выводится... А в чем кривость
свечек то?&lt;/li&gt;
&lt;li&gt;А в чем разница между локальным компьютером и том, на котором лог
писался?&lt;/li&gt;
&lt;/ol&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/3399/</id>
    <title type="text">Запущено 10 стратегий, для CandleManager регистрируются 2 ТФ: 1- минутки и 5-минутки. Пытаюсь получа...</title>
    <published>2010-08-24T11:01:00Z</published>
    <updated>2010-08-24T11:01:00Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Запущено 10 стратегий, для CandleManager регистрируются 2 ТФ: 1-
минутки и 5-минутки.
Пытаюсь получать свечки внутри стратегии, вот их распечатка:&lt;/p&gt;
&lt;p&gt;localCandle: time(10:45:00), open(139880), close(139800),
high(139945), low(139775); TimeFrame: 00:05:00
localCandle: time(10:40:00), open(139965), close(139910),
high(140145), low(139875); TimeFrame: 00:05:00
localCandle: time(10:35:00), open(140335), close(139985),
high(140335), low(139950); TimeFrame: 00:05:00
localCandle: time(10:30:00), open(140250), close(140355),
high(140395), low(140110); TimeFrame: 00:05:00
localCandle: time(10:25:00), open(140330), close(140250),
high(140335), low(140235); TimeFrame: 00:05:00
localCandle: time(10:20:00), open(140240), close(140325),
high(140340), low(140195); TimeFrame: 00:05:00
localCandle: time(10:15:00), open(140250), close(140185),
high(140325), low(140110); TimeFrame: 00:05:00
localCandle: time(10:10:00), open(140150), close(140225),
high(140385), low(140125); TimeFrame: 00:05:00
localCandle: time(10:05:00), open(140375), close(140150),
high(140375), low(140140); TimeFrame: 00:05:00
localCandle: time(10:00:00), open(140770), close(140370),
high(140770), low(140255); TimeFrame: 00:05:00&lt;/p&gt;
&lt;p&gt;Стратегия запущена была в 10:18, до этого времени свечки как раз
верные, после - совсем не то.
Это фьючерс на индекс РТС - как видно свечки кривые как раз после
запуска.
Объём свечек тоже неверный, объём свечки в 10:45 - 474, в 10:40 -
217...&lt;/p&gt;
&lt;p&gt;Свечки получаю через:
var oldCandles = _candleManager.GetTimeFrameCandles(Security,
TimeFrame, new Range&amp;lt;DateTime&amp;gt;(firstTime, marketTime)); //firstTime -
10.00, marketTime - текущее время, TimeFrame - 5 минут&lt;/p&gt;
&lt;p&gt;Самое интересное - на локальном компьютере, где запущены всего 3
стратегии и 1 квик - всё нормально.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>