IvanB
|
Дата: 22.04.2013
UsilaDobry Прошу пояснить смысл метода Код
private void WindowLoaded(object sender, RoutedEventArgs e)
{
//Инициализировать график
InitChart();
}
... Этот метод вызывается после того как окно будет загружено (при запуске приложения). На видео это показано.
|
|
Спасибо:
|
|
|
|
|
UsilaDobry
|
Дата: 22.04.2013
IvanB UsilaDobry Прошу пояснить смысл метода Код
private void WindowLoaded(object sender, RoutedEventArgs e)
{
//Инициализировать график
InitChart();
}
... Этот метод вызывается после того как окно будет загружено (при запуске приложения). На видео это показано. Если я включаю этот метод в код, то у меня на строке _chartArea.Elements.Add(_chartCandleElement); вылетает ошибка - Ссылка на объект не указывает на экземпляр объекта, потому что _chartArea не инициализируется.
|
|
Спасибо:
|
|
|
|
|
IvanB
|
Дата: 22.04.2013
UsilaDobry Если я включаю этот метод в код, то у меня на строке
_chartArea.Elements.Add(_chartCandleElement);
вылетает ошибка - Ссылка на объект не указывает на экземпляр объекта, потому что _chartArea не инициализируется.
Вы можете оставить свой вариант, когда инициализировали график по нажатии на кнопку. Если использовать предложенный вариант этого урока, то смотрите как это сделано в приложенном к видео проекту.
|
|
Спасибо:
|
|
|
|
|
UsilaDobry
|
Дата: 23.04.2013
Наконец-то у меня появились свечи на графике... А проблемы я так и не понял, почему свечи не выводились... Взял удалил строчку <stock:SciChart x:Name="Chart" ChartTheme="ExpressionDark" /> и потом опять её набрал. И свечи появились. Касаясь предыдущего поста, у меня инициализация графика происходит по нажатию кнопки, поэтому до нажатия кнопки в форме отсутствует черный экран, это не очень красиво. Хочу сделать как у Вас, но управление не хочет переходить в метод WindowLoaded, точнее оно переходит, я по F10 проверил, но инициализация не происходит, и решарпер говорит, что этот метод нигде не используется...
|
|
Спасибо:
|
|
|
|
|
UsilaDobry
|
Дата: 23.04.2013
Здесь что-то не то, один раз свечи вышли, теперь опять чистый экран... Может глянете мой проект? По запускал, оказывается свечи на график выводит только по акциям, на ФОРТС свечи рисовать не хочет... На Вашем примере также.
С чем это может быть связано?
|
|
Спасибо:
|
|
|
|
|
Самунджян Артем
|
Дата: 23.04.2013
UsilaDobry Здесь что-то не то, один раз свечи вышли, теперь опять чистый экран... Может глянете мой проект? По запускал, оказывается свечи на график выводит только по акциям, на ФОРТС свечи рисовать не хочет... На Вашем примере также.
С чем это может быть связано? Демо квик может не транслировать сделки Фортс. На реальном квике такого не будет.
|
|
Спасибо:
|
|
|
|
|
UsilaDobry
|
Дата: 23.04.2013
|
|
|
|
Самунджян Артем UsilaDobry Здесь что-то не то, один раз свечи вышли, теперь опять чистый экран... Может глянете мой проект? По запускал, оказывается свечи на график выводит только по акциям, на ФОРТС свечи рисовать не хочет... На Вашем примере также.
С чем это может быть связано? Демо квик может не транслировать сделки Фортс. На реальном квике такого не будет. Думается мне, что ФОРТС здесь не при чем... Я сейчас уже и ваш пример не могу запустить и свой по акциям. Я когда смотрю исполнение кода по F10, управление вообще не попадает в метод отрисовки по указанной свечке. После старта candleManager управление переходит на закрывающую фигурную скобку, а потом открывается окно графика и всё... Код
private void RunProcessGetCandles(TimeSpan timeFrame)
{
//Создаем менеджер свечей
_candleManager = new CandleManager(InterfaceConnection.SafeConnection.Trader);
//Получаем торговый инструмент
var security = InterfaceConnection.SelectedSecurity;
//Создаем серию свечей
_candleSeries = new CandleSeries(typeof (TimeFrameCandle), security, timeFrame);
//Подписываемся на событие обработки свечи
_candleSeries.ProcessCandle += Draw;
//Запускаем получение свечей
_candleManager.Start(_candleSeries);
}
/// <summary>
/// Метод запускает отрисовку по указанной свече///////////////////////////////////////////////////////////////
/// </summary>
/// <param name="candle">Экземпляр свечи</param>
private void Draw(Candle candle)
{
//Временные рамки свечи
var candleBounds = ((TimeSpan) candle.Arg).GetCandleBounds(_candleSeries.Security);
//Получить значение индикатора по данной свечке
var valueBb = _bollinger.Process(candle);
//передаем значения для индикатора
var chartValueBb = new ChartIndicatorValue(_bollinger, valueBb);
//Работаем только с завершенными свечами и одной последней свечей с произвольным состоянием
if (candle.State == CandleStates.Finished || candle.OpenTime >= candleBounds.Min)
{
//Выводим значения на график
this.GuiAsync(() => Chart.ProcessValues(candle.OpenTime, new Dictionary<IChartElement, object>
{
{_chartCandleElement, candle}, //для свечи
{_chartBollingerElement, chartValueBb} //для Bollinger
}));
}
}
|
|
Спасибо:
|
|
|
|
|
IvanB
|
Дата: 24.04.2013
UsilaDobry Думается мне, что ФОРТС здесь не при чем... Я сейчас уже и ваш пример не могу запустить и свой по акциям. Я когда смотрю исполнение кода по F10, управление вообще не попадает в метод отрисовки по указанной свечке. После старта candleManager управление переходит на закрывающую фигурную скобку, а потом открывается окно графика и всё... Проверьте, данные для нужного инструмента поступают в таблицу "Все сделки".
|
|
Спасибо:
|
|
|
|
|
UsilaDobry
|
Дата: 24.04.2013
|
|
|
|
Если данные по инструменту в таблице не обновляются, то Ваш пример прорисовку делает до момента окончания поступления сделок. У меня вообще прорисовку не делает. Сейчас вот такая ошибка выпала, вчера такой не было: Эта ошибка выпадает, когда я набираю строку в конструкторе формы, она подчеркивается синим цветом, а в окне конструктора указано "Не удается создать экземпляр "SciChart" <stock:SciChart Name="Chart" Grid.Row="1"/>
Ошибка 4 Невозможно выполнить приведение [A]Abt.Controls.SciChart.SciChartGroup к [B]Abt.Controls.SciChart.SciChartGroup. Источником типа A является "Abt.Controls.SciChart.Wpf, Version=1.56.4792.15475, Culture=neutral, PublicKeyToken=b55dd9efe817e823" в контексте "LoadNeither" в расположении "C:\Users\UsilaDobry\AppData\Local\Microsoft\VisualStudio\11.0\Designer\ShadowCache\aagfbjp4.zd4\mjiawx45.1fw\Abt.Controls.SciChart.Wpf.dll". Источником типа B является "Abt.Controls.SciChart.Wpf, Version=1.56.4792.15475, Culture=neutral, PublicKeyToken=b55dd9efe817e823" в контексте "LoadNeither" в расположении "C:\Users\UsilaDobry\AppData\Local\Microsoft\VisualStudio\11.0\Designer\ShadowCache\aagfbjp4.zd4\mju54ftn.0uw\Abt.Controls.SciChart.Wpf.dll".
Библиотека находится в разных местах что ли? А что сделать можно?
|
|
Спасибо:
|
|
|
|
|
IvanB
|
Дата: 24.04.2013
|
|
|
|
UsilaDobry ... Ошибка 4 Невозможно выполнить приведение [A]Abt.Controls.SciChart.SciChartGroup к [B]Abt.Controls.SciChart.SciChartGroup. Источником типа A является "Abt.Controls.SciChart.Wpf, Version=1.56.4792.15475, Culture=neutral, PublicKeyToken=b55dd9efe817e823" в контексте "LoadNeither" в расположении "C:\Users\UsilaDobry\AppData\Local\Microsoft\VisualStudio\11.0\Designer\ShadowCache\aagfbjp4.zd4\mjiawx45.1fw\Abt.Controls.SciChart.Wpf.dll". Источником типа B является "Abt.Controls.SciChart.Wpf, Version=1.56.4792.15475, Culture=neutral, PublicKeyToken=b55dd9efe817e823" в контексте "LoadNeither" в расположении "C:\Users\UsilaDobry\AppData\Local\Microsoft\VisualStudio\11.0\Designer\ShadowCache\aagfbjp4.zd4\mju54ftn.0uw\Abt.Controls.SciChart.Wpf.dll".
Библиотека находится в разных местах что ли? А что сделать можно? Попробуйте правой кнопкой по вашему проекту и нажать Clear (очистить) и/или закрыть VS и запустить снова. Похоже, какая-то коллизия в временных файлах проекта.
|
|
|
|