[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 403

 
DmitriyN :
Sorun nedir? Herhangi bir göstergede bir farkla (Yüksek-Düşük) veya listelenenlerden herhangi biri ile Kapat'ı değiştirin. Doğru, bazı durumlarda muhtemelen göstergeyi ayrı bir pencerede çizmeniz gerekecek.
Hangi göstergede değiştirmek en iyisidir? Hala ayrı ayrı mı kayıp?
 

Aşağıdaki komut dosyasını yazdı:

 //+------------------------------------------------------------------------------------------+
//|                                                                         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 kelimeyle. Komut dosyası, istemci terminal penceresinden grafik nesneleri kaldırmak için tasarlanmıştır. Bu durumda silme işlemi 2 seçenekten biriyle gerçekleştirilir: ya tüm nesneler silinir ya da nesneler numaralandırılır ve yalnızca kullanıcı tarafından seçilenler silinir.

Soru : while döngüsünde neden sonraki nesneyi sildikten sonra, son Uyarı işlevi ("Nesne ", nesne _ adı "başarıyla silindi") ilgili mesajı ekranda göstermiyor ve kendini hiç göstermiyor ( while döngüsündeki karşılık gelen nesne silinmiş olsa da)

Not : betiğin baş kısmında, istemci terminali ile sağlanan orijinal dahil edilen dosyadan bir satır farklı olan, içerme dosyası # include <Copy of WinUser 32. mqh > içeren bir satır vardır . include < WinUser 32. mqh > , bu yüzden aşağıda da veriyorum

P. S. forumu kirletmemek adına şimdiden teşekkürler

Dosyalar:
 
yosuf :
Hangi göstergede değiştirmek en iyisidir? Hala ayrı ayrı mı kayıp?

Örneğin MA'da var, ancak birkaç seçenek var ve belirttiğiniz seçenekler orada değil:

Bu nedenle, hemen hemen her göstergeyi alabilir ve kendiniz evrensel hale getirebilirsiniz.

 
7777877 :

Soru : while döngüsünde neden sonraki nesneyi sildikten sonra, son Uyarı işlevi ("Nesne ", nesne _ adı "başarıyla silindi") ilgili mesajı ekranda göstermiyor ve kendini hiç göstermiyor ( while döngüsündeki karşılık gelen nesne silinmiş olsa da)


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

if(error != 0) yalnızca Alert için geçerli olduğundan, bundan sonra Continue her zaman yürütülür ve bir sonraki Alert'e ulaşmaz.
 
merhaba! lütfen bana döngü sayacının (örneğin FOR) geçerli gün boyunca siparişleri nasıl aramasını sağlayacağımı söyleyin!
 

Ne diyeyim, henüz bir şey anlamadım, tek bir şey anlıyorum ki tüm bunlar para kazanmak için, hangi danışmanlar boşalırsa, haftada bir platforma girip 3000 depozito ile 1000 kazanabilirsiniz.

 
lowech :
merhaba! lütfen bana döngü sayacının (örneğin FOR) geçerli gün boyunca siparişleri nasıl aramasını sağlayacağımı söyleyin!

ExistInHistoryToDay().
 
kamolot : neden danışmanlar boşalırlarsa, platforma haftada bir kez girebilir ve 3000 depozito ile 1000 kazanabilirsiniz
Sadece bu tembel programcılar haftada bir kez bile tuzağa düşüyor ve kendi boğulmalarını kazanıyor. Tamamen şişmiş, sadece kokodit için.
 
GaryKa :
Sadece bu tembel programcılar haftada bir kez bile tuzağa düşüyor ve kendi boğulmalarını kazanıyor. Tamamen şişmiş, sadece kokodit için.

+100500 8-)
 
GaryKa :
Sadece bu tembel programcılar haftada bir kez bile tuzağa düşüyor ve kendi boğulmalarını kazanıyor. Tamamen şişmiş, sadece kokodit için.

peki ya top?