Погрешность появлялась при безопасном вычисление остатка от деления в методе CAxis::Mod.
Раньше там был реализован численный метод, без использования функции MathMod, но ваш пример показал, что точность данного метода в некоторых случаях не самая хорошая.
Поэтому пришлось изменить данный метод на:
//+------------------------------------------------------------------+//| Calculate the modulus (remainder) in a safe manner so that divide|//| by zero errors are avoided |//+------------------------------------------------------------------+double CAxis::Mod(constdouble x,constdouble y)
{
//--- check if(y==0)
return(0);
//--- calculate modulusreturn (x>0)? MathMod(x,y): MathMod(x,y)+y;
}
то при смене внешнего параметра, график периодически пропадает. Не с первого раза. Можно поменять параметр 3-5 раза и он потом произвольно где-то теряется. Причем не навсегда. Его можно найти, попереключав таймфреймы или автоматическую торговлю(разрешена-нет).
то при смене внешнего параметра, график периодически пропадает. Не с первого раза. Можно поменять параметр 3-5 раза и он потом произвольно где-то теряется. Причем не навсегда. Его можно найти, попереключав таймфреймы или автоматическую торговлю(разрешена-нет).
Можно сделать, чтобы он не терялся?
Вы создаете и разрушаете объект на локальном уровне функции OnInit.
Как можно запретить писать в легенду некоторые линии? У меня просто линия - это точки по координате Y и мне нужно эти точки сделать разным цветом, получится разноцветная линия и она отображает одну информацию, хотя и сделана разными линиями, и мне надо в легенду поместить только сводную информацию об этой линии, таких разноцветных линий много. Как это сделать?
И ещё вопрос,почему указываю цвет "Red", а отображается на графике синий, в то время как Green отображается корректно?
if(TypeInfo=="TP_FP")
{
graphicP.HistoryNameSize(Point_K);//Устанавливает размер шрифта имени кривой
graphicP.HistorySymbolSize(Point_K);//Получить/установить размер символов условных обозначений
CCurve *A=graphicP.CurveAdd(X,Y,Green,CURVE_POINTS,N_Model+"("+N+")");//Создает и добавляет кривую на график
A.PointsFill(true);//Устанавливает флаг, указывающий, нужно ли выполнять заливку для точек, определяющих кривую при отрисовке точками.
A.PointsType(POINT_VERTICAL_DASH);//Устанавливает флаг, указывающий на тип точек, использующихся при отрисовке кривой точками.
}
if(TypeInfo=="FN")
{
//graphicP.HistoryNameSize(1);//Устанавливает размер шрифта имени кривой//graphicP.HistorySymbolSize(1);//Получить/установить размер символов условных обозначений
CCurve *A=graphicP.CurveAdd(X,Y,Red,CURVE_POINTS,"");//Создает и добавляет кривую на график
A.PointsFill(false);//Устанавливает флаг, указывающий, нужно ли выполнять заливку для точек, определяющих кривую при отрисовке точками.
A.PointsType(POINT_VERTICAL_DASH);//Устанавливает флаг, указывающий на тип точек, использующихся при отрисовке кривой точками.
}
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Анатолий, огромное спасибо! Помогло по п.1. Да, я упустил из виду осевой метод CAxis::MaxGrace(const double value).
Вот такой ещё краткий пример:
Заявка #1827124.
Заявка #1827124.
Проблема исправлена следующим образом:
Support Team 2018.01.15 14:30
Погрешность появлялась при безопасном вычисление остатка от деления в методе CAxis::Mod.
Раньше там был реализован численный метод, без использования функции MathMod, но ваш пример показал, что точность данного метода в некоторых случаях не самая хорошая.
Поэтому пришлось изменить данный метод на:
//---
Результат с теми же параметрами:
Инициализация в эксперте CGraphic.
Если создавать график в эксперте, например:
то при смене внешнего параметра, график периодически пропадает. Не с первого раза. Можно поменять параметр 3-5 раза и он потом произвольно где-то теряется. Причем не навсегда. Его можно найти, попереключав таймфреймы или автоматическую торговлю(разрешена-нет).
Можно сделать, чтобы он не терялся?
Инициализация в эксперте CGraphic.
Если создавать график в эксперте, например:
то при смене внешнего параметра, график периодически пропадает. Не с первого раза. Можно поменять параметр 3-5 раза и он потом произвольно где-то теряется. Причем не навсегда. Его можно найти, попереключав таймфреймы или автоматическую торговлю(разрешена-нет).
Можно сделать, чтобы он не терялся?
Вы создаете и разрушаете объект на локальном уровне функции OnInit.
Создайте его на глобальном уровне.Проблема решилась переустановкой MT.
Никак не могу привыкнуть к тому, что при ошибке ошибки может и не быть.
Подскажите, пожалуйста, как изменить ширину легенды, или вообще убрать отведенное под неё пространство?
И ещё вопрос,почему указываю цвет "Red", а отображается на графике синий, в то время как Green отображается корректно?
И ещё вопрос,почему указываю цвет "Red", а отображается на графике синий, в то время как Green отображается корректно?
С этим разобрался, цвет надо задавать так