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

 

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

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

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

 

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

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

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

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

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

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

Гадать можно долго
 

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

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

 

Часть кода.


//+------------------------------------------------------------------+
//| РУЧНОЕ ЗАКРЫТИЕ ВСЕХ ОРДЕРОВ |
//+------------------------------------------------------------------+
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);

}

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

 
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; 
} 

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

 
Хватает все, проверял, да Юрича. Дело не в коде, а в обработке объектов на разных графиках. В коде есть ошибки не влияющие на функционал. И где все гуру, которые выше языком чесали?
 
B0SSS:
Хватает все, проверял, да Юрича. Дело не в коде, а в обработке объектов на разных графиках. В коде есть ошибки не влияющие на функционал. И где все гуру, которые выше языком чесали?

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