[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 401

 

写了以下脚本。

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

用两个词来形容。该脚本旨在从客户终端窗口删除图形对象。脚本可以用两种方式之一:要么删除所有的对象,要么脚本穿过一系列的对象,只删除用户选择的对象。

问题:为什么在while 循环中,下一个对象被删除后,最后一个Alert("Object ",obj_name," successfully deleted")函数没有在屏幕上显示相应的信息,也没有以任何方式显示出来(尽管对象在while 循环中被删除)。

注意:在脚本的头部有一行包含文件#include < WinUser32.mqh>,这与客户终端提供的原始包含文件#include <WinUser32.mqh> 不同,所以下面也给出了它的内容

P.S. 为了不给论坛添乱,提前感谢您的答复。

附加的文件:
 
yosuf:
究竟哪一个指标,是最好的替代?它们不是还可以以单独的形式出现吗?

例如,马萨诸塞州就有,但选择很少,你提到的那些都没有。

因此,你可以采取几乎任何指标,并使其自己的多功能性。

 
7777877:

问题:为什么在while 循环中,下一个对象被删除后,最后一个函数Alert("Object ",obj_name," successfully deleted")没有在屏幕上显示相应的信息,也没有以任何方式显示自己(尽管相应的对象在while 循环中被删除)。


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

这是因为if(error != 0)只会影响一个Alert,之后它总是 继续,下一个Alert永远不会被调用。
 
你好!请告诉我如何做一个循环计数器(如FOR)来搜索当前日期内的订单?
 

我能说什么呢,我还什么都不懂,我只明白一件事,那就是都是为了赚钱,如果是亏损,为什么要做顾问,你可以每周进入一次平台,在3000元的存款中赚取1000元。

 
lowech:
你好!请告诉我如何使循环的计数器(例如,FOR)搜索当前日期内的订单!?

ExistInHistoryToDay()。
 
kamolot: 如果EA是亏损的,那么EA有什么用呢?你可以每周登录一次平台,用3000的存款赚取1000。
他们只是没有胆量在平台上停留,哪怕是每周一次,赚取1000美元。他们都太累了,只是为了赚钱。
 
GaryKa:
只是这些迷宫般的程序员们没有心思每周来一次,也没有心思去赚取他们的施舍。他们都太累了,赚不到钱。

+100500 8-)
 
GaryKa:
只是这些迷宫般的程序员们没有心思每周来一次,也没有心思去赚取他们的施舍。他们非常厌恶这种情况,只想赚钱。

气球是怎么回事?

 

这是我的想法。

我开了一个订单,然后取决于它关闭时的余额。

如果余额小于零,我们就记录损失,如果大于零,我们就从头开始工作。

如果我们的损失小于零,我们就把它固定下来并分配给一个变量,例如:减去

减去=订单利润(-45美分)。

AccountAqviti + Minus + my value (my conscience)

在下一个订单中进一步

如果这个订单的利润高于AccountAqviti + Minus + my value(我的良心),那么我们就关闭这个订单;如果不是,高于零,那么我们就修复它。

(AccountAqviti + OrderProfit) - (AccountAqviti + Minus + my value (my conscience)) = 负数

如果Minus >= 0,那么Minus = 0。