[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 403

 
DmitriyN:
Так, а в чём проблема? Заменить Close в любом индикаторе на разницу (High-Low) или какую либо другую из перечисленных. Правда, в некоторых случаях, наверное, придётся отрисовывать индикатор в отдельном окне.
В каком именно индикаторе, лучше всего заменить? Неужели нет их в отдельном виде до сих пор?
 

Написал скрипт следующего содержания:

//+------------------------------------------------------------------------------------------+
//|                                                                         DeleteObject.mq4 |
//+------------------------------------------------------------------------------------------+
//+------------------------------------------------------------------------------------------+
//|                             script program start function                                |
//+------------------------------------------------------------------------------------------+
//---------------------------------------------------------------------------------------- 1 -
#include <Копия WinUser32.mqh>                                    //подключаемый файл, к-й неожходим для работы функции MessageBox: в этом файле в отличии от файла <WinUser32.mqh> в разделе MessageBox() Flags добавлена строка: #define MB_CANCELTRYCONTINUE      0x00000006  
//---------------------------------------------------------------------------------------- 2 -
int start()
  {
   double Timestart=GetTickCount();                               //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   if(ObjectsTotal()==0)                                          //если объектов на графике нет
      {                                                           //начало if
       Alert("На графике нет графических объектов");              //то делаем сообщение на экран...
       return;                                                    //...и выходим
      }                                                           //конец if   
   Alert("На графике зафиксировано ",ObjectsTotal()," Объектов");
   Sleep(3000);
   int ret=MessageBox("Удалить ВСЕ графические объекты?","Удаление графических объектов",MB_YESNO|MB_ICONQUESTION);//функция MessageBox: вопрос на экран
   if(ret==6)                                                     //если ответ ДА,...
      {
       ObjectsDeleteAll();                                        //..., то удаляем ВСЕ объекты из ВСЕХ окон текущего графика
       if(!ObjectsDeleteAll())Alert("При удалениии объектов возникла ошибка ",GetLastError());//если удаление не удалось, то сообщение на экран
       Alert("ВСЕ графические объекты успешно удалены");          //сообщение на экран в случае успешного удаления сех объектов
       return;                                                    //и выход из start
      }                                                           //конец if   
//--------------------если ответ НЕТ? то перебираем объекты по списку---------------------- 3 -
   int obj_total=ObjectsTotal();                                  //получаем общее количество графических объектов
   string obj_name;                                               //объявляем переменную  "имя объекта"
   for(int i=obj_total-1;i>=0;i--)                                //цикл по удалению объекта
     {                                                            //начало for
      obj_name=ObjectName(i);                                     //имя текущего удаляемого объекта
      Alert("Удаляется объект: ",obj_name);                       //сообщение на экран     
      ret=MessageBox("Удалить графический объект?","Удаление графического объекта",MB_YESNO|MB_ICONQUESTION);//функция MessageBox: вопрос на экран
      if(ret==7)continue;                                         //если ответ НЕТ, то на следующую итерацию     
      ObjectDelete(obj_name);                                     //если ответ ДА, то удаляем текущий объект с именем obj_name     
      int error=GetLastError();                                   //вычисляем код возможной ошибки, к-я могла появиться при неудачном удалении Графического объекта номер i
      if(error!=0)Alert("При удалении объекта ",obj_name," возникла ошибка ",error);continue;//если функция ObjectDelete(obj_name) вернуа значение ЛОЖЬ (т.е. не удалила текущий объект), то сообщение об ошибке при удалении
      Alert("Объект ",obj_name," успешно удален");                //сообщение об успешном удалении
     }                                                            //конец for
   Comment("\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",MathFloor((GetTickCount()-Timestart)/1000)," секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000," миллисекунд");//печать сообщения вна экран
//---------------------------------------------------------------------------------------- 3 -
   return(0);
  }
//---------------------------------------------------------------------------------------- 4 -

В 2-х словах. Скрипт предназначен для удаления графических объектов из окна клиентского терминала. При этом удаление осуществляется в одном из 2-х вариантов: либо удаляются все объекты, либо осуществляется перебор объектов и удаляются только те, к-е выбирает пользователь.

Вопрос: почему в цикле while после удаления очередного объекта последняя функция Alert("Объект ",obj_name," успешно удален") не выводит соответствующего сообщения на экран и вообще никак себя не проявляет (хотя соответствующий объект в цикле while удаляется)

Примечание: в головной части скрипта приведена строка с подключаемым файлом #include <Копия WinUser32.mqh>, к-й отличается одной строкой от исходного поставляемого с клиентским терминалом подключаемого файла #include <WinUser32.mqh>, поэтому его я также привожу ниже

P.S. Чтобы не захламлять форум, заранее благодарю за ответ

Файлы:
 
yosuf:
В каком именно индикаторе, лучше всего заменить? Неужели нет их в отдельном виде до сих пор?

В МА есть, например, но там мало вариантов и тех, что вы указали там нет:

Поэтому, можно брать почти любой индикатор и делать его универсальность самому.

 
7777877:

Вопрос: почему в цикле while после удаления очередного объекта последняя функция Alert("Объект ",obj_name," успешно удален") не выводит соответствующего сообщения на экран и вообще никак себя не проявляет (хотя соответствующий объект в цикле while удаляется)


int error=GetLastError();                                   //вычисляем код возможной ошибки, к-я могла появиться при неудачном удалении Графического объекта номер i
      if(error!=0)Alert("При удалении объекта ",obj_name," возникла ошибка ",error);continue;//если функция ObjectDelete(obj_name) вернуа значение ЛОЖЬ (т.е. не удалила текущий объект), то сообщение об ошибке при удалении
      Alert("Объект ",obj_name," успешно удален");                //сообщение об успешном удалении

Потому что if(error != 0) распространяется только на Alert, после чего всегда выполняется continue и до следующего Alert дело не доходит
 
здравствуйте! подскажите пожалуйста как мне сделать, чтобы счетчик цикла (например FOR) искал ордера в течений текущего дня!
 

что можно сказать ничего не понимаю пока,понимаю только одно что всё это чтоб заработать деньги,для чего советники если они сливают, можно раз в неделю зати в платформу и заработать 1000 в депозите 3000

 
lowech:
здравствуйте! подскажите пожалуйста как мне сделать, чтобы счетчик цикла (например FOR) искал ордера в течений текущего дня!

ExistInHistoryToDay().
 
kamolot: для чего советники если они сливают, можно раз в неделю зати в платформу и заработать 1000 в депозите 3000
Просто этим лаботрясам программистам впадлу зати даже раз в неделю и заработать свой штуцер. Попухли совсем, лишь бы покодить.
 
GaryKa:
Просто этим лаботрясам программистам впадлу зати даже раз в неделю и заработать свой штуцер. Попухли совсем, лишь бы покодить.

+100500 8-)
 
GaryKa:
Просто этим лаботрясам программистам впадлу зати даже раз в неделю и заработать свой штуцер. Попухли совсем, лишь бы покодить.

а как же шара?

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