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