int sleep_time = 50; // задержка выполнения скрипта на определенный интервал ( в миллисекундах )
Подобное происходит с лейблами в окне индикатора при изменении размеров окна, когда они смещаются относительно основного графика, я как-то писал об этом. Объект можно выделить, наведя курсор на начало текста.
Попробуйте ткнуть в районе буковки "З". Может, тоже получится
Попробуйте ткнуть в районе буковки "З". Может, тоже получится
To Irtron
Действительно, перед выводом последней надписи "ЗАВЕРШЕНО" изменяется координата вывода по X.
Бесконечный цикл, похоже, ни в чем не виноват. Буду проверять.
Огромное Вам спасибо, Irtron !!!
Действительно, перед выводом последней надписи "ЗАВЕРШЕНО" изменяется координата вывода по X.
Бесконечный цикл, похоже, ни в чем не виноват. Буду проверять.
Огромное Вам спасибо, Irtron !!!
Уважаемые разработчики !
Для индикации работы зацикленного скрипта выводится OBJ_LABEL и изменяется его цвет по ходу выполнения.
Если есть комментарий // Comment ( " ", summa_static ); изменение цвета происходит только после прихода нового тика.
Если нет комментария Comment ( " ", summa_static ); изменение цвета происходит на каждом шаге выполнения бесконечного цикла.
Проверила на двух разных машинах. Windows XP. Build 206. Почему так происходит ? Спасибо.
Для индикации работы зацикленного скрипта выводится OBJ_LABEL и изменяется его цвет по ходу выполнения.
Если есть комментарий // Comment ( " ", summa_static ); изменение цвета происходит только после прихода нового тика.
Если нет комментария Comment ( " ", summa_static ); изменение цвета происходит на каждом шаге выполнения бесконечного цикла.
Проверила на двух разных машинах. Windows XP. Build 206. Почему так происходит ? Спасибо.
static int summa_static; int ostatok_int; color color_tmp; int object_find; for ( ; ; ) { // Comment ( " ", summa_static ); summa_static = summa_static + 1; ostatok_int = MathMod( summa_static, 5 ); if ( ostatok_int == 0 ) color_tmp = Lime; else if ( ostatok_int == 1 ) color_tmp = Red; else if ( ostatok_int == 2 ) color_tmp = Yellow; else if ( ostatok_int == 3 ) color_tmp = DodgerBlue; else if ( ostatok_int == 4 ) color_tmp = Magenta; object_find = ObjectFind( "SCRIPT_1" ); if ( object_find == -1 ) ObjectCreate( "SCRIPT_1", OBJ_LABEL, 0, 0, 0, 0, 0, 0, 0 ); ObjectSet( "SCRIPT_1", OBJPROP_CORNER, 1 ); ObjectSet( "SCRIPT_1", OBJPROP_XDISTANCE, 90 ); ObjectSet( "SCRIPT_1", OBJPROP_YDISTANCE, 90 ); ObjectSetText( "SCRIPT_1", "CLOSE BUY", 13, "Microsoft Sans Serif", color_tmp ); Sleep( 50 ); } // END for ( ; ; ) {
Olga_trader, необходимо использовать функцию WindowRedraw (https://docs.mql4.com/ru/chart_operations/windowredraw) после всех изменений свойств объекта для принудительной перерисовки графика. График перерисовывается сам после прихода тика.
To Slawa 25.06.07 16:12
Большое спасибо ! Помогло, буду знать и использовать.
Большое спасибо ! Помогло, буду знать и использовать.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Иногда использую зацикленный скрипт для закрытия ордеров по нужной мне цене.
Цена достигает нужного значения, ордер закрывается, бесконечный цикл обрывается.
Перед бесконечным циклом скрипт создает OBJ_LABEL для индикации текущей цены.
Внутри цикла при изменении цены происходит обновление OBJ_LABEL.
После выхода из бесконечного цикла OBJ_LABEL = "ЗАВЕРШЕНО" для индикации конца работы.
Этот последний OBJ_LABEL обладает одной странностью - его невозможно выделить мышкой для удаления ( после полного окончания работы скрипта ).
Удалять его приходится через список всех объектов или ObjectsDeleteAll().
У OBJ_LABEL, созданного скриптом без зацикливания, таких странностей нет.