Форум » Синтаксис языка » Поиск объектов .... » Ответить

Поиск объектов ....

voldemar227: Привет ! вопрос в следующем как программно найти объект на графике или скопированный с другого объекта ... То есть есть линия или фигура , через контр + мышь сделал параллельную копию ... Как найти этот объект или узнать его имя ???

Ответов - 27, стр: 1 2 3 All

Scriptong: voldemar227 пишет: Я хотел запустить цикл для сравнения старого массива и нового Понятно. Тогда нужно сделать так: for (int ii = 0; ii < ArrayRange(Mas_tek, 1); ii++) { if (Mas_tek[ii][1] == Mas_old[ii][1]) Print("profit totge"); else Mas_tek[ii][1] = "нет линии"; if (Mas_tek[ii][2] == Mas_old[ii][2]) Print("stop totge"); else Mas_tek[ii][2] = "нет линии"; }

voldemar227: for (int i=0; i<OrdersTotal(); i++) { if((OrderSelect(i, SELECT_BY_POS)==true) && (OrderSymbol()==Symbol())) {ordertiket=DoubleToStr(OrderTicket(),0); Kol++; //----------------------------------------------------------------------------------------------// if (ObjectFind(ordertiket)==-1) { ObjectCreate (ordertiket,OBJ_HLINE,0,0,OrderOpenPrice()); ObjectSetText(ordertiket,ordertiket); } if (OrderType()==OP_BUY) { for (int x=0;x<=ObjectsTotal()-1;x++) { name=ObjectName(x); if (ObjectType(name)== OBJ_HLINE) { if (ObjectFind(name)==0&&name==ordertiket) { Mas_tek[Kol][0] = ordertiket; } if (ObjectDescription(name)==ordertiket&&OrderOpenPrice()<ObjectGet(name,OBJPROP_PRICE1)) { Mas_tek[Kol][1] =name; } if (ObjectDescription(name)==ordertiket&&OrderOpenPrice()>ObjectGet(name,OBJPROP_PRICE1)) { Mas_tek[Kol][2] =name; } } } } //----------------------------------------------------------------------------------------------// } } Не могу понять почему не заполняется массив именами что не так ???? Условия для записи есть ...

SK: voldemar227 пишет: Мое мнение ( может оно ничего и не стоит ) не стоит делать одну такую сложную программу .... Лучше сделать несколько которые делают разные вещи и чем проще тем лучше ..... может можно все включить в одну программу но отключать блоки ...... Например мне не нужно установка своих торговых тактик, меня полностью устраивал аг 1 , мне не нужны все эти модификации с обьектами .... только открытие и модификация ордеров так как я торгую в основном руками. Спасибо за лестный отзыв и Ваше мнение. В целом понятно. Коротко скажу, что в новый AG4M мы заложим тот же функционал, что и в AG 4, и ещё кое-что добавим. Основным отличием будет новый виндовый интерфейс, - с кнопками, полями для ввода значений, панелями настроек и пр. В частности, кнопки управления инструментами будут собраны на отдельной панели, которую при желании можно просто отключить, а потом при необходимости включить. Таким образом, новый AG4M в минимальной конфигурации видимости панелей будет представлен только небольшим тулбаром, из меню которого можно открыть любые панели и настройки. Разбивать программу на части мы не будем, т.к., во-первых, все составляющие взаимно дополняют друг друга; во-вторых, затруднительно запустить одновременно несколько программ на одном терминале, если пользователю требуется полный функционал. Ещё раз спасибо.


voldemar227: может подскажите статью где можно детально разобраться с массивами ????

SK: voldemar227 пишет: может подскажите статью где можно детально разобраться с массивами ???? Попробуйте посмотреть в учебнике по MQL 4. Если этого не достаточно, задайте вопрос на форуме в соотв. теме.

SK: voldemar227 пишет: Не могу понять почему не заполняется массив именами что не так ???? Условия для записи есть ... Так иногда бывает.. Чтобы найти ошибку, необходимо последовательно исключать некоторую часть кода, пока источник ошибки не станет явным. Например, в последнем фрагменте анализируется тип ордера : if (ObjectType(name)== OBJ_HLINE) Если эту строку и скобки удалить, будет малость полегче. Для явного контроля массивов распечатывайте оба массива в Alert или Print и сравнивайте. При отладке программ подобное приходится делать постоянно, иначе сколько-нибудь сложную программу просто не написать..

Enerawe: Спасибо за советы!



полная версия страницы