Получение свечки
Atom Ответить
06.07.2012


Здравствуйте. Вот я решил получить свечку по номеру средствами GetCandle.
И проблема:

при вызове этой функции - ошибка: "Ссылка на объект не указывает на экземпляр объекта"
За основу я взял пример SampleCandles. кинул кнопку и вбил код:

Код

var _series = new CandleSeries(typeof(TimeFrameCandle), SelectedSecurity, TimeSpan.FromMinutes(1));
var cand = _series.GetCandles(1);


SelectedSecurity не null. CandleManager объявлен. Но при вызове функции получения свечки такая беда. подскажите - в чем может быть проблема.
ПС: как я понимаю, CandleManager работает на основе таблицы всех сделок? Тогда как можно данные брать из-за другой день

Теги:


Спасибо:




12 Ответов
Alexander

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


Стэктрэйс нужен

С финама\ртс можно получать всё. См. на гидру, она это делает.
Спасибо:

eddardd

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


Вот это в exception:
Цитата:

System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в StockSharp.Algo.Candles.CandleHelper.GetCandles(CandleSeries series, Int32 candleCount)
в SampleCandles.MainWindow.FindPathClick(Object sender, RoutedEventArgs e) в D:\Install\Stock# 4.1.1\Samples\Quik\SampleCandles\MainWindow.xaml.cs:строка 44
Автор топика
Спасибо:

Alexander

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


series чему равно?
Спасибо:

eddardd

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


Извините, не тот стектрейс. Вот этот:
Цитата:
System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в StockSharp.Algo.Candles.CandleHelper.GetCandle(CandleSeries series, Int32 candleIndex)
в SampleCandles.MainWindow.FindPathClick(Object sender, RoutedEventArgs e) в D:\Install\Stock# 4.1.1\Samples\Quik\SampleCandles\MainWindow.xaml.cs:строка 44


Но ошибка та самая. Исходя из этого тыц нужно использовать эту функцию как GetCandle(CandleSeries series, Int32 candleIndex), но я не могу таким образом вызвать функцию. Получаеться вихвать только
Код
var cand = _series.GetCandles(1);


серию возвращаю вот этим действием:
Код
var _series = new CandleSeries(typeof(TimeFrameCandle), SelectedSecurity, TimeSpan.FromMinutes(1));


но тут ексепшн вылазит.

_series.GetCandles(1) сделал наподобие Вашего туториала: тиц там внизу
Автор топика
Спасибо:

Alexander

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


Ничего не понял.
С самого начала напишите
1) стэктрейс
2) чему равны все параметры в вызываемом методе. Лучше просто делать ToString() для параметров, я пойму.
Спасибо:

eddardd

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


Стектрейс:
Цитата:

System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в StockSharp.Algo.Candles.CandleHelper.GetCandle(CandleSeries series, Int32 candleIndex)
в SampleCandles.MainWindow.FindPathClick(Object sender, RoutedEventArgs e) в D:\Install\Stock# 4.1.1\Samples\Quik\SampleCandles\MainWindow.xaml.cs:строка 44

Параметры:

SelectedSecurity:
Цитата:

RIU2@UX


TimeSpan.FromMinutes(1)
Цитата:

00:01:00


_series
Цитата:

TimeFrameCandle RIU2@UX 00:01:00


Автор топика
Спасибо:

Alexander

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


series.CandleManager чему равен?
Если null - то читайте доку как надо работать со свечками, см. примере.

Если нет - будем разбираться дальше.
Спасибо:

eddardd

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


Действительно null. Делал за этим примером ТИЦ и такое получается. Правда я не рисую график. Хотя б без визуализации
Автор топика
Спасибо:

Moadip

Фотография
Автор статей Программист
Дата: 06.07.2012
Ответить


Написал небольшой пример для проверки.

CS & XAML




По нажатию на кнопку берется время предпоследней свечки _series.GetCandle<TimeFrameCandle>(1).OpenTime
Время такое странное потому что после запуска экспорта по dde начал нажимать на кнопку button и тики еще не успели все подгрузиться.

Вы после того как создали серию _series = new CandleSeries(typeof(TimeFrameCandle), SelectedSecurity, TimeSpan.FromMinutes(1))

Вызываете метод CandleManager.Start() с созданной серией _candleManager.Start(_series)?
Спасибо:

eddardd

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


Спасибо за ответ. Да, вызывал. Но ничего не было. По поводу Вашего примера.. У меня не хочет запускатся, проблема в :

Код
_trader.AddInfoLog("Свечка OpenTime = {0}", _series.GetCandle<TimeFrameCandle>(1).OpenTime);


Ошибка:
Цитата:
вместе с аргументами-типами нельзя использовать не универсальный метод ...CandleHelper.GetCandle(StockSharp.Algo.Candles.CandleSeries,int)


Извините за навязчивость, но в чем может быть проблема?
Автор топика
Спасибо:

Moadip

Фотография
Автор статей Программист
Дата: 06.07.2012
Ответить


Сборка какая?

Скачайте последнюю с CodePlex

Dll брать из ветки trunk.
Спасибо:

eddardd

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


Сборка 4.1.1. Иду качатьSmile
Автор топика
Спасибо:


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

loading
clippy