Скачать MetaTrader 5

Проблемы с управлением объектами

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не знаешь, как пользоваться виджетом? Прочитай об этом статью!
BosSLtd
41
BosSLtd 2011.06.27 12:52 

Каким образом управление объектами на одном графике влияют на другой.

Создал изменение ТП, СЛ и т.д. через графические объекты. На одном графике работает все нормально, стоит повесить на два графика, в котором первым управляли все окей, во втором графике реакции на управление объектами нету, объекты не пересоздаются. надеюсь понятно объяснил.

Как они мешают друг другу на разных графиках?

BosSLtd
41
BosSLtd 2011.06.27 14:47  

Данным жестом я так понял вы не догоняете. Дальше не стоит описывать, те кто с этим столкнулся все поймут.
Victor Nikolaev
Модератор
14487
Victor Nikolaev 2011.06.27 15:35  
B0SSS:

Данным жестом я так понял вы не догоняете. Дальше не стоит описывать, те кто с этим столкнулся все поймут.

Может не надо так резво на других кивать. Отправили вас правильно. Если хотите решить проблемы, то к словам нужен еще и код - в котором есть ошибки. А так одна болтовня и будет
Rustamzhan Salidzhanov
7683
Rustamzhan Salidzhanov 2011.06.27 15:50  
B0SSS:

Данным жестом я так понял вы не догоняете. Дальше не стоит описывать, те кто с этим столкнулся все поймут.
Пипец какие мы важные, прям все тут бросились исполнять Буквочек SSSS еще для важности добавьте
Виталий
340
Виталий 2011.06.27 16:08  
B0SSS:

Как они мешают друг другу на разных графиках?

Либо вы используете глобальные переменные, либо у вас ошибка в коде(например не учитывается количество цифр после точки)
Victor Nikolaev
Модератор
14487
Victor Nikolaev 2011.06.27 16:09  
vitali_yv:
Либо вы используете глобальные переменные, либо у вас ошибка в коде(например не учитывается количество цифр после точки)

Гадать можно долго
Комбинатор
15919
Комбинатор 2011.06.27 16:20  

:) на самом деле я процентов на 80 уверен, что знаю в чем дело. Баг далеко не из очевидных.

А гонор вы свой уберите. Я вашу проблему давно и успешно решил, в чем можете убедиться, полазив у меня в профайле.

BosSLtd
41
BosSLtd 2011.06.27 17:20  

Часть кода.


//+------------------------------------------------------------------+
//| РУЧНОЕ ЗАКРЫТИЕ ВСЕХ ОРДЕРОВ |
//+------------------------------------------------------------------+
Object_field(Object_CloseAllName, Object_CloseAllText, 190,85,10, "Calibri", Red, Red);
if(
ObjectFind(
Object_CloseAllName) == 0 && ObjectGet(Object_CloseAllName, OBJPROP_XDISTANCE) != 190) // закрыть все
{
PlaySound("squeak.wav");
while(
ObjectFind(
Object_CloseAllName) == 0)
{
ObjectDelete(
Object_CloseAllName);
}
if(
confirm("ЗАКРЫВАЕМ ВСЕ ОРДЕРА. \nВерно?",WindowExpertName(), MB_YESNO|MB_ICONASTERISK)==IDYES)
{
CloseAllOrders();
}
ObjectDelete(
Object_CloseAllName);
return;
}
//+------------------------------------------------------------------+
//| ВЫВОД ОБЪЕКТА С ЗАДАННЫМИ ПАРАМЕТРАМИ
//+------------------------------------------------------------------+
void Object_field(string name, string text, int X, int Y, int size, string Srift, color CL1, color CL2, int Angle = 0)
{
if(
ObjectFind(name) == -1 ) ObjectCreate(name, OBJ_LABEL, 0, 0, 0);
ObjectSet(name, OBJPROP_COLOR, CL1);
ObjectSet(name, OBJPROP_XDISTANCE, X);
ObjectSet(name, OBJPROP_YDISTANCE, Y);
if (
Angle != 0) ObjectSet(name, OBJPROP_ANGLE, Angle);
ObjectSetText(name, text, size, Srift, CL2);
return;
}
//+------------------------------------------------------------------+
//| ПОДТВЕРЖДЕНИЕ ОПЕРАЦИЙ
//+------------------------------------------------------------------+
bool confirm(string text,string cap,int flags )
{
int answ = MessageBox(text,cap, MB_YESNO);
return(
answ);

}

На одном графике работает, стоит повесить на второй, реакции на втором никакой. Имена объектов индивидуальные, на всякий сделал вывод координат, в итоге координаты на втором графике зависали, без изменений.

Victor Nikolaev
Модератор
14487
Victor Nikolaev 2011.06.27 17:38  
B0SSS:

Часть кода.



На одном графике работает, стоит повесить на второй, реакции на втором никакой. Имена объектов индивидуальные, на всякий сделал вывод координат, в итоге координаты на втором графике зависали, без изменений.


Похоже код взят из советника Юрича. Вижу свою руку (редактировал его в свое время).

Здесь кое-чего не хватает

//+------------------------------------------------------------------+ 
//| ВЫВОД ОБЪЕКТА С ЗАДАННЫМИ ПАРАМЕТРАМИ 
//+------------------------------------------------------------------+ 
void Object_field(string name, string text, int X, int Y, int size, string Srift, color CL1, color CL2, int Angle = 0) 
{ 
if(ObjectFind(name) == -1 ) ObjectCreate(name, OBJ_LABEL, 0, 0, 0); 
ObjectSet(name, OBJPROP_COLOR, CL1); 
ObjectSet(name, OBJPROP_XDISTANCE, X); 
ObjectSet(name, OBJPROP_YDISTANCE, Y); 
if (Angle != 0) ObjectSet(name, OBJPROP_ANGLE, Angle); 
ObjectSetText(name, text, size, Srift, CL2); 
return; 
} 

Вот это моя функция просто

BosSLtd
41
BosSLtd 2011.06.27 18:26  
Хватает все, проверял, да Юрича. Дело не в коде, а в обработке объектов на разных графиках. В коде есть ошибки не влияющие на функционал. И где все гуру, которые выше языком чесали?
Victor Nikolaev
Модератор
14487
Victor Nikolaev 2011.06.27 18:31  
B0SSS:
Хватает все, проверял, да Юрича. Дело не в коде, а в обработке объектов на разных графиках. В коде есть ошибки не влияющие на функционал. И где все гуру, которые выше языком чесали?

Пока все еще недостаточно предоставленной информации. Ошибка сидит в другом месте. Не надо бояться показывать весь код.Большинство им все равно не воспользуются. А ошибку исправить можно будет. И не надо быть таким злым. Не по божески это
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий