﻿<?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">Форум. StockSharp</title>
  <id>https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=195</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-22T14:55:59Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=forum&amp;page=195" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/topic/2183/</id>
    <title type="text">Мертвая стратегия</title>
    <published>2011-11-29T16:16:36Z</published>
    <updated>2011-11-29T16:16:36Z</updated>
    <author>
      <name>OvcharenkoVI</name>
      <uri>https://stocksharp.ru/users/390/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="AlfaDirect" />
    <content type="html">&lt;p&gt;Собственно первый раз дошли руки до создания стратегии, до этого копался с базовыми элементами S#. В результате, следуя примеру, написал своего рода тестер(работает или нет), который открывает заявку, если цена меньше определенного числа, никаких ошибок VS не выдает, сделки регистрируются, но стратегия не подает никаких признаков жизни(даже при нажатии Start в логгере не пишется про запуск). До последнего не хотел обращаться к форуму, чтобы не загружать его банальными темами, но все же в итоге выкладываю все, что есть в проекте, так как решения вопроса так и не нашел.&lt;/p&gt;
&lt;p&gt;MainWindow:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;

namespace MyStock
{
    public partial class MainWindow
    {
        private readonly Dictionary&amp;lt;CandleToken, MainWindow&amp;gt; chart = new Dictionary&amp;lt;CandleToken, MainWindow&amp;gt;();
        public AlfaTrader Trader;
        public bool _isConnected;
        public Portfolio _portfolio;
        public CandleManager _candleManager;
        private readonly ObservableCollection&amp;lt;Security&amp;gt; _securitiesSource = new ObservableCollection&amp;lt;Security&amp;gt;();
        private readonly LogManager _logManager = new LogManager();
        //private DateTime _lastCandleTime;
        public readonly TimeSpan timeFrame = (TimeSpan)(AlfaTimeFrames.Minute1);
        public IndStrategy _strategy;
        private Security security;
        private Security security_2;

        public Ind _ind { get; private set; }

        public MainWindow()
            
        {
            InitializeComponent();

            Security.ItemsSource = _securitiesSource;

            Security_2.ItemsSource = _securitiesSource;

            var From = DateTime.Today - TimeSpan.FromDays(1);
            var To = DateTime.Now;

            _logManager.Listeners.Add(new FileLogListener());

            var security = (Security)SelectedSecurity;

        }

        public void button1_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (!_isConnected)
                {

                    if (Trader == null)
                    {
                        var monitor = new MonitorWindow();
                        monitor.Show();

                        Trader = new AlfaTrader
                        {
                            Login = textBox1.Text,
                            Password = passwordBox1.Password
                        };

                        Trader.NewSecurities += securities =&amp;gt; this.Dispatcher.BeginInvoke((Action)(() =&amp;gt; _securitiesSource.AddRange(securities)));
                        
                        Trader.NewPortfolios += portfolios =&amp;gt; this.Dispatcher.BeginInvoke((Action)(() =&amp;gt; portfolios.ForEach(Trader.RegisterPortfolio)));

                        Trader.NewSecurities += securities =&amp;gt; this.Dispatcher.BeginInvoke((Action)(()  =&amp;gt; securities.ForEach(Trader.RegisterTrades)));

                        _logManager.Listeners.Add(new GuiLogListener(monitor));

                        _logManager.Sources.Add(Trader);
                        _logManager.Sources.Add(_strategy);


                    }

                    Trader.Connect();
                    Trader.StartExport();


                    _candleManager = new CandleManager(Trader);



                }
            }
            catch (Exception)
            {
                //System.Windows.MessageBox.Show(this, ex.Message, &amp;quot;Error&amp;quot;);
                //return;
            }
        }

        protected override void OnClosing(CancelEventArgs e)
        {

            base.OnClosing(e);
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
         Trader.Disconnect();
        }


        private void textBox1_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
        {

        }

        private void passwordBox1_PasswordChanged(object sender, RoutedEventArgs e)
        {

        }


        public Security SelectedSecurity
        {
            get { return (Security)Security.SelectedValue; }
        }

        public Security SelectedSecurity_2
        {
            get { return (Security)Security_2.SelectedValue; }
        }


        public void SecuritySelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            
        }

        public void Security_2_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            
        }


        private void button3_Click(object sender, RoutedEventArgs e)
        {
            if (_strategy == null)
            {
                var ind = new Ind();

                security = (Security)SelectedSecurity;

                // создаем торговую стратегию
                _strategy = new IndStrategy(_candleManager, ind, timeFrame)
                {
                    Volume = 1,
                    Security = (Security)SelectedSecurity,
                    Trader = Trader,
                    TimeFrame = timeFrame,
                };

                // начинаем получать текущие сделки (для построения свечек реального времени)
                Trader.RegisterTrades(security);

                //Trader.GetHistoryData(security, timeFrame,
                //                     new Range&amp;lt;DateTime&amp;gt;(DateTime.Today - TimeSpan.FromDays(5), Trader.MarketTime));

                _lastHistoryCandle = timeFrame.GetCandleBounds(Trader).Min;

                // регистрируем наш тайм-фрейм
                _candleManager.RegisterTimeFrameCandles(security, timeFrame);
            }

            if (_strategy.ProcessState == ProcessStates.Stopped)
            {
                // запускаем процесс получения стакана, необходимый для работы алгоритма котирования
                Trader.RegisterQuotes(_strategy.Security);
                _strategy.Start();
            }
            else
            {
                Trader.UnRegisterQuotes(_strategy.Security);
                _strategy.Stop();
            }
        }
    }


}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;quot;Индикатор&amp;quot;[huh]&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;using System;

namespace MyStock
{
    public class Ind : BaseIndicator&amp;lt;decimal&amp;gt;

    {
        public Ind()
            : base(typeof(TimeFrameCandle))
        {

        }

        public override bool IsFormed
        {
            get { return true; }
        }

        public override decimal OnProcess(IIndicatorValue input)
        {
            return input.GetValue&amp;lt;TimeFrameCandle&amp;gt;().ClosePrice;
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Стратегия:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;namespace MyStock
{
    using System;

    using StockSharp.Algo;
    using StockSharp.Algo.Candles;
    using StockSharp.Algo.Indicators;
    using StockSharp.Algo.Indicators.Trend;
    using StockSharp.Algo.Strategies;
    using StockSharp.BusinessEntities;
    using StockSharp.AlfaDirect;

    public class IndStrategy : TimeFrameStrategy
    {
        public readonly CandleManager _candleManager;
        public bool _isSmaller;

        private DateTime _nextTime;

        public IndStrategy(CandleManager candleManager, Ind Ind1, TimeSpan timeFrame)
            : base(timeFrame)
        {
            _candleManager = candleManager;

            this.ind = Ind1;
        }

        public Ind ind { get; private set; }

        protected override void OnStarting()
        {
            _isSmaller = this.ind.LastValue &amp;lt; 200;

            _nextTime = base.TimeFrame.GetCandleBounds(base.Trader).Max;

            base.OnStarting();
        }

        protected override ProcessResults OnProcess()
        {
            if (base.ProcessState == ProcessStates.Stopping)
            {
                base.CancelActiveOrders();

                return ProcessResults.Stop;
            }

            if (base.Trader.MarketTime &amp;lt; _nextTime)
            {
                return ProcessResults.Continue;
            }
            var candle = _candleManager.GetTimeFrameCandle(base.Security, base.TimeFrame, _nextTime - base.TimeFrame);

            if (candle == null)
            {
                if ((base.Trader.MarketTime - _nextTime) &amp;gt; TimeSpan.FromSeconds(10))
                    _nextTime = base.TimeFrame.GetCandleBounds(base.Trader.MarketTime).Max;

                return ProcessResults.Continue;
            }

            _nextTime += base.TimeFrame;

            this.ind.Process((DecimalIndicatorValue)candle.ClosePrice);

            var isSmaller = this.ind.LastValue &amp;lt; 200;

            if (isSmaller == true)
            {
                var direction = isSmaller ? OrderDirections.Sell : OrderDirections.Buy;

                var order = this.CreateOrder(direction, base.Security.GetMarketPrice(direction), 1);

                var strategy = new MarketQuotingStrategy(order, new Unit(), new Unit());
                base.ChildStrategies.Add(strategy);

                _isSmaller = isSmaller;
            }

            return ProcessResults.Continue;
        }
    }
}

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Очень надеюсь на хелп, а то стопорится все что можно&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2182/</id>
    <title type="text">Где взять файл OpenQuant.exe?</title>
    <published>2011-11-29T10:12:59Z</published>
    <updated>2011-11-29T10:12:59Z</updated>
    <author>
      <name>trader</name>
      <uri>https://stocksharp.ru/users/556/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="wealth-lab" />
    <content type="html">&lt;p&gt;Здравствуйте!&lt;/p&gt;
&lt;p&gt;Установил программу установщиком, в папке с программой нет файла самого приложения OpenQuant.exe?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2181/</id>
    <title type="text">Время выставления заявки</title>
    <published>2011-11-28T21:30:11Z</published>
    <updated>2011-11-28T21:30:11Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">&lt;p&gt;Подскажите, пожалуйста, как измерить промежуток времени между подачей заявки моим роботом и временем регистрации заявки на бирже?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2179/</id>
    <title type="text">Котировщик не выставляет заявки</title>
    <published>2011-11-28T18:18:08Z</published>
    <updated>2011-11-28T18:18:08Z</updated>
    <author>
      <name>mdv</name>
      <uri>https://stocksharp.ru/users/6039/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Обновился с 4.03 до 4.06. Верифаер пишет, что таблицы настроены правильно. После запуска котирования ничего не происходит. Как можно попробовать выяснить, в чем тут дело?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;22:05:25.820 |            | TLS             | Стратегия хочет продать 1.
22:05:25.839 |            | MQS             | Стратегия запущена.
22:05:25.909 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:25.913 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:26.133 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:26.140 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:26.399 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:26.649 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:27.413 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:27.444 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:27.460 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:27.710 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:27.975 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:28.240 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:28.427 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:28.770 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:29.441 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:30.461 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:30.633 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:30.898 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:31.462 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:32.488 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:33.488 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:34.507 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:34.570 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:34.819 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:35.550 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:35.596 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:35.862 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:35.924 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:35.955 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:36.205 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:36.392 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:36.392 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:36.548 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:36.642 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:36.907 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:37.172 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:37.188 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:37.453 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:37.453 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:37.546 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:37.698 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:37.950 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:38.468 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:38.468 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:38.561 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:38.733 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:39.529 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:39.575 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:40.073 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:40.330 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:40.331 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:40.588 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' активировано.
22:05:41.105 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' активировано.
22:05:41.143 |            | MQS             | Правило 'MQS - остановка' активировано.
22:05:41.144 |            | MQS             | Правило 'MQS - остановка' удалено.
22:05:41.144 |            | MQS             | Стратегия останавливается.
22:05:41.145 |            | MQS             | Заканчиваем котирование с неисполненным объемом равный 1.
22:05:41.146 |            | MQS             | Правило 'Изменение стакана инструмента RIZ1@RTS' удалено.
22:05:41.146 |            | MQS             | Заканчиваем котирование с неисполненным объемом равный 1.
22:05:41.147 |            | MQS             | Правило 'Изменение инструмента RIZ1@RTS' удалено.
22:05:41.147 |            | MQS             | Заканчиваем котирование с неисполненным объемом равный 1.
22:05:41.148 |            | MQS             | Правило 'Изменение позиции стратегии MQS' удалено.
22:05:41.155 |            | MQS             | Стратегия остановлена.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2178/</id>
    <title type="text">Свечи с таймфреймом менее секунды</title>
    <published>2011-11-28T17:57:58Z</published>
    <updated>2011-11-28T17:57:58Z</updated>
    <author>
      <name>vk37</name>
      <uri>https://stocksharp.ru/users/6296/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;p&gt;Использую версию 3.2.11
Пробую сохранить сформированные свечи в тхт формат из Гидры. Таймфрейм для свечей менее секунды. Все, кроме отсутствия в дате долей секунд, формируется, похоже, правильно. В тхт экспортируются с точностью до секунды. Поменял txt_export_candles.st на:&lt;/p&gt;
&lt;p&gt;$candles:{&lt;span class="math"&gt;\(it.Time; format=&amp;quot;dd.MM.yyyy&amp;quot;\)&lt;/span&gt;, &lt;span class="math"&gt;\(it.Time; format=&amp;quot;HH:mm:ss.FFFFFFF&amp;quot;\)&lt;/span&gt;, &lt;span class="math"&gt;\(it.OpenPrice\)&lt;/span&gt;, &lt;span class="math"&gt;\(it.HighPrice\)&lt;/span&gt;, &lt;span class="math"&gt;\(it.LowPrice\)&lt;/span&gt;, &lt;span class="math"&gt;\(it.ClosePrice\)&lt;/span&gt;, &lt;span class="math"&gt;\(it.TotalVolume\)&lt;/span&gt;
}$&lt;/p&gt;
&lt;p&gt;Все равно точность только до секунд. Похоже, что метод candleManager.GetCandles(token) в CandlesWindow формирует свечи со свойством Time с точностью до секунд. Можно повысить точность свойства Time?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2177/</id>
    <title type="text">SampleHistoryTesting - вопрос по формированию свечек</title>
    <published>2011-11-28T17:02:06Z</published>
    <updated>2011-11-28T17:02:06Z</updated>
    <author>
      <name>Lera</name>
      <uri>https://stocksharp.ru/users/219/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">&lt;p&gt;Здравствуйте!&lt;/p&gt;
&lt;p&gt;При разборе примера &amp;quot;SampleHistoryTesting&amp;quot; (только начинаю осваивать s#), сталкнулась с проблемой, описанной &lt;a href="http://stocksharp.com/forum/1125/Exchange-working-time/"&gt;здесь&lt;/a&gt;, а именно:&lt;/p&gt;
&lt;p&gt;меняю значение timeframe на нестандартный (например, 7 минут) , получаю свечи 9:55, 10:02, 10:09,10:16 и тд. А нужны мне 10:00, 10:07, 10:14... Тогда я меняю значение _nextTime на base.TimeFrame.GetCandleBounds(base.Trader.MarketTime,Exchange.Rts.WorkingTime).Max, те чтобы значение _nextTime рассчитывалось относительно времени работы биржи. И теперь получаю свечки равные null.
Например, в 10:07 я хочу получить свечку 10:00, а она равна null... Ломаю голову, почему так происходит..?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2176/</id>
    <title type="text">как потсроить свечи по данным сохранённым в БД</title>
    <published>2011-11-28T09:30:17Z</published>
    <updated>2011-11-28T09:30:17Z</updated>
    <author>
      <name>AlexK2</name>
      <uri>https://stocksharp.ru/users/28616/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Hydra" />
    <content type="html">&lt;p&gt;как я понял, сейчас гидра не может закачивать данные по сделкам из
квика. буду экспортить их через ODBC в базу.
теперь мне нужно построить по ним свечи. может у кого есть кусок кода
как это можно сделать? в документации не нашел :-(&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2175/</id>
    <title type="text">Можно ли извлечь прибыль из сезонности на рынке,используя простые методы?</title>
    <published>2011-11-28T08:48:44Z</published>
    <updated>2011-11-28T08:48:44Z</updated>
    <author>
      <name>StockSharp</name>
      <uri>https://stocksharp.ru/users/341/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">&lt;p&gt;pratrader.livejournal.com&lt;/p&gt;
&lt;p&gt;Можно ли извлечь прибыль из сезонности на рынке,используя простые методы?
Да.&lt;/p&gt;
&lt;p&gt;Придется принять некие полу-аксиомы.
1)Все что есть у трейдера-это история.Здравый смысл по текущей ситуации тоже есть,но он лишь одна из форм использования истории.
2)Трейдинг основан на том предположении,что история будет повторяться.&lt;/p&gt;
&lt;p&gt;Интересное исследование сезонности опубликовано  и расширено  на российские индексы.
Суть проста.
1 ноября покупай,30 апреля продавай,все остальное время отдыхай.
Показатели эффективности такого подхода?
C 1960 года по сей день такие:
PF=4.33
Win%=73%
AvWin/AvLoss=1.64
Круто?&lt;/p&gt;
&lt;p&gt;продолжение по ссылкам&lt;/p&gt;
&lt;p&gt;&lt;a href="http://pratrader.livejournal.com/237029.html#comments" rel="nofollow" target="_blank"&gt;http://pratrader.livejournal.com/237029.html#comments&lt;/a&gt;
&lt;a href="http://pratrader.livejournal.com/236724.html#comments" rel="nofollow" target="_blank"&gt;http://pratrader.livejournal.com/236724.html#comments&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2174/</id>
    <title type="text">После обновления 4.0.6 не работают правила</title>
    <published>2011-11-28T00:57:57Z</published>
    <updated>2011-11-28T00:57:57Z</updated>
    <author>
      <name>pehas</name>
      <uri>https://stocksharp.ru/users/340/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Доброго времени суток&lt;/p&gt;
&lt;p&gt;После обновления на версию 4.0.6, перестал работать вот такой код&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
this
   .When(CandleToken.CandlesStarted())
   .Do&amp;lt;IEnumerable&amp;lt;Candle&amp;gt;&amp;gt;(candles =&amp;gt;
   {
     var candle = candles.ElementAt(0);
   };

&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code class="language-plain"&gt;
Ошибка	1	Делегат &amp;quot;System.Func&amp;lt;StockSharp.Algo.Strategies.StrategyRule&amp;lt;System.Collections.Generic.IEnumerable&amp;lt;StockSharp.Algo.Candles.Candle&amp;gt;&amp;gt;,System.Collections.Generic.IEnumerable&amp;lt;StockSharp.Algo.Candles.Candle&amp;gt;,System.Collections.Generic.IEnumerable&amp;lt;StockSharp.Algo.Candles.Candle&amp;gt;&amp;gt;&amp;quot; не принимает &amp;quot;1&amp;quot; аргументов	C:\VS2010\AmBot\Strategy.cs	53	42	AmBot

&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2173/</id>
    <title type="text">4.0.6 Trader.Connect() MethodAccessException</title>
    <published>2011-11-27T13:09:50Z</published>
    <updated>2011-11-27T13:09:50Z</updated>
    <author>
      <name>Roman0</name>
      <uri>https://stocksharp.ru/users/6034/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Заменил 4.0.5 на 4.0.6, внес изменения, нормально скомпилировалось, запускаю, Trader.Connect() выдает:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Attempt by security transparent method 'Ecng.Interop.WinApi.GetProcessId(ManagedWinapi.Windows.SystemWindow)' to call native code through method 'Ecng.Interop.WinApi.GetWindowThreadProcessId(IntPtr, Int32 ByRef)' failed.  Methods must be security critical or security safe-critical to call native code.
Attempt by security transparent method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.DisposeNative()' to call native code through method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.#=qui7SGkL$iNzM5199s$PjSQ==(IntPtr)' failed.  Methods must be security critical or security safe-critical to call native code.
System.MethodAccessException
Stack Trace:
   at #=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.DisposeNative()
   at Ecng.Common.Disposable.Finalize()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;После замены Ecng.*.dll на Change Set 11980 выдаваемое сообщение несколько изменилось:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Attempt by security transparent method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=..ctor(System.String)' to call native code through method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.#=qcmOMPVz4o0URNxOFjmfM4g==(System.String)' failed.  Methods must be security critical or security safe-critical to call native code.
Attempt by security transparent method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.DisposeNative()' to call native code through method '#=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.#=qui7SGkL$iNzM5199s$PjSQ==(IntPtr)' failed.  Methods must be security critical or security safe-critical to call native code.
System.MethodAccessException
Stack Trace:
   at #=qKfFOb$dmmYy_28XmokQi8u_CFnpAsKDaUbiigICkX9c=.DisposeNative()
   at Ecng.Common.Disposable.Finalize()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Добавление [assembly: SecurityRules(SecurityRuleSet.Level1)] и &amp;lt;NetFx40_LegacySecurityPolicy enabled=&amp;quot;true&amp;quot;/&amp;gt; ничего не изменило. Подскажите, пожалуйста, что нужно поправить.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2172/</id>
    <title type="text">Обновление до 4.0.6 и .NET 4.0</title>
    <published>2011-11-27T09:38:29Z</published>
    <updated>2011-11-27T09:38:29Z</updated>
    <author>
      <name>destr</name>
      <uri>https://stocksharp.ru/users/6306/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;LogManager.Listeners.Add(new ConsoleLogListener()); кидает исключение.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Attempt by security transparent method 'Ecng.Interop.WinApi.AllocateConsole()' to call native code through method 'Ecng.Interop.WinApi.AttachConsole(UInt32)' failed.  Methods must be security critical or security safe-critical to call native code.
NetFx40_LegacySecurityPolicy не помогает или я не правильно его использую&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2171/</id>
    <title type="text">Новый SmartCOM</title>
    <published>2011-11-25T18:06:02Z</published>
    <updated>2011-11-25T18:06:02Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.ru/users/201/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="SmartCom" />
    <content type="html">&lt;p&gt;Неделю назад получил от АйТи новый СмартКом. Что изменилось - это вы в пресс релизе узнаете, но есть один большой плюс этой версии. Поддержка .NET 4.0. Из-за SmartTrader S# до сих пор не на четверке.&lt;/p&gt;
&lt;p&gt;Я протестировал, вроде работает. Ждать окончания тестирования АйТи Инвест особого желания нет, поэтому будем делать перевод на 4.0 в ближайшее же время. Запустят новый сервер в паблик - хорошо. Не запустят вовремя - переживем (как вариант, перейти временно или окончательно на Плазу).&lt;/p&gt;
&lt;p&gt;Новый инсталятор выложим в Коробку вместе с новым SmartTrader. Желаю все, кто использует СмартКом, скрестить пальцы, чтобы все взлетело.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2170/</id>
    <title type="text">АД 4.0</title>
    <published>2011-11-25T16:05:04Z</published>
    <updated>2011-11-25T16:05:04Z</updated>
    <author>
      <name>Sergey Masyura</name>
      <uri>https://stocksharp.ru/users/701/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="AlfaDirect" />
    <content type="html">&lt;p&gt;&lt;a href="https://alfadirect.ru/common/?page=dev_thread&amp;amp;p=&amp;amp;t=29187" rel="nofollow" target="_blank"&gt;https://alfadirect.ru/common/?page=dev_thread&amp;amp;p=&amp;amp;t=29187&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Текущая версия АД имеет значительное количество недостатков, но не будет подвергаться никакой модернизации, планируется к выводу из эксплуатации в 2012 году. Настоящий раздел форума не предназначен для обмена личными мнениями по вопросу качества ее работы.
В настоящее время в АБ завершается развертывание инфраструктуры для тестирования и эксплуатации новой платформы Интернет трейдинга: АД 4.0. В тестируемой версии АД4.0 среднее время возврата ID ордера (номера, присвоенного брокером), не превышает 1-2 мс с момента получения сервером брокера клиентского приказа. Заявленная производительность АД4.0 не менее 1000 ордеров в секунду.
Инфраструктура, на которой развернута тестовая версия АД4.0 имеет прямое оптоволоконное подключение к точкам обмена трафиком с провайдерами через MSK-IX, поэтому реальное время доступа к серверу АД через хорошего розничного провайдера Интернета, имеющего доступ на MSK-IX составляет в среднем 2-4 мс (пока испытывались провайдеры Onlime и ДС-связь). Мы ожидаем, что средний &amp;quot;раундтрип&amp;quot; ордера до ММВБ (с возвратом ID ордера на ММВБ) при подключении клиента через качественного провайдера не превысит 10- 15 мс. После ввода АД4.0 в эксплуатацию мы планируем регулярно публиковать основные характеристики производительности и скорости работы системы.
Решение о публикации API и реквизитов для подключения к АД4.0 планируется принять после завершения части тестов (вероятно до НГ).
Первоначальный доступ будет предоставлен только квалифицированным разработчикам ПО.&lt;/p&gt;
&lt;p&gt;АД4.0 полностью несовместима с предшествующими версиями
Это действительно принципиально новая платформа, в которой применены новые интерфейсы обмена данными, и модифицирована сама структура данных, которая не сопадает со структурой данных в текущих версиях АД. Полагаю, что старые наработки по АД вам не пригодятся. В частности, для реализации всего функционала системы Клиент АД4.0 должен поддерживать 4 одновременных подключения к разным серверам АБ. Отсутствие обратной совместимости версий АД - о осознанное вынужденное решение разработчиков. Мы не намерены слушать критику по этому вопросу.
Поддержка работоспособнности текущих версий АД будет производится АБ не менее 3-х месяцев после ввода в эксплуатацию полнофунционалльной релизной версии WIN Клиента АД4.0 и публикации АПИ для разработки приложений для конкурирующих ОС. Мы планируем, что это произойдет не ранее 3кв 2012 года.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;Такие новости, лично мне нравится.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2169/</id>
    <title type="text">Когда выполняется правило candleToken.CandlesFinished()</title>
    <published>2011-11-25T05:10:41Z</published>
    <updated>2011-11-25T05:10:41Z</updated>
    <author>
      <name>freelancer</name>
      <uri>https://stocksharp.ru/users/28572/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Собственно вопрос...
Только не надо отвечать что когда свеча закончилась :)
Я использую квик.&lt;/p&gt;
&lt;p&gt;И ещё 1 вопрос. Время у нас 23:49:49. Свеча закончилась -&amp;gt; мы кидаем заявку. Она успеет исполниться ?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2168/</id>
    <title type="text">RandomWalkTradeGenerator неправильно генерит тики</title>
    <published>2011-11-24T23:17:23Z</published>
    <updated>2011-11-24T23:17:23Z</updated>
    <author>
      <name>pehas</name>
      <uri>https://stocksharp.ru/users/340/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="тестирование" />
    <content type="html">&lt;p&gt;Приветствую&lt;/p&gt;
&lt;p&gt;RandomWalkTradeGenerator генерирует тиковые сделки с периодичностью MarketTimeChangedInterval, заданного в EmulationTrader. Меняю это значение на 1 секунду, сделка генерится раз в секунду, меняю на 5 мин., будет генерироваться раз в 5 мин. При этом если я устанавливаю в Interval для TradeGenerators[security] - ничего не происходит, какое бы я туда значение не ставил&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
            this._trader = new EmulationTrader(new[] { security }, new[] { portfolio }) 
	    {
                MarketTimeChangedInterval = TimeSpan.FromMinutes(5),
		WorkingTime = Exchange.Ux.WorkingTime,
		DaysInMemory = 6,
	    };

            //Generate MarketDepth and Ticks
	    this._trader.DepthGenerators[security] = new TrendMarketDepthGenerator(security){ Interval = TimeSpan.FromSeconds(1) };
            this._trader.TradeGenerators[security] = new RandomWalkTradeGenerator(security, 1400);

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Я правильно понимаю, что тики должны генериться раз в Interval для генератора а не раз в MarketTimeChangedInterval Эмулейшен Трейдера (а еще лучше случайное к-во сделок в любой интервал времени)? Это какой-то глюк или я не разобрался, как оно должно работать?&lt;/p&gt;
&lt;p&gt;Мне вообще нужно, чтобы генерировалось рандомное к-во тиковых сделок в каждом MarketTimeChangedInterval...&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2167/</id>
    <title type="text">Не правильно расчитывается ExportTimeOutInterval</title>
    <published>2011-11-24T14:45:01Z</published>
    <updated>2011-11-24T14:45:01Z</updated>
    <author>
      <name>vader</name>
      <uri>https://stocksharp.ru/users/28223/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;pre&gt;&lt;code class="language-csharp"&gt;
this.Trader = new QuikTrader(this.Path.Text);
this.Trader.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
this.Trader.ReConnectionSettings.WorkingTime = Exchange.Rts.WorkingTime;
this.Trader.ReConnectionSettings.ExportTimeOutInterval = TimeSpan.FromSeconds(30);
this.Trader.ReConnectionSettings.ExportTimeOut += delegate { MessageBox.Show(&amp;quot;Данные не поступают.&amp;quot;); };

&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Такой код извещал о не поступлении данных примерно раз в 1,3 минуты, а не в 30 сек, при реальном отсутсвии данных.
В чем может быть проблема?&lt;/p&gt;
&lt;p&gt;Если поставить TimeSpan.FromSeconds(60);, то первое сообщение будет примерно через 1,47 второе через 2 минуты, третье ещё через 2.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2166/</id>
    <title type="text">Ренко</title>
    <published>2011-11-24T12:25:19Z</published>
    <updated>2011-11-24T12:25:19Z</updated>
    <author>
      <name>qpile</name>
      <uri>https://stocksharp.ru/users/6397/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="Quik" />
    <content type="html">&lt;p&gt;Добрый день, уважаемые разработчики всем!
Пытаюсь разобраться и сделать свой собственный тип данных(Renko).
Создаю класс  RandeCandle и наследую его от Candles, как в инструкции. А где и как потом производить регистрацию нового графика?Читал, что вот так candleBuilder.Factories.Add(new TickCandleFactory()); Но где?&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using StockSharp.Algo.Candles;

namespace SampleCandles
{
    public class RandeCandle : Candle
    {

        public int TradeCount { get; set; }

        public override object Arg
        {
            get { return TradeCount; }
        }
    }

    public class TickCandleFactory : CandleFactory&amp;lt;TickCandle, int&amp;gt;
    {
        
        protected override TickCandle CreateCandle(CandleToken&amp;lt;TickCandle, int&amp;gt; token, ICandleBuilderSourceValue value)
        {
            return FirstInitCandle(new TickCandle { TradeCount = token.TypedArg, Time = value.Time }, value);
        }

        protected override bool IsCandleFinishedBeforeChange(CandleToken&amp;lt;TickCandle, int&amp;gt; token, TickCandle candle, ICandleBuilderSourceValue value)
        {
            return Builder.Container.GetValues(candle).Count() &amp;gt;= candle.TradeCount;
        }

    }
 
}

&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2164/</id>
    <title type="text">Ошибка в расчете Гамма</title>
    <published>2011-11-24T08:27:08Z</published>
    <updated>2011-11-24T08:27:08Z</updated>
    <author>
      <name>lesser</name>
      <uri>https://stocksharp.ru/users/6095/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="StockSharp" />
    <content type="html">&lt;p&gt;Сегодня выскочила вот такая ошибка в расчете гамма:&lt;/p&gt;
&lt;p&gt;Это на тестовых торгах , так что думаю проблемы там , но может вам все равно будет интересна эта ошибка.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2163/</id>
    <title type="text">Зарубежные торговые площадки.</title>
    <published>2011-11-24T07:29:05Z</published>
    <updated>2011-11-24T07:29:05Z</updated>
    <author>
      <name>frontman</name>
      <uri>https://stocksharp.ru/users/28487/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="клуб алготрейдеров" />
    <content type="html">&lt;p&gt;Ребят, а никто не знает способы получения зарубежных индексов онлайн?&lt;/p&gt;
</content>
  </entry>
  <entry>
    <id>https://stocksharp.ru/topic/2162/</id>
    <title type="text">Объект принадлежит другому потоку</title>
    <published>2011-11-24T07:24:37Z</published>
    <updated>2011-11-24T07:24:37Z</updated>
    <author>
      <name>OvcharenkoVI</name>
      <uri>https://stocksharp.ru/users/390/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <category term="AlfaDirect" />
    <content type="html">&lt;p&gt;При попытке построить свечки в методе DrawCandles возникает ошибка, что объект candles принадлежит другому потому, как с этим бороться?&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp"&gt;using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Controls;
using StockSharp.Algo;
using StockSharp.Algo.Logging;
using StockSharp.AlfaDirect;
using StockSharp.BusinessEntities;
using ADLite;
using System.Diagnostics;
using System.Windows;
using System.Windows.Media;
using Ecng.Collections;
using Ecng.Common;
using System.Collections.ObjectModel;
using MessageBox = System.Windows.MessageBox;
using StockSharp.Xaml;
using System.Xml;
using Syncfusion.Windows.Shared;
using Ecng.ComponentModel;
using StockSharp.Algo.Candles;
using AmCharts.Windows.Stock;
using StockSharp.Algo.Indicators;
using StockSharp.Algo.Strategies;




namespace MyStock
{
    public partial class MainWindow
    {
        private readonly Dictionary&amp;lt;CandleToken, MainWindow&amp;gt; chart = new Dictionary&amp;lt;CandleToken, MainWindow&amp;gt;();
        public AlfaTrader Trader;
        public bool _isConnected;
        public Portfolio _portfolio;
        public CandleManager _candleManager;
        private readonly ObservableCollection&amp;lt;Security&amp;gt; _securitiesSource = new ObservableCollection&amp;lt;Security&amp;gt;();
        private readonly LogManager _logManager = new LogManager();
        public readonly ICollection&amp;lt;CustomChartIndicator&amp;gt; _ind1;
        private DateTime _lastCandleTime;
        public readonly TimeSpan timeFrame = (TimeSpan)(AlfaTimeFrames.Minute1);

        public Ind _ind { get; private set; }

        public MainWindow()
            
        {
            InitializeComponent();

            Security.ItemsSource = _securitiesSource;

            Security_2.ItemsSource = _securitiesSource;

            var From = DateTime.Today - TimeSpan.FromDays(1);
            var To = DateTime.Now;

            _logManager.Listeners.Add(new FileLogListener());
            
            _ind1 = Chart.CreateTrend(&amp;quot;IND&amp;quot;, GraphType.Line);

            var security = (Security)SelectedSecurity;

        }

        //private void DrawInd()
        //{
        //    var timeFrame = (TimeSpan)(AlfaTimeFrames.Minute1);

        //    var security = SelectedSecurity;

        //    var security_2 = SelectedSecurity_2;

        //    var bounds = timeFrame.GetCandleBounds(Trader);

        //    if ((_lastCandleTime + timeFrame) &amp;lt; bounds.Min)
        //    {
        //        var endOffset = TimeSpan.FromSeconds(1);

        //        bounds = new Range&amp;lt;DateTime&amp;gt;(_lastCandleTime + timeFrame, bounds.Min - endOffset);

        //        var candles = _candleManager.GetTimeFrameCandles(security, timeFrame, bounds);
        //        var canldes1 = _candleManager.GetTimeFrameCandles(security_2, timeFrame, bounds);

        //        if (candles.Count() &amp;gt; 0)
        //        {
        //            // получаем время самой последней свечки и запоминаем его как новое начало
        //            _lastCandleTime = candles.Max(c =&amp;gt; c.Time);

        //            DrawIndLine(bounds.Min);
        //        }
        //    }
        //} 


        private void DrawIndLine(DateTime time)
        {

            _lastCandleTime = time;

                _ind1.Add(new CustomChartIndicator
                {
                    Time = time,
                    Value = (double)_ind.Value
                });
        }

        public void button1_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                if (!_isConnected)
                {

                    if (Trader == null)
                    {
                        var monitor = new LogWindow();
                        monitor.Show();

                        Trader = new AlfaTrader
                        {
                            Login = textBox1.Text,
                            Password = passwordBox1.Password
                        };

                        Trader.NewSecurities += securities =&amp;gt; _securitiesSource.AddRange(securities);

                        Trader.NewPortfolios += portfolios =&amp;gt; portfolios.ForEach(Trader.RegisterPortfolio);

                        Trader.NewSecurities += securities =&amp;gt; securities.ForEach(Trader.RegisterTrades);

                        _logManager.Listeners.Add(new GuiLogListener(monitor));

                        _logManager.Sources.Add(Trader);

                        _candleManager = new CandleManager(Trader);

                        _candleManager.NewCandles += DrawCandles;
                        _candleManager.CandlesChanged += DrawCandles;

                    }

                    Trader.Connect();
                    Trader.StartExport();

                }
            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show(this, ex.Message, &amp;quot;Error&amp;quot;);
                return;
            }
        }


        public void DrawCandles(CandleToken token, IEnumerable&amp;lt;Candle&amp;gt; candles)
        {
                var wnd = chart.TryGetValue(token);
                if (wnd != null)
                    wnd.Chart.Candles.AddRange(candles);
        }

        //public void DrawCandles1(IEnumerable&amp;lt;Candle&amp;gt; candles1)
        //{
        //    _candles.AddRange(candles1);
        //    Chart1._stockChart.DataSets[0].ItemsSource = _candles;
        //}

        protected override void OnClosing(CancelEventArgs e)
        {

            base.OnClosing(e);
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
         Trader.Disconnect();
        }


        private void textBox1_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
        {

        }

        private void passwordBox1_PasswordChanged(object sender, RoutedEventArgs e)
        {

        }


        public Security SelectedSecurity
        {
            get { return (Security)Security.SelectedValue; }
        }

        public Security SelectedSecurity_2
        {
            get { return (Security)Security_2.SelectedValue; }
        }


        public void SecuritySelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ShowChart.IsEnabled = SelectedSecurity != null;
        }

        public void Security_2_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ShowChart.IsEnabled = SelectedSecurity_2 != null;
        }


        public void ShowChart_Click(object sender, RoutedEventArgs e)
        {
            _ind = new Ind();

            var security = (Security)SelectedSecurity;
            var security_2 = (Security)SelectedSecurity_2;
            var from = DateTime.Today - TimeSpan.FromDays(4);
            var to = DateTime.Now;

            var timeFrame = (TimeSpan)(AlfaTimeFrames.Minute1);

            CandleToken token;

            token = _candleManager.RegisterTimeFrameCandles(security, timeFrame);

            chart.SafeAdd(token);

            //foreach (var candle in candles)
            //{

            //    _lastCandleTime = candle.Time;

            //    DrawIndLine(candle.Time);
            //}

            //Chart.Candles.AddRange(candles);
            }


        private void Chart_Loaded(object sender, RoutedEventArgs e)
        {

        }

        private void Chart1_Loaded(object sender, RoutedEventArgs e)
        {
        }
    }


}
&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
</feed>