Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
BosSLtd
41
BosSLtd  

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

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

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

BosSLtd
41
BosSLtd  

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

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

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

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

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

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

Гадать можно долго
Комбинатор
16471
Комбинатор  

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

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

BosSLtd
41
BosSLtd  

Часть кода.


//+------------------------------------------------------------------+
//| РУЧНОЕ ЗАКРЫТИЕ ВСЕХ ОРДЕРОВ |
//+------------------------------------------------------------------+
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
Модератор
15336
Victor Nikolaev  
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  
Хватает все, проверял, да Юрича. Дело не в коде, а в обработке объектов на разных графиках. В коде есть ошибки не влияющие на функционал. И где все гуру, которые выше языком чесали?
Victor Nikolaev
Модератор
15336
Victor Nikolaev  
B0SSS:
Хватает все, проверял, да Юрича. Дело не в коде, а в обработке объектов на разных графиках. В коде есть ошибки не влияющие на функционал. И где все гуру, которые выше языком чесали?

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