Вот скрин:
Здесь видно, что индикатор, который работает на этом окне отрисовал прямоугольник. Я специально выбрал самый простой паттерн, чтобы продемонстрировать то, что я хочу уточнить.
Так вот, если двигаться от реального времени в историю, имеется прямоугольник по двум свечам и рядом подпись DBLHC. Как я понимаю, до этого паттерна DBLHC больше объектов на графике нет. Их реально нет. я для определённых экспериментов запускаю скрипт, чтобы вывести в журнал объекты, которые можно увидеть за, допустим, 9 свечей.
Реазультат меня удивил. Вот, что я увидел:
По таймингу видно, что, якобы, находятся объекты на каждом баре. Как это понимать? Там их реально нет.ObjectName(i) выдаёт i-ый объект по счёту. Не по свече.
Время объекта (смотря что за объект, какое время смотреть), ObjectGetInteger(chart,object,OBJPROP_TIME1)
надо сравнивать это время со временем свечи
Вот скрин:
Здесь видно, что индикатор, который работает на этом окне отрисовал прямоугольник. Я специально выбрал самый простой паттерн, чтобы продемонстрировать то, что я хочу уточнить.
Так вот, если двигаться от реального времени в историю, имеется прямоугольник по двум свечам и рядом подпись DBLHC. Как я понимаю, до этого паттерна DBLHC больше объектов на графике нет. Их реально нет. я для определённых экспериментов запускаю скрипт, чтобы вывести в журнал объекты, которые можно увидеть за, допустим, 9 свечей.
Реазультат меня удивил. Вот, что я увидел:
По таймингу видно, что, якобы, находятся объекты на каждом баре. Как это понимать? Там их реально нет.void OnStart() { //--- string objName = ""; for (int i = 0; i < 9; i++) { objName = ObjectName(i); if (objName != "") запрос времени обьекта по имени обьекта //Print("Time[", i, "] = ", Time[i], " :: объект ", objName, " на индексе ", i); } }
Проверьте по имени, а не по пустому имени...
Вы берете номер свечи по порядку 1,2,3,4 .... И берете имя обьекта по порядку.... по этому у Вас так и получается.... Нет никакой связи между тем как называется обьект и временем свечи по порядку....
Если Вы хотите узнать на каком времени обьект то тогда надо искать обьект по имени как в вашем примере и спрашивать его время, время свечи тут не причем...
Проверьте по имени, а не по пустому имени...
Вы берете номер свечи по порядку 1,2,3,4 .... И берете имя обьекта по порядку.... по этому у Вас так и получается.... Нет никакой связи между тем как называется обьект и временем свечи по порядку....
Хотя да. Поздно вчера занялся этим, не учёл, что там не по индексу в таймсерии, а по индексу в перечне всех объектов ищется.
ObjectName(i) выдаёт i-ый объект по счёту. Не по свече.
Время объекта (смотря что за объект, какое время смотреть), ObjectGetInteger(chart,object,OBJPROP_TIME1)
надо сравнивать это время со временем свечи
Только что я переписал скрипт. Вот он:
void OnStart() { //--- string objName = ""; datetime objTime; for (int i = 0; i < 17; i++) { objName = ObjectName(i); objTime = (datetime)ObjectGetInteger(0, objName, OBJPROP_TIME); Print("objName = ", objName); Print("objTime = ", objTime); if (Time[i] != objTime) continue; for (int obj = ObjectsTotal() - 1; obj == 0; obj--) { Print("i = ", i, " " , StrToTime(StringSubstr(objName, 11))); } } }
Всё-таки есть какие-то странности. Вот скрин:
В журнале вот что:
2019.11.05 17:29:30.617 Script FindObjects USDCAD,M1: removed 2019.11.05 17:29:30.615 FindObjects USDCAD,M1: uninit reason 0 2019.11.05 17:29:30.615 FindObjects USDCAD,M1: objTime = 2019.11.05 16:18:00 2019.11.05 17:29:30.615 FindObjects USDCAD,M1: objName = PAPATTERN_DB__2_1572970740 2019.11.05 17:29:30.615 FindObjects USDCAD,M1: objTime = 2019.11.05 16:05:00 2019.11.05 17:29:30.615 FindObjects USDCAD,M1: objName = PAPATTERN_DB__2_1572969900 2019.11.05 17:29:30.615 FindObjects USDCAD,M1: objTime = 2019.11.05 16:17:00 2019.11.05 17:29:30.615 FindObjects USDCAD,M1: objName = PAPATTERN_DB__1_1572970740 2019.11.05 17:29:30.615 FindObjects USDCAD,M1: objTime = 2019.11.05 16:04:00 2019.11.05 17:29:30.615 FindObjects USDCAD,M1: objName = PAPATTERN_DB__1_1572969900 2019.11.05 17:29:30.615 FindObjects USDCAD,M1: initialized 2019.11.05 17:29:30.595 Script myTests\FindObjects USDCAD,M1: loaded successfullyВопрос на скрине. На самом последнем баре, на котором отрисован прямоугольник, согласно принту типа нет объекта. Почему?
У Вас два прямоугольника.
Прямоугольник имеет две точки времени.
Два прямоугольника == 4 точки времени. Вы получили 4 принта.
У Вас два прямоугольника.
Прямоугольник имеет две точки времени.
Два прямоугольника == 4 точки времени. Вы получили 4 принта.
Да. Последний треугольник отрисован по барам с временами открытия от 16:17 по 16:19. Т.е. 1-ая точка 16:17, а 2-ая точка 16:19. Между ними
есть бар 16:18, который между 1-ым и последним баром. По логике, должно было принтануться 2 точки крайние 1-ая = 16:17 и 2-ая = 16:19, а, на
самом деле, в журнале 16:17 и 16:18, хотя 16:18 не должна принтоваться, так как это не начальный и не конечный бар, по которым отрисован
треугольник.
Вы бы написали четко что хотите сделать....
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вот скрин:
Здесь видно, что индикатор, который работает на этом окне отрисовал прямоугольник. Я специально выбрал самый простой паттерн, чтобы продемонстрировать то, что я хочу уточнить.
Так вот, если двигаться от реального времени в историю, имеется прямоугольник по двум свечам и рядом подпись DBLHC. Как я понимаю, до этого паттерна DBLHC больше объектов на графике нет. Их реально нет. я для определённых экспериментов запускаю скрипт, чтобы вывести в журнал объекты, которые можно увидеть за, допустим, 9 свечей.
Реазультат меня удивил. Вот, что я увидел:
По таймингу видно, что, якобы, находятся объекты на каждом баре. Как это понимать? Там их реально нет.