• Тинькофф Банк-лучшие банковские продукты еще выгоднее
    Выбирайте продукт от банка Тинькофф
  • Уважаемые форумчане, друзья и посетители!
    Поступило предложение ( ссылка на обсуждение ) на сбор средств поддержания форума в рабочем состоянии с 1 июня ( оплата хостинга, бэкап ежедневный на другой хостинг и тд), отчетность будет предоставляться ежемесячно. Пока на ЮMoney ( яндекс деньги), доступно картой перевод, далее добавлю другие способы. Сумму перевода указывайте на ваш выбор исходя из своих возможностей.
    Форум продолжает свою работу благодаря Вашим пожертвованиям.

Программирование Где тут ошибка?

S.t.e.a.m.

New Member
NinjaTrader
Всем привет!
Впервые пишу индикатор для ниндзи, столкнулся с неведомой ошибкой которую не могу найти но компилятор ругается.
Привожу по кусочкам код, с описанием:
foreach (IDrawObject draw in DrawObjects)
{
if (draw.Tag != "Point1 Complect№"+Complect) DrawDot("Point1 Complect№"+Complect, false, Time[fplace], (High[fplace]+Low[fplace])/2, points_col);
}​
Тут ищем точку с определенным тегом, и если ее нет, то добавляем её, и таким же образом еще 2 точки на графике.

foreach (IDrawObject draw in DrawObjects)
{
if (draw is IDot && draw.Tag == "Point1 Complect№"+Complect)
{
Date1 = ((IDot) draw).Time;
break;
}
Здесь я пытаюсь извлечь время из нанесенной на графике точки для дальнейших расчетов. присвоить время нужно в переменную Date1, и тоже самое делаю еще с 2 точками.

nP1= CurrentBar - Bars.GetBar(Date1);​
Теперь этой строчкой я пытаюсь присвоить переменной nP1 индекс бара на котором стоит точка, для того чтобы затем между двумя точками найти наибольшие хай и лоу в диапазоне между точками.

Но компилятор твердит что переменно Date1 не присвоено значение. С указанием на строку
nP1= CurrentBar - Bars.GetBar(Date1);
и аналогичные строки для остальных точек.

если кто-то сталкивался с подобными ошибками, подскажите в чем может быть ошибка и где искать пути решения.

Заранее большое спасибо.
 
Потому что Date1 находится в блоке if, т.е. может и не присвоиться
 
интересно. объявлена переменная в самом начале почти. Попробую как-то вытащить присвоение оттуда.
 
покажите строчку объявления Date1
Вот так это выглядит:
DateTime Date1;
DateTime Date2;
DateTime Date3;​

Объявлены они не в блоке "Variables" а непосредственно перед расчетной частью внутри "OnBarUpdate" вместе с еще многими переменными которые работают нормально.
 
В этом и ошибка. Переменная объявлена но ей не присвоено никакого значения.
Правильно так:
DateTime date1 = new DateTime();
или:
DateTime date1 =DateTime.Now;

Большое спасибо. Действительно в этом была причина.
А я искал сложнее.
 
Назад
Верх Низ