Ошибки, баги, вопросы - страница 2533

 
Georgiy Merts:

В твоем случае надо организовать цикл while(), а не for().

Проверять на какой-то признак окончания мигания.

А вот насчет того, что "мигает с переменной частотой" - что-то странно... Сходу я ошибок не вижу, должно мигать довольно часто.

Правда, я сомневаюсь в том, что это разумно - создавать и удалять графические объекты, вместо того, чтобы делать их невидимыми. Но, вроде сделать объект невидимым нельзя... Так что остается лишь удалять.

Спасибо за ответ, теперь работает. Но моргание такое же хаотичное, записал как это происходит. И я заменил удаление на изменение цвета LABEL на черный.



int i = 1;
   while(i > 0)  //true?
   {      
      if(!ObjectCreate(0,"Blink",OBJ_LABEL,0,0,0))
   {
      Print("Not Create! Error - ",GetLastError());
   }
   ObjectSetInteger(0,"Blink",OBJPROP_XDISTANCE,50+i);
   ObjectSetInteger(0,"Blink",OBJPROP_YDISTANCE,50);
   ObjectSetInteger(0,"Blink",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
   ObjectSetString(0,"Blink",OBJPROP_TEXT,"Test");
   ObjectSetString(0,"Blink",OBJPROP_FONT,"Arial");
   ObjectSetInteger(0,"Blink",OBJPROP_FONTSIZE,18);
   ObjectSetDouble(0,"Blink",OBJPROP_ANGLE,0);
   ObjectSetInteger(0,"Blink",OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
   ObjectSetInteger(0,"Blink",OBJPROP_COLOR,Red);
   ObjectSetInteger(0,"Blink",OBJPROP_BACK,false);
   ObjectSetInteger(0,"Blink",OBJPROP_SELECTABLE,true);
   ObjectSetInteger(0,"Blink",OBJPROP_SELECTED,false);
   ObjectSetInteger(0,"Blink",OBJPROP_HIDDEN,true);
   ObjectSetInteger(0,"Blink",OBJPROP_ZORDER,0);
   
   Sleep(200);
   
   ObjectSetInteger(0,"Blink",OBJPROP_COLOR,Black);
   
   Sleep(200);
   } 
 
Влад:

Спасибо за ответ, теперь работает. Но моргание такое же хаотичное, записал как это происходит. И я заменил удаление на изменение цвета LABEL на черный.


Видно же, что от тика зависит. Такой код нужно в OnTimer() делать, а не в OnTick()

И не нужно красить чёрным - у объектов есть свойство его видимости на определённом периоде графика (OBJPROP_TIMEFRAMES) - вот им нужно управлять видимостью.

Значения для таймфреймов, на которых должен быть виден объект, устанавливается набором флагов. В вашем случае нужно ставить 0 (OBJ_NO_PERIODS) - не видим нигде, и OBJ_ALL_PERIODS - виден везде. И не забывать после смены значения свойства обновлять график при помощи ChartRedraw()

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Видимость объектов
  • www.mql5.com
Комбинация флагов видимости объекта определяет таймфреймы графика, на которых объект отображаем. Для установки/получения значения свойства OBJPROP_TIMEFRAMES можно использовать функции ObjectSetInteger()/ObjectGetInteger...
 
Влад:

Спасибо за ответ, теперь работает. Но моргание такое же хаотичное, записал как это происходит. И я заменил удаление на изменение цвета LABEL на черный.

думаю, что терять Вам особо еще нечего, попробуйте мой код скрипта использовать, он работает, он короче

#property copyright "IgorM"
#property link      "https://www.mql5.com/ru/users/igorm"
#property version   "1.00"
#property strict

#include <ChartObjects\ChartObjectsTxtControls.mqh>
CChartObjectLabel Label;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   Label.Create(0,"tst",0,0,50);
   Label.Description("Hello word!");
   Label.FontSize(14);
   bool show=true;
   while(!IsStopped())
     {
      color col=show ? clrRed : clrNONE;
      Label.Color(col);
      show=!show;
      ChartRedraw();
      Sleep(1000);
     }
  }
//+------------------------------------------------------------------+

это в папку срипт!

 
Igor Makanu:

думаю, что терять Вам особо еще нечего, попробуйте мой код скрипта использовать, он работает, он короче

это в папку срипт!

Игорь, я так понял, это написано на MQL5, а у меня Metatrader 4 к сожалению.

 
Влад:

Игорь, я так понял, это написано на MQL5, а у меня Metatrader 4 к сожалению.

это MQL4... могли бы уже попробовать ))))

 
Блин, точно ) Спасибо большое, Игорь! Извиняюсь за наглость, а можно не скрипт, а индикатор? А то при переключении ТФ скрипт слетает. Скопировал кишки в шаблон индикатора, компилируется нормально, а когда кидаю на график, терминал зависает с концами.
 
Подскажите пожалуйста, кто знает: как получить в тестируемом советнике MQL5 результат форвард-оптимизации? Этот вопрос был в ветке. Может быть здесь на него найдут ответ.
 
Влад:
Блин, точно ) Спасибо большое, Игорь! Извиняюсь за наглость, а можно не скрипт, а индикатор? А то при переключении ТФ скрипт слетает. Скопировал кишки в шаблон индикатора, компилируется нормально, а когда кидаю на график, терминал зависает с концами.
Файлы:
Blink.mq4  3 kb
 
Igor Makanu:

Большое Вам человеческое Спасибо! )

 

Для администраторов сайта:

не нашел где, пишу здесь

нужно поменять реквизиты продавца в профиле.

как это сделать ?

уже давно написал сообщение в кабинете продавца, ответа нет 

может есть другой способ ?


Причина обращения: