//+------------------------------------------------------------------------------------------+//| 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) //если объектов на графике нет
{ //начало ifAlert("На графике нет графических объектов"); //то делаем сообщение на экран...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(); //вычисляем код возможной ошибки, к-я могла появиться при неудачном удалении Графического объекта номер iif(error!=0)Alert("При удалении объекта ",obj_name," возникла ошибка ",error);continue;//если функция ObjectDelete(obj_name) вернуа значение ЛОЖЬ (т.е. не удалила текущий объект), то сообщение об ошибке при удаленииAlert("Объект ",obj_name," успешно удален"); //сообщение об успешном удалении
} //конец forComment("\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",MathFloor((GetTickCount()-Timestart)/1000)," секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000," миллисекунд");//печать сообщения вна экран//---------------------------------------------------------------------------------------- 3 -return(0);
}
//---------------------------------------------------------------------------------------- 4 -
int error=GetLastError(); //вычисляем код возможной ошибки, к-я могла появиться при неудачном удалении Графического объекта номер iif(error!=0)Alert("При удалении объекта ",obj_name," возникла ошибка ",error);continue;//если функция ObjectDelete(obj_name) вернуа значение ЛОЖЬ (т.е. не удалила текущий объект), то сообщение об ошибке при удаленииAlert("Объект ",obj_name," успешно удален"); //сообщение об успешном удалении
写了以下脚本。
用两个词来形容。该脚本旨在从客户终端窗口删除图形对象。脚本可以用两种方式之一:要么删除所有的对象,要么脚本穿过一系列的对象,只删除用户选择的对象。
问题:为什么在while 循环中,下一个对象被删除后,最后一个Alert("Object ",obj_name," successfully deleted")函数没有在屏幕上显示相应的信息,也没有以任何方式显示出来(尽管对象在while 循环中被删除)。
注意:在脚本的头部有一行包含文件#include < WinUser32.mqh>,这与客户终端提供的原始包含文件#include <WinUser32.mqh> 不同,所以下面也给出了它的内容
P.S. 为了不给论坛添乱,提前感谢您的答复。
究竟哪一个指标,是最好的替代?它们不是还可以以单独的形式出现吗?
例如,马萨诸塞州就有,但选择很少,你提到的那些都没有。
因此,你可以采取几乎任何指标,并使其自己的多功能性。
问题:为什么在while 循环中,下一个对象被删除后,最后一个函数Alert("Object ",obj_name," successfully deleted")没有在屏幕上显示相应的信息,也没有以任何方式显示自己(尽管相应的对象在while 循环中被删除)。
我能说什么呢,我还什么都不懂,我只明白一件事,那就是都是为了赚钱,如果是亏损,为什么要做顾问,你可以每周进入一次平台,在3000元的存款中赚取1000元。
你好!请告诉我如何使循环的计数器(例如,FOR)搜索当前日期内的订单!?
ExistInHistoryToDay()。
只是这些迷宫般的程序员们没有心思每周来一次,也没有心思去赚取他们的施舍。他们都太累了,赚不到钱。
+100500 8-)
只是这些迷宫般的程序员们没有心思每周来一次,也没有心思去赚取他们的施舍。他们非常厌恶这种情况,只想赚钱。
气球是怎么回事?
这是我的想法。
我开了一个订单,然后取决于它关闭时的余额。
如果余额小于零,我们就记录损失,如果大于零,我们就从头开始工作。
如果我们的损失小于零,我们就把它固定下来并分配给一个变量,例如:减去
减去=订单利润(-45美分)。
AccountAqviti + Minus + my value (my conscience)
在下一个订单中进一步
如果这个订单的利润高于AccountAqviti + Minus + my value(我的良心),那么我们就关闭这个订单;如果不是,高于零,那么我们就修复它。
(AccountAqviti + OrderProfit) - (AccountAqviti + Minus + my value (my conscience)) = 负数
如果Minus >= 0,那么Minus = 0。