Если от простого к сложному, то отбросим рассуждения о появлении текста от индикатора (а что это значит?), о 3-4 свечах и часовом графике - все это имеет малое отношение к предложенной программе. Далее. Функция OnInit() выполняется 1 раз при запуске советника - поэтому какое-либо сообщение будет выдано 1 раз в момент запуска. Какое именно -зависит от результата функции ObjectFind. А этот результат в свою очередь зависит от наличия объекта. Ну какой объект есть на графиках, отсюда видно с трудом. Судя по всему, имеется объект с именем Text 2. И если это имя вставить в функцию поиска, то объект находится. Обращаю внимание на разницу между "ObjectA" и ObjectA. Первое, т.е. "ObjectA" это строка символов и ее значением является ObjectA. Второе, т.е. ObjectA - это имя переменной, которой ранее присвоено значение Text 2. Так вот, если существует объект с именем Text 2, то для его поиска в функцию ObjectFind надо вставить или "Text 2", или переменную ObjectA без кавычек, предварительно присвоив этой переменной имя искомого объекта, что и сделано в начале. Кстати, имеет значение количество пробелов.
Короче, в функции ObjectFind надо убрать кавычки.
Убрать кавычки я не догадался. Спасибо.
От простого к сложному, алерты заменить на закрытие сделок. oninit заменить на ontick. 2-3 последними барами - получить текущее время и поискать 2 или 3 часа назад. Возможно получится не очень оптимально.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте!
Хочу написать советник, который при появлении от индикатора текста (пример "A" ) на графике цен за последние 3-4 свечки на часовом, закрывал сделки по текущему курсу.
Я не программист, поэтому пошел от простого к сложному.
При выполнении кода, алерт говорит только "ОК", и говорит только на момент запуска.
Могут ли знающие люди подсказать?
string ObjectA="Text 2"; int OnInit() { if (ObjectFind("ObjectA")>=0) { Alert("OK"); } else { Alert("Er"); } return(INIT_SUCCEEDED); }