Как я могу программно распознать, когда на графике рисуется стрелка вверх/вниз, когда объекты-стрелки скрыты?

Я знаю, как нарисовать стрелку объекта на графике, что я обычно делаю так:

      ObjectCreate(0,"prevHigh",OBJ_ARROW_DOWN,0,Time[0],High[highestCandle]);  
      ObjectSetInteger(0, "prevHigh", OBJPROP_COLOR, clrRed);

Теперь у меня есть индикатор, который (я не писал код сам и представляет собой файл .ex4, который) рисует стрелки вверх/вниз на графике, как показано на изображении (https://imgur.com/a/8yG0suw).

введите здесь описание изображения

Как я могу, когда, например, нарисована пурпурная стрелка вниз и свеча (индекс), на которой она нарисована?

Обратите внимание, что стрелок нет в списке объектов на графике введите здесь описание изображения


person BBNN    schedule 10.04.2020    source источник
comment
Можете ли вы доказать, что нарисованные объекты-стрелки --нет-- в списке объектов (опубликовав их принтскрин?)   -  person user3666197    schedule 10.04.2020
comment
@user3666197 Вот скриншот со списком всех объектов (imgur.com/a/4lRea6Y)   -  person BBNN    schedule 10.04.2020
comment
@BBNN Меня очень интересует ваш вопрос, поэтому я объявил за него награду.   -  person Hilarious404    schedule 19.05.2020
comment
@Hilarious404 Вау, спасибо. Я пока не смог прийти к решению. Надеюсь, это поможет   -  person BBNN    schedule 19.05.2020
comment
Заявленная проблема не является ВОСПРОИЗВОДИМОЙ - не могли бы вы, BBNN, соблюсти правила StackOverflow и опубликовать пользовательский индикатор MQL4, который, как вы ссылаетесь, использовался для создания изображений для печати? Если этого не сделать, спонсируемая @Hilarious404 награда просто истечет напрасно.   -  person user3666197    schedule 20.05.2020
comment
@Hilarious404 Вчера я смог это сделать, скоро отвечу   -  person BBNN    schedule 28.05.2020
comment
@BBNN Привет, я хотел бы знать, нашли ли вы решение о том, как проверить, существует ли стрелка, и как, например, получить ее значение/цвет? Я столкнулся с той же проблемой для пользовательского индикатора, для которого у меня нет исходного кода... не могли бы вы поделиться подробностями?   -  person A.Midany    schedule 25.04.2021


Ответы (1)


Вопрос : "Как я могу программно распознать, когда на диаграмме нарисована стрелка вверх/вниз?"

Учитывая приведенные выше факты, ваш тест должен оценивать момент CustomIndicator (через опубликованную/использованную сигнатуру iCustom()-вызова), проверяя его при переходе от EMPTY_VALUE к любому значению < сильный>!= EMPTY_VALUE.

Учитывая, что CustomIndicator является закрытым источником ( *.ex4 ), вам может потребоваться проверить, установил ли он свое собственное (скрытое от нашего взгляда) значение, отличное от текущего видимого EMPTY_VALUE, но эта «повторная калибровка» будет работать после того, как вы получите несколько ручных тестов значений CustomIndicator для баров, которые не показывают стрелок - например, для 2020-Apr-08 09:30 et al v/s отображаемые стрелки не являются объектами MQL4 сами по себе, они являются побочные продукты CustomIndicator SetIndexStyle() / SetIndexArrow() с закрытым исходным кодом, поэтому их невозможно проверить ни в списке объектов, ни в исходном коде *.mq4.

Тем не менее, его можно обнаружить

person user3666197    schedule 10.04.2020
comment
Я не уверен, правильно ли я проверяю EMPTY_VALUE. См. мой тестовый код pastebin.com/ub8FAMzH. Оно никогда не бывает удовлетворено. Я продолжал добавлять параметры в iCustom, пока не получил ошибку Super Signal CHFJPY,M15: array out of range in 'Super Signal.mq4' (398,14) на вкладке экспертов. Я был бы очень признателен за более подробную информацию о том, как мне следует проверять EMPTY_VALUE. - person BBNN; 10.04.2020
comment
При всем уважении, StackOverflow настоятельно не рекомендует использовать исходное определение проблемы. Не стесняйтесь открывать любые другие вопросы, если вы чувствуете, что вам нужен совет по решению проблем на основе MCVE, и начните принимать лучшие ответы, ранее спонсированные активными участниками сообщества и доставленные вам, это справедливо - не так ли? Добавление этого и этого и а также чего-то еще просто не работает в StackOverflow. Будьте честны и лучше всего соблюдайте Сетевой этикет сообщества (который все пользователи утверждали, что соблюдают во время регистрации, не так ли?) - person user3666197; 10.04.2020