[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 401

 
DmitriyN:
Wo liegt also das Problem? Ersetzen Sie Close in jedem Indikator durch eine Differenz (High-Low) oder einen der anderen aufgeführten Indikatoren. In einigen Fällen kann es jedoch erforderlich sein, den Indikator in einem separaten Fenster zu zeichnen.
Bei welchem Indikator genau ist es besser, sich zu ändern? Sind sie nicht noch in einer anderen Form erhältlich?
 

Schrieb das folgende Skript:

//+------------------------------------------------------------------------------------------+
//|                                                                         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 -

In 2 Worten. Das Skript dient dazu, grafische Objekte aus dem Client-Terminalfenster zu löschen. Das Script kann auf eine von 2 Arten verwendet werden: entweder werden alle Objekte gelöscht oder das Script geht eine Reihe von Objekten durch und löscht nur die vom Benutzer ausgewählten.

Frage: warum in der while-Schleife nach dem Löschen des nächsten Objekts die letzte Funktion Alert("Objekt ",obj_name," erfolgreich gelöscht") nicht die entsprechende Meldung auf dem Bildschirm anzeigt und auch sonst nicht auftaucht (obwohl das Objekt in der while-Schleife gelöscht wird)

Hinweis: Die Zeile mit der Include-Datei #include<WinUser32.mqh> in der Kopfzeile des Skripts unterscheidet sich von der ursprünglichen Include-Datei #include<WinUser32.mqh>, die mit dem Client-Terminal geliefert wurde, daher ist sie auch unten angegeben

P.S. Um das Forum nicht zu überladen, danke ich Ihnen im Voraus für Ihre Antwort

Dateien:
 
yosuf:
Welcher Indikator ist der beste, um ihn zu ersetzen? Sind sie nicht noch in einer anderen Form erhältlich?

Die MA zum Beispiel haben es, aber es gibt nur wenige Optionen, und die von Ihnen genannten sind nicht dabei:

Daher können Sie fast jeden Indikator nehmen und seine Vielseitigkeit selbst gestalten.

 
7777877:

Frage: warum in der while-Schleife nach dem Löschen des nächsten Objekts die letzte Funktion Alert("Objekt ",obj_name," erfolgreich gelöscht") keine entsprechende Meldung auf dem Bildschirm ausgibt und sich auch sonst nicht zeigt (obwohl das entsprechende Objekt in der while-Schleife gelöscht wird)


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

Dies liegt daran, dass if(error != 0) nur einen Warnhinweis betrifft, nach dem es immer weitergeht und der nächste Warnhinweis nie aufgerufen wird
 
Hallo! Bitte sagen Sie mir, wie ich einen Schleifenzähler (z.B. FOR) erstellen kann, um nach Bestellungen innerhalb des aktuellen Tages zu suchen!
 

Was soll ich sagen, ich verstehe noch nichts, ich verstehe nur eine Sache, dass es um Geld zu verdienen, warum Berater tun, wenn sie verlieren, können Sie die Plattform einmal pro Woche eingeben und verdienen 1000 in einer Einzahlung von 3000

 
lowech:
Hallo! Könnten Sie mir bitte sagen, wie man den Zähler der Schleife (z.B. FOR) nach Bestellungen innerhalb des aktuellen Tages suchen lässt!

ExistInHistoryToDay().
 
kamolot: Wozu sind EAs gut, wenn sie Geld verlieren? Sie können sich einmal pro Woche auf der Plattform anmelden und 1000 mit einer Einzahlung von 3000 verdienen.
Sie haben einfach nicht den Mut, auch nur einmal in der Woche auf der Plattform vorbeizuschauen und sich einen Tausender zu verdienen. Sie sind alle zu müde, nur um Geld zu verdienen.
 
GaryKa:
Es ist nur so, dass diese labyrinthischen Programmierer es nicht übers Herz bringen, auch nur einmal in der Woche vorbeizukommen und sich ihren Schick zu verdienen. Sie sind alle zu müde, um noch Geld zu verdienen.

+100500 8-)
 
GaryKa:
Es ist nur so, dass diese labyrinthischen Programmierer es nicht übers Herz bringen, auch nur einmal in der Woche vorbeizukommen und sich ihren Schick zu verdienen. Sie haben es so satt, dass sie einfach nur noch Geld verdienen wollen.

Was ist mit dem Ballon?