mike (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
getCandlesByIndex некорректно работает
 
Не понял.
Вы хотите сказать что в таблице индикатора Settings если я изменил параметры, то при смене торговой или при смене ТФ параметры поменяются на те которые были в файле индикатора?
getCandlesByIndex некорректно работает
 
Загадочная линия - это 2е точки соединенные между собой. Первая - это первая свеча на графике на которой индикатор выдает 0. Вторая - последняя свеча на которой расчитывается некое значение. На всех остальных свечах - nill и поэтому получаем график из двух точек. Тип графика - линия, поэтому эти 2е точки соединены между собой линией. На всех свечах кроме этих двух  getCandlesByIndex ничего не выдает. Почему - вопрос.
getCandlesByIndex некорректно работает
 
Вот текст простого индикатора RateOfChange:
Settings =    
       {
       Name = "ROC2",
       line = {
           {Name = "ROC",
           Type = TYPE_LINE,
           Color = RGB(0, 0, 255)},
           {Name = "Horizontal line (top)",
           Type = TYPE_LINE,
           Color = RGB(100, 100, 100)},
           {Name = "Horizontal line (bottom)",
           Type = TYPE_LINE,
           Color = RGB(100, 100, 100)}

       },
       ID_Graph = "mov",
       per = 3,
       Horizontal_line = 0.1
       }

function Init()
   return 3
end

function OnCalculate(index)
   local pd = Settings.per
   local HL = Settings.Horizontal_line
   local gr, n, leg = getCandlesByIndex(Settings.ID_Graph, 0, index-pd-1, pd+1)
   if index > pd then    
       if n == nil then
           return nil
       end
       if n < pd+1 then
           return nil
       end
       if gr[0].close == nil or gr[0].close == 0 or gr[pd].close == nil then
           return nil    
       end
       return (gr[pd].close-gr[0].close)/gr[0].close*100,HL,-HL
   else
       return 0
   end
end

При помещении на график этот индикатор работает нормально. ID_Graph = "mov" - любая линия, как сам график так и другие индикаторы на графике.
На следующий день этот индикатор выдает странную почти горизонтальную линию не равную 0, при наведении курсора на которую подсказка со значением не выдается (явный глюк). Из кода видно что может выдаваться либо 3 линии (2е горизонтальные) либо одна равная 0 либо ничего. После входа в редактирование графика и нажатия ОК - все считается нормально. После смены ТФ - опять загадочная линия. Если индикатор убрать с графика и снова установить - все считается нормально на всех ТФ.
Получается каждый день на все графики этот индикатор нужно устанавливать заново иначе он не корретно работает.
Я связываю это с  функцией  getCandlesByIndex.
В чем проблема?
Страницы: 1
Наверх