Не могу понять почему не видно свечей


Не могу понять почему не видно свечей
Atom Reply
1/8/2013


Пишу каркас для торговой стратегии.

Вот так создаю свечи:
Код

public partial class MainWindow : Window
    {

        // Объявление переменных
       
        private CandleManager _candleManager; // менеджер свечек

private void Connect_Click(object sender, RoutedEventArgs e)   // жму на кнопку подключения
        {

                _candleManager = new CandleManager(_trader); // создаем менеджер свечек для Трейдера

                _candleManager.Processing += DrawCandle; // подписываемся на событие

private void StartRobo_Click(object sender, RoutedEventArgs e)  // жму на кнопку запуска страты
        {

               CandleSeries series;

                series = new CandleSeries(typeof(TimeFrameCandle), _security, _timeFrame);

                _candleManager.Start(series);
                
                Label3.Content = Convert.ToString(series.GetCandle<TimeFrameCandle>(1).ClosePrice);


При запуске стратегии выскакивает вот такая ошибка

An unhandled exception of type 'System.NullReferenceException' occurred in WpfApplication1.exe

Additional information: Ссылка на объект не указывает на экземпляр объекта.


Не знаю что и делать. Я так понял что свечи не экспортируются.

Какой экземпляр я не создал?

Что делать?

Код основного окна


Код стратегии

Tags:


Thanks:




5 Answers
VassilSanych

Avatar
Date: 1/8/2013
Reply


RoboKrolik Перейти
Что делать?

Смотреть stack trace
Thanks:

RoboKrolik

Avatar
Date: 1/8/2013
Reply


VassilSanych Перейти
RoboKrolik Перейти
Что делать?

Смотреть stack trace


Выдает вот такое когда свечи хочу отрисовать:
_chart.ProcessCandle((ChartCandleElement)_chart.Areas[0].Elements[0], candle);

> WpfApplication1.exe!WpfApplication1.MainWindow.DrawCandle.AnonymousMethod__6() Line 105 + 0x31 bytes C#


Или вот такое когда хочу цену закрытия получить свечи:
Label3.Content = Convert.ToString(series.GetCandle<TimeFrameCandle>(1).ClosePrice);

> WpfApplication1.exe!WpfApplication1.MainWindow.StartRobo_Click(object sender, System.Windows.RoutedEventArgs e) Line 169 + 0x28 bytes C#
Topic starter
Thanks:

Геннадий Ванин (Gennady Vanin)

Avatar
Date: 1/8/2013
Reply


RoboKrolik Перейти

Выдает вот такое когда свечи хочу отрисовать:
_chart.ProcessCandle((ChartCandleElement)_chart.Areas[0].Elements[0], candle);

А вы вообще нигде не добавляете элементы в _chart.Areas[0] ?!

RoboKrolik Перейти
Или вот такое когда хочу цену закрытия получить свечи:
Label3.Content = Convert.ToString(series.GetCandle<TimeFrameCandle>(1).ClosePrice);

> WpfApplication1.exe!WpfApplication1.MainWindow.StartRobo_Click(object sender, System.Windows.RoutedEventArgs e) Line 169 + 0x28 bytes C#


Вы же получаете цену закрытия 2й минутной свечки?
Код
private TimeSpan _timeFrame = TimeSpan.FromMinutes(1); // таймфрейм

Это, ИМО, возможно не немедленно, а Вы сразу дёргаете?

Кроме того, если Вы работаете через учебный сервер, то таблица всех сделок может быть пустая, её заполнение нужно специально запрашивать
Thanks: RoboKrolik

VassilSanych

Avatar
Date: 1/9/2013
Reply


Геннадий Ванин (Gennady Vanin) Перейти
Кроме того, если Вы работаете через учебный сервер, то таблица всех сделок может быть пустая, её заполнение нужно специально запрашивать

У некоторых брокеров (например, у Уралсиба) её и на боевом нужно специально запрашивать.

Thanks: RoboKrolik

RoboKrolik

Avatar
Date: 1/9/2013
Reply


Геннадий Ванин (Gennady Vanin) Перейти
RoboKrolik Перейти

Выдает вот такое когда свечи хочу отрисовать:
_chart.ProcessCandle((ChartCandleElement)_chart.Areas[0].Elements[0], candle);

А вы вообще нигде не добавляете элементы в _chart.Areas[0] ?!

RoboKrolik Перейти
Или вот такое когда хочу цену закрытия получить свечи:
Label3.Content = Convert.ToString(series.GetCandle<TimeFrameCandle>(1).ClosePrice);

> WpfApplication1.exe!WpfApplication1.MainWindow.StartRobo_Click(object sender, System.Windows.RoutedEventArgs e) Line 169 + 0x28 bytes C#


Вы же получаете цену закрытия 2й минутной свечки?
Код
private TimeSpan _timeFrame = TimeSpan.FromMinutes(1); // таймфрейм

Это, ИМО, возможно не немедленно, а Вы сразу дёргаете?

Кроме того, если Вы работаете через учебный сервер, то таблица всех сделок может быть пустая, её заполнение нужно специально запрашивать


Спасибо за помощь. Понял свою ошибку. Пытался обратится к свече раньше чем она создалась и заполнилась.
Topic starter
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy