В общем раз Артём не отвечает ничего, а человек выше дал ответ что функции работают со структурами которые должны быть известны и следовательно должны быть объявлены глобально - делаем вывод что структура должна быть объявлена глобально.
По своей природе функция работающая со структурой может принимать только одинаковые статические структуры. Значит локально объявить структуру чтобы она имела ограниченную область видимости объявить и передать в функцию не получится.
Не надо на меня ссылаться когда плохо понимаете о чём я говорил. Внимательно прочтите что сказал Артём.
По запарке он допустил некоторую неточность в коде. Это не означает что он говорил не правильно. Структура - есть пользовательский тип данных и определяется в области глобальной видимости. Переменная пользовательского типа может быть объявлена где угодно. И таких переменных может быть объявлено сколько угодно.
Artyom Trishkin: Статистика от этого не изменится.
Кстати мне не просто не показывает в час ночи или в 23 часа будет срок. мне вот чего показывает.
Техническое задание
Прогресс
Согласование ТЗ
Демонстрация
Передача работы и оплата
Все эти галочки прожаты. сказано что через неделю автоматом оплата уедет. Вот только был получен только файл демонстрации и в нём сидит ограничитель даты позволяющий работать только в прошлом году. Я так догадываюсь он абыделся и теперь будет неделю тянуть чтобы файл за оплату поменялся автоматом?
Заказчик принял Демонстрацию, теперь Разработчик должен передать финальный результат.
После принятия работы оплата со счета Заказчика поступит автоматически (за вычетом комиссии). Если в течение недели Заказчик не даст ответа на представленную работу, то Заказ автоматически будет считаться выполненным.
2020.01.29 21:47
Разработчик=========подтвердил шаг "Передача работы и оплата"
Это как понимать? уже было прелестное от пайпала где списание и слово остаток поменяны местами, уже 3 недели ждал сервисдеск с оплатой. теперь эта радость что значит?
Не надо на меня ссылаться когда плохо понимаете о чём я говорил. Внимательно прочтите что сказал Артём.
По запарке он допустил некоторую неточность в коде. Это не означает что он говорил не правильно. Структура - есть пользовательский тип данных и определяется в области глобальной видимости. Переменная пользовательского типа может быть объявлена где угодно. И таких переменных может быть объявлено сколько угодно.
Ну я говорю именно про мой случай и именно про структуру и именно про такую, это понятно что это тоже пользовательский тип переменной но в частности меня интересует локальный уровень. Может это через клас можно сделать. В принципе через класс по любому можно объявить закрытый тип и всё, но я в этом мало понимаю.
Ну я говорю именно про мой случай и именно про структуру и именно про такую, это понятно что это тоже пользовательский тип переменной но в частности меня интересует локальный уровень. Может это через клас можно сделать. В принципе через класс по любому можно объявить закрытый тип и всё, но я в этом мало понимаю.
Структуру свою определяете на глобальном уровне - о ней вся программа должна знать - это новый, созданный вами тип переменных.
А различные переменные с типом этой структуры можете задавать на любом из локальных уровней - только в них (локальных уровнях) будут видны переменные, созданные в их области видимости.
//+------------------------------------------------------------------+//| Create an equidistant channel by the given coordinates |//+------------------------------------------------------------------+bool ChannelCreate(constlong chart_ID=0, // chart's IDconststring name="Channel", // channel nameconstint sub_window=0, // subwindow index datetime time1=0, // first point timedouble price1=0, // first point pricedatetime time2=0, // second point timedouble price2=0, // second point pricedatetime time3=0, // third point timedouble price3=0, // third point priceconstENUM_BASE_CORNER corner = CORNER_RIGHT_UPPER, // the angle of the graph for the bindingconstcolor clr=clrRed, // channel colorconstENUM_LINE_STYLE style=STYLE_SOLID, // style of channel linesconstint width=1, // width of channel linesconstbool back=false, // in the backgroundconstbool selection=true, // highlight to moveconstbool ray_left = false, // extend the line to the leftconstbool ray_right=false, // channel's continuation to the rightconstbool hidden=true, // hidden in the object listconstlong z_order=0) // priority for mouse click
{
//--- reset the error valueResetLastError();
//--- create a channel by the given coordinatesif(!ObjectCreate(chart_ID,name,OBJ_CHANNEL,sub_window,time1,price1,time2,price2,time3,price3))
{
Print(__FUNCTION__,
": failed to create an equidistant channel! Error code = ",GetLastError());
return(false);
}
ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- return(true);
}
//+------------------------------------------------------------------+//| Delete the channel |//+------------------------------------------------------------------+bool ChannelDelete(constlong chart_ID=0, // chart's IDconststring name="Channel") // channel name
{
//--- reset the error valueResetLastError();
//--- delete the channelif(!ObjectDelete(chart_ID,name))
{
Print(__FUNCTION__,
": failed to delete the channel! Error code = ",GetLastError());
return(false);
}
//---return(true);
}
//---
Я так понял, что ChartXYToTimePrice расчитывает координаты и по умолчанию с левого верхнего углу.
Как бы ChartXYToTimePrice переубедить считать с указанного мной угла?
Переубедить можно только того у кого есть то, чем принимаются решения. А если "это" только исполняет чужие установки, то всяческий диалог в попытке убедить в чём-то просто пустая трата времени.)))
Я не совсем понял задачу, но обратите внимание не только на угол привязки ENUM_BASE_CORNER, но и на точку привязки ENUM_ANCHOR_POINT
Графические объекты Text, Label, Bitmap и Bitmap Label (OBJ_TEXT, OBJ_LABEL, OBJ_BITMAP и OBJ_BITMAP_LABEL) могут иметь один из 9 различных способов привязки своих координат, задаваемых свойством OBJPROP_ANCHOR. – объекты имеет ширину и высоту. Если указано "только для чтения", то это означает, что значения ширины и высоты...
В общем раз Артём не отвечает ничего, а человек выше дал ответ что функции работают со структурами которые должны быть известны и следовательно должны быть объявлены глобально - делаем вывод что структура должна быть объявлена глобально.
По своей природе функция работающая со структурой может принимать только одинаковые статические структуры. Значит локально объявить структуру чтобы она имела ограниченную область видимости объявить и передать в функцию не получится.
Не надо на меня ссылаться когда плохо понимаете о чём я говорил. Внимательно прочтите что сказал Артём.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Artyom Trishkin, 2020.01.30 17:59
Вы путаете определение структуры с объявлением переменной с типом этой структуры.Статистика от этого не изменится.
Кстати мне не просто не показывает в час ночи или в 23 часа будет срок. мне вот чего показывает.
Техническое задание
Прогресс
Все эти галочки прожаты. сказано что через неделю автоматом оплата уедет. Вот только был получен только файл демонстрации и в нём сидит ограничитель даты позволяющий работать только в прошлом году. Я так догадываюсь он абыделся и теперь будет неделю тянуть чтобы файл за оплату поменялся автоматом?
Было уже
Передача работы и оплата
Заказчик принял Демонстрацию, теперь Разработчик должен передать финальный результат.
После принятия работы оплата со счета Заказчика поступит автоматически (за вычетом комиссии). Если в течение недели Заказчик не даст ответа на представленную работу, то Заказ автоматически будет считаться выполненным.
Разработчик=========подтвердил шаг "Передача работы и оплата"
Это как понимать? уже было прелестное от пайпала где списание и слово остаток поменяны местами, уже 3 недели ждал сервисдеск с оплатой. теперь эта радость что значит?
Не надо на меня ссылаться когда плохо понимаете о чём я говорил. Внимательно прочтите что сказал Артём.
Ну я говорю именно про мой случай и именно про структуру и именно про такую, это понятно что это тоже пользовательский тип переменной но в частности меня интересует локальный уровень. Может это через клас можно сделать. В принципе через класс по любому можно объявить закрытый тип и всё, но я в этом мало понимаю.
Ну я говорю именно про мой случай и именно про структуру и именно про такую, это понятно что это тоже пользовательский тип переменной но в частности меня интересует локальный уровень. Может это через клас можно сделать. В принципе через класс по любому можно объявить закрытый тип и всё, но я в этом мало понимаю.
Структуру свою определяете на глобальном уровне - о ней вся программа должна знать - это новый, созданный вами тип переменных.
А различные переменные с типом этой структуры можете задавать на любом из локальных уровней - только в них (локальных уровнях) будут видны переменные, созданные в их области видимости.
Всем привет!
Помогите пристроить
к этому объекту
bool
Я так понял, что ChartXYToTimePrice расчитывает координаты и по умолчанию с левого верхнего углу.
Как бы ChartXYToTimePrice переубедить считать с указанного мной угла?
Я так понял, что ChartXYToTimePrice расчитывает координаты и по умолчанию с левого верхнего углу.
Как бы ChartXYToTimePrice переубедить считать с указанного мной угла?
Переубедить можно только того у кого есть то, чем принимаются решения. А если "это" только исполняет чужие установки, то всяческий диалог в попытке убедить в чём-то просто пустая трата времени.)))
Я не совсем понял задачу, но обратите внимание не только на угол привязки ENUM_BASE_CORNER, но и на точку привязки ENUM_ANCHOR_POINT
Alexey Viktorov:
Я не совсем понял задачу
индикатор по вызову создает в левом верхнем углу объект(OBJ_CHANNEL)
как задать условие создания объекта в другом углу.
индикатор по вызову создает в левом верхнем углу объект(OBJ_CHANNEL)
как задать условие создания объекта в другом углу.
Внимательно читайте справочник. OBJ_CHANNEL никакого отношения к углу не имеет.