Стакан. Вопросы новичка.
Atom
20.04.2012
nuan


Извиняюсь сразу за глупые вопросы, но как и у многих начинающих, они возникают, а спросить не у кого.

в примере Sample , создаю новую форму, далее в ней код:
Код
namespace Sample
{
	using System;
	using System.Collections.ObjectModel;
	using System.Linq;
	using System.Threading;
	using System.Windows;
	using System.Windows.Controls;

	using Ecng.Collections;
	using Ecng.Common;
	using Ecng.Xaml;

	using StockSharp.BusinessEntities;
	using StockSharp.Quik;
	using StockSharp.Algo;
	
	public partial class bot : Window
	{
		
		private static Security _lkoh;
		private static MarketDepth _depth;
		public bot()
		{
			
			
			InitializeComponent();
			_lkoh.Code="LKOH";
			MainWindow.Instance.Trader.RegisterQuotes(_lkoh);
			_depth=MainWindow.Instance.Trader.GetMarketDepth(_lkoh);
			st.Content=_depth.Asks[0].Price.ToString();
		}
		public ObservableCollection<Security> Securities { get; private set; }
	}
}

Соответственно после вызова окна ругается. Почему, понять не могу.

Теги:


Спасибо:


1 2 3  >
Кот Матроскин

Фотография
Дата: 20.04.2012
Ответить


Что это есть такое:
Код
_lkoh.Code="LKOH";

Ты бумагу ни получил с биржи, ни создал (как в эмуляции)
Пытаясь просто присвоить ей код Лукойла, ты ничего не добьешься
Спасибо:

nuan

Фотография
Дата: 20.04.2012
Ответить


Подскажите как нужно!
Спасибо:

Alexander

Фотография
Дата: 20.04.2012
Ответить


nuan
Подскажите как нужно!


Смотрите примеры что идут в архиве
Спасибо:

nuan

Фотография
Дата: 20.04.2012
Ответить


Код



namespace Sample
{
	using System;
	using System.Collections.ObjectModel;
	using System.Linq;
	using System.Threading;
	using System.Windows;
	using System.Windows.Controls;

	using Ecng.Collections;
	using Ecng.Common;
	using Ecng.Xaml;

	using StockSharp.BusinessEntities;
	using StockSharp.Quik;
	using StockSharp.Algo;
	
	public partial class bot : Window
	{
		
		private static Security _lkoh;
		private static MarketDepth _depth;
		public bot()
		{
			
			
			InitializeComponent();
			const string secCode = "LKOH";
			
			MainWindow.Instance.Trader.NewSecurities += securities =>
						{
							if (_lkoh == null)
							{
								// находим Лукойл и присваиваем ее переменной lkoh
								_lkoh = securities.FirstOrDefault(sec => sec.Code == secCode);

								if (_lkoh != null)
								{
									//Console.WriteLine("Инструмент Лукойл появился.");

									// запускаем экспорт стакана
									MainWindow.Instance.Trader.RegisterQuotes(_lkoh);
									/*
									if (_portfolio != null && _depth != null)
										waitHandle.Set();*/
								}
							}
						};
			_depth=MainWindow.Instance.Trader.GetMarketDepth(_lkoh);
			st.Content=_depth.Asks[0].Price.ToString();
		}
		public ObservableCollection<Security> Securities { get; private set; }
	}
}

Делаю как в примере.
Просто не совсем понимаю принцип получения стакана.
Был бы подробный алгоритм.
В документации все описано довольно скудно.
Был бы простой пример.
Спасибо:

OvcharenkoVI

Фотография
Дата: 20.04.2012
Ответить


А почему инструмент получается не в MainWindow?

Напиши скайп, вечерком скину свою программку работающую, напишу комментарии
Спасибо:

Творог

Фотография
Дата: 20.04.2012
Ответить


А как получить цену и объём определённой очереди? Например цену 3-го бида в стакане.
Спасибо:

Творог

Фотография
Дата: 20.04.2012
Ответить


Насколько я понимаю, нужно создать коллекцию и затем по индексу ретривить цену и объём заявок в стакане. В QPILE так, а в ООП также делается?
Спасибо:

Кот Матроскин

Фотография
Дата: 21.04.2012
Ответить


Под шумок и я задам вопросик для маленьких [blush]. Что может означать двойной знак вопроса ?? в строке:
Код
var result = value as IIndicatorValue ?? input.SetValue(value);
Спасибо:

BigBen

Фотография
Дата: 21.04.2012
Ответить


Кот Матроскин
Под шумок и я задам вопросик для маленьких [blush]. Что может означать двойной знак вопроса ?? в строке:
Код
var result = value as IIndicatorValue ?? input.SetValue(value);


В книгах, например, пишут об этом так:
"Попытка преобразовать обнуляемый объект в его базовый тип путем приведения типов обычно приводит к генерированию исключения System.InvalidOperationException, если обнуляемый объект содержит пустое значение.
Это может произойти, например, в том случае, если значение обнуляемого объекта присваивается переменной его базового типа с помощью приведения типов. Появления данного исключения можно избежать, если воспользоваться оператором ??, называемым нулеобъединяющим оператором. Этот оператор позволяет указать значение, которое будет использоваться по умолчанию, если обнуляемый объект содержит пустое значение. Он также исключает потребность в приведении типов.
Ниже приведена общая форма оператора ??.

обнуляемый_объект ?? значение_по_умолчанию

Если обнуляемый_объект содержит конкретное значение, то результатом операции ?? будет именно это значение. В противном случае результатом операции ?? окажется значение_по_умолчанию."

Читайте литературу!
Спасибо: Кот Матроскин

Кот Матроскин

Фотография
Дата: 21.04.2012
Ответить


Да я прежде чем написать вопрос вчера две книги просмотрел + MDSN + Yandex - кругом ни слова про "??" ((((
Не подскажешь первоисточник))?
За ответ большое спасибо
Спасибо:
1 2 3  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy