﻿<?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">Тиковые данные в OpenECry</title>
  <id>~/topic/9127/tikovye-dannye-v-openecry/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-04-17T16:49:28Z</updated>
  <logo>https://stocksharp.ru/images/logo.png</logo>
  <link href="https://stocksharp.ru/handlers/atom.ashx?category=topic&amp;id=9127" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.ru/posts/m/42671/</id>
    <title type="text">Здравствуйте, вот уже неделю мучаюсь с проблемой, никаким образом не удается получить тиковые данные...</title>
    <published>2018-02-13T10:42:27Z</published>
    <updated>2018-02-14T11:17:25Z</updated>
    <author>
      <name>RashinSergey</name>
      <uri>https://stocksharp.ru/users/99102/</uri>
      <email>info@stocksharp.ru</email>
    </author>
    <content type="html">Здравствуйте, вот уже неделю мучаюсь с проблемой, никаким образом не удается получить тиковые данные в openecry.&lt;br /&gt;&lt;br /&gt;Скажите пожалуйста тики в openECry вообще работают ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Подскажите пожалуйста кто-нибудь в чем дело может быть.... очень прошу =(&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;using ConsoleDump;&lt;br /&gt;using Ecng.Common;&lt;br /&gt;using Ecng.Xaml;&lt;br /&gt;using StockSharp.Algo;&lt;br /&gt;using StockSharp.Algo.Candles;&lt;br /&gt;using StockSharp.BusinessEntities;&lt;br /&gt;using StockSharp.Localization;&lt;br /&gt;using StockSharp.Messages;&lt;br /&gt;using StockSharp.OpenECry;&lt;br /&gt;using StockSharp.Xaml;&lt;br /&gt;using StockSharp.Xaml.Charting;&lt;br /&gt;using System;&lt;br /&gt;using System.Linq;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Windows;&lt;br /&gt;using System.Windows.Controls;&lt;br /&gt;using WpfApp1.Service;&lt;br /&gt;&lt;br /&gt;namespace WpfApp1&lt;br /&gt;{&lt;br /&gt;    /// &amp;lt;summary&amp;gt;&lt;br /&gt;    /// Логика взаимодействия для MainWindow.xaml&lt;br /&gt;    /// &amp;lt;/summary&amp;gt;&lt;br /&gt;    public partial class MainWindow&lt;br /&gt;    {&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Название коннетора&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        private string selectedConnector;&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Выбранный инструмент&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        private Security selectedSecurity;&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Сервис коннеторов&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        private ConnectorServiceInterface ConnectorService;&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// &lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        private readonly ChartCandleElement candlesElem;&lt;br /&gt;&lt;br /&gt;        private CandleManager candleManager;&lt;br /&gt;&lt;br /&gt;        private CandleSeries candleSeries;&lt;br /&gt;        private ChartTradeElement tradesElem;&lt;br /&gt;        private ScalperStrategy strategy;&lt;br /&gt;&lt;br /&gt;        private Connector Trader;&lt;br /&gt;        private Portfolio portfolio;&lt;br /&gt;&lt;br /&gt;        public MainWindow()&lt;br /&gt;        {&lt;br /&gt;            InitializeComponent();&lt;br /&gt;&lt;br /&gt;            CandleSettingsEditor.Settings = new CandleSeries&lt;br /&gt;            {&lt;br /&gt;                CandleType = typeof(TimeFrameCandle),&lt;br /&gt;                Arg = TimeSpan.FromMinutes(5),&lt;br /&gt;            };&lt;br /&gt;            CandleSettingsEditor.SettingsChanged += CandleSettingsChanged;&lt;br /&gt;&lt;br /&gt;            ConnectorService = new ConnectorService();&lt;br /&gt;&lt;br /&gt;            var area = new ChartArea();&lt;br /&gt;            Chart.Areas.Add(area);&lt;br /&gt;&lt;br /&gt;            candlesElem = new ChartCandleElement();&lt;br /&gt;            area.Elements.Add(candlesElem);&lt;br /&gt;&lt;br /&gt;            tradesElem = new ChartTradeElement { FullTitle = LocalizedStrings.Str985 };&lt;br /&gt;            area.Elements.Add(tradesElem);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;     &lt;br /&gt;&lt;br /&gt;        private void SecurityPicker_OnSecuritySelected(Security security)&lt;br /&gt;        {&lt;br /&gt;            if (security == null)&lt;br /&gt;                return;&lt;br /&gt;&lt;br /&gt;            if (candleSeries != null)&lt;br /&gt;            {&lt;br /&gt;                candleManager.Stop(candleSeries); // give back series memory&lt;br /&gt;                strategy.Start();&lt;br /&gt;            }&lt;br /&gt;                &lt;br /&gt;&lt;br /&gt;            Chart.Reset(new&amp;#91;&amp;#93; { candlesElem });&lt;br /&gt;&lt;br /&gt;            selectedSecurity = security;&lt;br /&gt;            StartBotButton.IsEnabled = true;&lt;br /&gt;&lt;br /&gt;       &lt;br /&gt;            Trader.RegisterSecurity(security);&lt;br /&gt;            Trader.RegisterTrades(security);&lt;br /&gt;            Trader.RegisterMarketDepth(security);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            candleSeries = new CandleSeries(CandleSettingsEditor.Settings.CandleType, security, CandleSettingsEditor.Settings.Arg);&lt;br /&gt;&lt;br /&gt;            // create strategy based on 80 5-min и 10 5-min&lt;br /&gt;            strategy = new ScalperStrategy(&lt;br /&gt;                Chart, candlesElem, tradesElem,&lt;br /&gt;                candleManager, candleSeries)&lt;br /&gt;            {&lt;br /&gt;                Volume = 1,&lt;br /&gt;                Portfolio = portfolio,&lt;br /&gt;                Security = security,&lt;br /&gt;                Connector = Trader,&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            strategy.Start();&lt;br /&gt;            candleManager.Start(candleSeries);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void CandleSettingsChanged()&lt;br /&gt;        {&lt;br /&gt;            SecurityPicker_OnSecuritySelected(SecurityPicker.SelectedSecurity);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void FindClick(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            var wnd = new SecurityLookupWindow { Criteria = new Security { Code = &amp;quot;ES&amp;quot; } };&lt;br /&gt;&lt;br /&gt;            if (!wnd.ShowModal())&lt;br /&gt;            {&lt;br /&gt;                return;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            Trader.Lookup(wnd.Criteria);&lt;br /&gt;            Trader.LookupSecurities(wnd.Criteria);&lt;br /&gt;            this.GuiAsync(() =&amp;gt; {&lt;br /&gt;                &lt;br /&gt;            });&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void StartBot(object sender, RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void OnSelectConnector(object sender, System.Windows.Controls.SelectionChangedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            ComboBoxItem item = (ComboBoxItem)ConnectorName.SelectedItem;&lt;br /&gt;&lt;br /&gt;            selectedConnector = item.Name.ToString();&lt;br /&gt;&lt;br /&gt;            Login.IsEnabled = true;&lt;br /&gt;            Password.IsEnabled = true;&lt;br /&gt;            ConnectButton.IsEnabled = true;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &amp;lt;summary&amp;gt;&lt;br /&gt;        /// Информация о стакане&lt;br /&gt;        /// &amp;lt;/summary&amp;gt;&lt;br /&gt;        /// &amp;lt;param name=&amp;quot;depth&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;        private void OnDepth(MarketDepth depth)&lt;br /&gt;        {&lt;br /&gt;            if (depth.Security != selectedSecurity)&lt;br /&gt;            {&lt;br /&gt;                return;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            DepthControl.UpdateDepth(depth);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void ConnectButton_Click(object sender, System.Windows.RoutedEventArgs e)&lt;br /&gt;        {&lt;br /&gt;            Console.WriteLine(&amp;quot;send connect&amp;quot;);&lt;br /&gt;            Trader = ConnectorService.Connect(Login.Text, Password.Password, selectedConnector);&lt;br /&gt;&lt;br /&gt;            // подписываемся на событие успешного соединения&lt;br /&gt;            Trader.Connected += () =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                Console.WriteLine(&amp;quot;Bot connected...&amp;quot;);&lt;br /&gt;&lt;br /&gt;                candleManager = new CandleManager(Trader);&lt;br /&gt;                //Security Criteria = new Security { Code = &amp;quot;ES&amp;quot; };&lt;br /&gt;                //Trader.LookupSecurities(Criteria);&lt;br /&gt;&lt;br /&gt;                // update gui labels&lt;br /&gt;                this.GuiAsync(() =&amp;gt; {&lt;br /&gt;                    FindButton.IsEnabled = true;&lt;br /&gt;                });&lt;br /&gt;&lt;br /&gt;                // subscribe on news&lt;br /&gt;                Trader.RegisterNews();&lt;br /&gt;            };&lt;br /&gt;            &lt;br /&gt;            // событие успешного отключения&lt;br /&gt;            Trader.Disconnected += () =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                Console.WriteLine(&amp;quot;Bot disconnected...&amp;quot;);&lt;br /&gt;                this.GuiAsync(() =&amp;gt; {&lt;br /&gt;                    FindButton.IsEnabled = false;&lt;br /&gt;                });&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            // подписываемся на событие разрыва соединения&lt;br /&gt;            Trader.ConnectionError += error =&amp;gt; this.GuiAsync(() =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2959);&lt;br /&gt;            });&lt;br /&gt;&lt;br /&gt;            // событие ошибки обработки данных&lt;br /&gt;            Trader.Error += error =&amp;gt; this.GuiAsync(() =&amp;gt; MessageBox.Show(this, error.ToString(), LocalizedStrings.Str2955));&lt;br /&gt;&lt;br /&gt;            Trader.NewSecurity += security =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                SecurityPicker.Securities.Add(security);&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            Trader.NewMyTrade += trades =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                trades.Dump();&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            Trader.NewTrade += trade =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                trade.Dump();&lt;br /&gt;            };&lt;br /&gt;            Trader.NewTrades += trade =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                trade.Dump();&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            Trader.NewOrder += order =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;               // order.Dump();&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            Trader.NewPosition += position =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                position.Dump();&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            Trader.NewSecurities += securities =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;               // Console.WriteLine(&amp;quot;Получены инструменты...&amp;quot;);&lt;br /&gt;                //securities.Dump();&lt;br /&gt;&lt;br /&gt;                //Connector.Securities.Dump();&lt;br /&gt;            };&lt;br /&gt;            Trader.NewPortfolio += _portfolio =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                portfolio = _portfolio;&lt;br /&gt;                // подписываемся на обновление портфеля&lt;br /&gt;                Trader.RegisterPortfolio(_portfolio);&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;            Trader.SecurityChanged += sec =&amp;gt;&lt;br /&gt;            {&lt;br /&gt;                sec.Dump();&lt;br /&gt;            };&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            Trader.NewMarketDepth += OnDepth;&lt;br /&gt;            Trader.MarketDepthChanged += OnDepth;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            SecurityPicker.MarketDataProvider = Trader;&lt;br /&gt;&lt;br /&gt;            Trader.Connect();&lt;br /&gt;        }&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>