Последний индекс

Страницы: 1
RSS
Последний индекс
 
Как узнать что индекс в OnCalculate(index) является последним?
 
валерий,

Последнюю на данный момент свечку, можно узнать сравнив номер текущей с результатом функции Size()
 
Цитата
Sergey Gorokhov написал:
Последнюю на данный момент свечку, можно узнать сравнив номер текущей с результатом функции Size()

Пробовал - только пока не появится новая последняя свечка :sad:
 
валерий,
Значит Size() не обновился.
Нужно смотреть по коду что не так
 
Вот код

Код
function OnCalculate(index)
   return Size(), index
end


поместите на минутный график и подождите минуту :cool:
 
И они совпадают :cool:
Код
Settings = {
  Name = "TEST",
  line = {{Name  = 'Size',Type = TYPE_POINT,Color = RGB(255, 0, 0),Width=3},
        {Name  = 'index',Type = TYPE_LINE,Color = RGB(0, 255, 0),Width=1}}
}
function Init()
  return #Settings.line
end
function OnCalculate(index)
  return Size(), index
end


Что не так?
 
Вот именно! И как тогда "можно узнать сравнив номер текущей с результатом функции Size()", если они для всех свечек после добавления индикатора совпадают? Какой индекс последний?
 
Цитата
валерий написал:
Какой индекс последний?
Текущий и есть последний, это же очевидно.
В будущее еще не научились смотреть.
 
В 22:04 - время загрузки индикатора - совпадение только действительно на последней свечке, а потом их - совпадений - больше и больше пока не станут практически все.
 
валерий,
Да, ведь до добавления, номер свечки не равен текущему количеству свечек.
Вопрос то в чем?
 
Нужно чтобы условие Size() == index сработало только один раз, а не много раз.
 
Цитата
валерий написал:
Нужно чтобы условие Size() == index сработало только один раз, а не много раз.

Условие будет срабатывать при каждой новой свечке и это правильно. т.к. меняется количество свечек и при изменении текущей.
Если Вам нужно чтобы оно не срабатывало несколько раз при изменении текущей свечки (а не добавлении новой), добавьте еще одно условие проверку.
Что именно проверять Вам решать т.к. нам не известно что Вам требуется.
 
Допустим мне нужно узнать разницу закрытия последнего бара к предыдущему и сообщить мессидж. Как вы предлагаете это сделать?
 
валерий,
Сообщить message в какой момент? В момент закрытия текущей свечи? если так то его отловить можно только после появления новой, или окончания торгов.
Соответственно, нужно добавить условие на проверку появления новой свеч (изменится Size()) и статус торгов (через getParamEx)
 
Цитата
Sergey Gorokhov написал:
валерий  ,
Сообщить message в какой момент? В момент закрытия текущей свечи? если так то его отловить можно только после появления новой, или окончания торгов.
Соответственно, нужно добавить условие на проверку появления новой свеч (изменится Size()) и статус торгов (через getParamEx)

и еще добавить проверку на время т.к новых свечек может и не быть вовсе, даже если торги идут.
 
Как проверить что изменился сайз?
 
валерий,
Запомнить старое значение и сравнить с новым
 
Как узнать значение? На какой свечке? Если на первой там все понятно, но оно не будет соответствовать последнему расчету. А как на последней, если я не могу ее определить?
 
Цитата
валерий написал:
Как узнать значение? На какой свечке? Если на первой там все понятно, но оно не будет соответствовать последнему расчету. А как на последней, если я не могу ее определить?
Вам надо просто запомнить предыдущее значение и сравнить с текущим.
Если они не совпали то обновить предыдущее.
 
Что значит "просто запомнить предыдущее значение"? На каком индексе его брать и запоминать?
 
Можете это в виде кода написать?
 
Цитата
валерий написал:
Что значит "просто запомнить предыдущее значение"? На каком индексе его брать и запоминать?
что мешает добавить для этого переменную в код? И просто ее обновлять если она не равна Size()?

Цитата
валерий написал:
Можете это в виде кода написать?
нет, т.к. задача и так легко решается.
Страницы: 1
Читают тему
Наверх