← Zurück

Проблемы со стаканом

Здравствуйте. Не могу понять, как получать bestask, bestbid и т.д. от квика. Работать с документацией в должной мере еще не могу. Использую вот такой код:

private void button4_Click(object sender, RoutedEventArgs e)
        {
            var md = _trader.GetMarketDepth((Security)Securitites.SelectedItem);
              textBox2.Text=Convert.ToString(md.GetBestQuote(OrderDirections.Buy).Price);      
        
        }

Но выскакивает сообщение, что необходимо "зарезервированное слово new". Как вы понимаете, " new" результатов не дало. Подскажите пожалуйста.

War dieses Thema hilfreich?

Thema teilen

Kommentare (2)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

VassilSanych
VassilSanych

Asantasan: выскакивает сообщение, что необходимо "зарезервированное слово new". Как вы понимаете, " new" результатов не дало. Подскажите пожалуйста. вот

Asantasan
Asantasan Autor

Программа подклчается к квику, включается экспорт по dde, экспорт инструментов и портфелей, генерируется стакан. Но лучший бид по прежнему не выводится в textBox.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using StockSharp.Quik;
using Ecng.Xaml;
using StockSharp.BusinessEntities;
using StockSharp.Algo;
using Ecng.Common;
using Ecng.ComponentModel;
using System.Configuration;


namespace WpfApplication1
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private QuikTrader _trader;
        private Security _lkoh;
        private MarketDepth _depth;
        const string secCode = "LKOH";
        public IEnumerable<Security> securities;
       public void ProcessMarketDepths(MarketDepth marketDepth)
        {
            //textBox1.Text=Convert.ToString(marketDepth.BestAsk);
        }
        private void button1_Click(object sender, RoutedEventArgs e)
       {
           //Security _lkoh = new Security();
         //  MarketDepth _depth = new MarketDepth(_lkoh);
            _trader = new QuikTrader(QuikTerminal.GetDefaultPath());
           /* _trader.NewSecurities +=securities => this.GuiAsync(() =>
            {
                Securitites.ItemsSource = _trader.Securities;
              //  _lkoh = securities.FirstOrDefault(sec => sec.Code == secCode);  
            //    _trader.RegisterMarketDepth(_lkoh);
               
    });*/

 
            _trader.NewPortfolios += portfolios => this.GuiAsync(() =>
            {

                Portfolios.ItemsSource = _trader.Portfolios;
            });


          
                  //  _trader.Connected += () => _trader.StartExport();
                //    _trader.Connect();

                   //_trader.MarketDepthsChanged += depths =>
                   // {
                   //     if (_depth == null && _lkoh != null)
                   //     {
                   //         _depth = depths.FirstOrDefault(d => d.Security == _lkoh);

                   //         if (_depth != null)
                   //         {
                   //            MessageBox.Show("Стакан Лукойла появился.","Dct xbnrfy");

                                
                   //         }
                   //     }
                  //  };
       
        
        }

        private void button2_Click(object sender, RoutedEventArgs e)
        {
 Security _lkoh = new Security();
           MarketDepth _depth = new MarketDepth(_lkoh);
         //  _trader.Connected += () => _trader.StartExport();
           _trader.Connect();
          // _trader = new QuikTrader(QuikTerminal.GetDefaultPath());
           _trader.NewSecurities += securities => this.GuiAsync(() =>
           {
               Securitites.ItemsSource = _trader.Securities;
                _lkoh = securities.FirstOrDefault(sec => sec.Code == secCode);  
                  _trader.RegisterMarketDepth(_lkoh);

           });
           _trader.StartExport(new[]{ _trader.SecuritiesTable, _trader.MyTradesTable, _trader.EquityPositionsTable,
_trader.EquityPortfoliosTable, _trader.OrdersTable });

           _trader.MarketDepthsChanged += depths =>
                      {
                          if (_depth == null && _lkoh != null)
                          {
                              _depth = depths.FirstOrDefault(d => d.Security == _lkoh);

                              if (_depth != null)
                              {
                                  MessageBox.Show("Стакан Лукойла появился.", "Dct xbnrfy");

                                  textBox1.Text = Convert.ToString(_lkoh.BestAsk.Price);
                              }
                             
                          
                          }
                      };
         
        }
            }
        }

  
       
        
        }

Код частично взят из примера. Но пример консольный и прекрасно работает. А мой нет.