1) Лично я согласен, и будь моя воля просто вырубил бы ее и запретил включать в коде. Но низзя)
2) Спасибо, но там не нашел решения (везде решается через объект OBJ_VLINE, мне это не подходит), копаю по-своему
можно на любимом некоторыми Canvas сделать сетку. Положить канву как фон (или фронт) чарта, по ней рисовать и следить за геометрией/привязками цена/время.
гиморно, но при наличии вкуса и вагона времени может получиться красиво
можно на любимом некоторыми Canvas сделать сетку. Положить канву как фон (или фронт) чарта, по ней рисовать и следить за геометрией/привязками цена/время.
гиморно, но при наличии вкуса и вагона времени может получиться красиво
А можете ли вы написать простой пример на канвасе? плиз
Ни черта не шарю в нем, мне бы просто прямоугольник размером с чарт и линию вертикальную на нем
Только загадка - почему это мешает. Я бы в жизни не заметил.
А можно сформулировать задачу более детально, чтобы понять лучший путь для решения. У взаимодействия графических объектов с канвасом есть нюансы. Кстати, один из возможных путей решения - это сменить руководителя. )) Т.к. если он считает, что смена цвета - это костыль, то использования канваса для него тем более будет костылем. Хотя допускаю, что Ваш руководитель - это вымышленый персонаж или аллегория. ))
А можете ли вы написать простой пример на канвасе? плиз
Ни черта не шарю в нем, мне бы просто прямоугольник размером с чарт и линию вертикальную на нем
Не оптимально вплане быстродействия (перерисовка происходит чаще чем должно быть - просто лень усложнять код) , но рабочий вариант.
Можно реализовать канвас на размер экрана (не окна, например 1920x1080) и не перерисовывать его совсем. Просто памяти будет отъедать 8 Мбайт. Кстати, смена цвета сетки не поможет.
#include <Canvas\iCanvas.mqh> //https://www.mql5.com/en/code/23840intOnInit()
{
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
//---//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+//| ChartEvent function |//+------------------------------------------------------------------+voidOnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam)
{
if(id==CHARTEVENT_CHART_CHANGE) DrawGrid();
}
//+------------------------------------------------------------------+voidDrawGrid() {
Canvas.Erase(0);
if (ChartGetInteger(0,CHART_SHOW_GRID)) {
Canvas.SetBack(false);
ChartSetInteger(0,CHART_FOREGROUND,0,true);
uint clr = ColorToARGB((color)ChartGetInteger(0,CHART_COLOR_GRID),255);
for (int y=0;y<W.Height;y++)
if (y%6<2 || y%6>4) {
for (int x=32;x<W.Width;x+=32)
Canvas.m_pixels[y*W.Width+x]=clr;
}
}
Canvas.Update();
}
Только загадка - почему это мешает. Я бы в жизни не заметил.
А можно сформулировать задачу более детально, чтобы понять лучший путь для решения. У взаимодействия графических объектов с канвасом есть нюансы. Кстати, один из возможных путей решения - это сменить руководителя. )) Т.к. если он считает, что смена цвета - это костыль, то использования канваса для него тем более будет костылем. Хотя допускаю, что Ваш руководитель - это вымышленый персонаж или аллегория. ))
Ага, прикольный прикол, на который я потратил уже почти неделю) Жопа горит)
Ну как почему мешает. Есть индикатор, использующий треугольники для рисования. Красивенько все получается, цвета уже подобрали, а тут разглядели такой косяк. Индикатор не для личного пользования, а делать релиз с таким багом это бред. Либо менять всю отрисовку, что достаточно геморно т. к. я новичек, либо править баг
Смена цвета сетки не помогает, как вы верно заметили, я к этому и сам уже пришел) Вначале на некоторых сочетаниях цветов казалось что поможет
Смена цвета сетки(если бы помогала) - неприемлимый костыль, т. к. пользователь может на это влять, вдруг он захочет изменить цвет. Вариант заблочить эту функцию пользователю тоже не подходит, думаю понятно почему))
Задача: сделать так, чтобы пользователь видел на экране сетку, если она включена, одного цвета всегда. Учитывая баги МТ4 с вертикальной сеткой + закрашенный объект. Не знаю что еще добавить)
По сути варик, который вы написали выше, подходит. Шлифануть его я смогу. Золотой вы человек!! Просто слов нет чтобы выразить мою благодарность. Могу пятишку накинуть вам за помощь
Только пара маленьких вопросиков: Сильные лаги будут на слабых компах? Знаю что вопрос абстрактный, но буду рад любому ответу) "Просто памяти будет отъедать 8 Мбайт" - полагаю вы не про оперативную память говорите?)) Если про нее, 8МБ это ж пустяк вроде iCanvas обязательно, обычный не пойдет? Просто это еще пользователям говорить "этот файл туда, этот сюда". Они ж тупенькие, не поймут что куда пихать)
В метатрейдере есть индикатор Bulls.mq4. Зачем в нем дополнительный буфер, и почему нельзя использовать просто промежуточную переменную dd = iMA(NULL,0,InpBullsPeriod,0,MODE_EMA,PRICE_CLOSE,i); ExtBullsBuffer[i]=dd;
Вопрос в том, что ExtBullsBuffer[i] используется только для хранения вычисленного значения результата функции iMA и в следующей строке это значение присваивается элементу индикаторного буфера. Больше нигде ExtBullsBuffer не используется. Почему тут нужен этот промежуточный буфер ExtBullsBuffer, а не просто переменная, как на рисунке зеленым отмечено ***
1) Лично я согласен, и будь моя воля просто вырубил бы ее и запретил включать в коде. Но низзя)
2) Спасибо, но там не нашел решения (везде решается через объект OBJ_VLINE, мне это не подходит), копаю по-своему
можно на любимом некоторыми Canvas сделать сетку. Положить канву как фон (или фронт) чарта, по ней рисовать и следить за геометрией/привязками цена/время.
гиморно, но при наличии вкуса и вагона времени может получиться красиво
можно на любимом некоторыми Canvas сделать сетку. Положить канву как фон (или фронт) чарта, по ней рисовать и следить за геометрией/привязками цена/время.
гиморно, но при наличии вкуса и вагона времени может получиться красиво
А можете ли вы написать простой пример на канвасе? плиз
Ни черта не шарю в нем, мне бы просто прямоугольник размером с чарт и линию вертикальную на нем
А можете ли вы написать простой пример на канвасе? плиз
Ни черта не шарю в нем, мне бы просто прямоугольник размером с чарт и линию вертикальную на нем
надо позвать @Nikolai Semko он с канвасом дружит гораздо сильнее. А пока он в пути - посмотрите его профиль там много всякого на канвасе
А можете ли вы написать простой пример на канвасе? плиз
Ни черта не шарю в нем, мне бы просто прямоугольник размером с чарт и линию вертикальную на нем
Прикол. Такой глюк только в MT4 и только с вертикальными линиями.
Только загадка - почему это мешает. Я бы в жизни не заметил.
А можно сформулировать задачу более детально, чтобы понять лучший путь для решения. У взаимодействия графических объектов с канвасом есть нюансы.
Кстати, один из возможных путей решения - это сменить руководителя. ))
Т.к. если он считает, что смена цвета - это костыль, то использования канваса для него тем более будет костылем.
Хотя допускаю, что Ваш руководитель - это вымышленый персонаж или аллегория. ))
alex_xss:
А можете ли вы написать простой пример на канвасе? плиз
Ни черта не шарю в нем, мне бы просто прямоугольник размером с чарт и линию вертикальную на нем
Не оптимально вплане быстродействия (перерисовка происходит чаще чем должно быть - просто лень усложнять код) , но рабочий вариант.
Можно реализовать канвас на размер экрана (не окна, например 1920x1080) и не перерисовывать его совсем. Просто памяти будет отъедать 8 Мбайт.
Кстати, смена цвета сетки не поможет.
Может у кого есть функция сортировки массива (string) по алфавиту?
У меня такая, когда-то давно сабер писал
У меня такая, когда-то давно сабер писал
Спасибо.
надо позвать @Nikolai Semko он с канвасом дружит гораздо сильнее. А пока он в пути - посмотрите его профиль там много всякого на канвасе
Большое спасибо, обязательно гляну)
Прикол. Такой глюк только в MT4 и только с вертикальными линиями.
Только загадка - почему это мешает. Я бы в жизни не заметил.
А можно сформулировать задачу более детально, чтобы понять лучший путь для решения. У взаимодействия графических объектов с канвасом есть нюансы.
Кстати, один из возможных путей решения - это сменить руководителя. ))
Т.к. если он считает, что смена цвета - это костыль, то использования канваса для него тем более будет костылем.
Хотя допускаю, что Ваш руководитель - это вымышленый персонаж или аллегория. ))
Ага, прикольный прикол, на который я потратил уже почти неделю) Жопа горит)
Ну как почему мешает. Есть индикатор, использующий треугольники для рисования. Красивенько все получается, цвета уже подобрали, а тут разглядели такой косяк.
Индикатор не для личного пользования, а делать релиз с таким багом это бред. Либо менять всю отрисовку, что достаточно геморно т. к. я новичек, либо править баг
Смена цвета сетки не помогает, как вы верно заметили, я к этому и сам уже пришел) Вначале на некоторых сочетаниях цветов казалось что поможет
Смена цвета сетки(если бы помогала) - неприемлимый костыль, т. к. пользователь может на это влять, вдруг он захочет изменить цвет.
Вариант заблочить эту функцию пользователю тоже не подходит, думаю понятно почему))
Задача: сделать так, чтобы пользователь видел на экране сетку, если она включена, одного цвета всегда. Учитывая баги МТ4 с вертикальной сеткой + закрашенный объект. Не знаю что еще добавить)
По сути варик, который вы написали выше, подходит. Шлифануть его я смогу. Золотой вы человек!! Просто слов нет чтобы выразить мою благодарность. Могу пятишку накинуть вам за помощь![]()
Только пара маленьких вопросиков:
Сильные лаги будут на слабых компах? Знаю что вопрос абстрактный, но буду рад любому ответу)
"Просто памяти будет отъедать 8 Мбайт" - полагаю вы не про оперативную память говорите?)) Если про нее, 8МБ это ж пустяк вроде
iCanvas обязательно, обычный не пойдет? Просто это еще пользователям говорить "этот файл туда, этот сюда". Они ж тупенькие, не поймут что куда пихать)
Прошу проконсультировать - ответить на ворпос
В метатрейдере есть индикатор Bulls.mq4.
Зачем в нем дополнительный буфер, и почему нельзя использовать просто промежуточную переменную
dd = iMA(NULL,0,InpBullsPeriod,0,MODE_EMA,PRICE_CLOSE,i);
ExtBullsBuffer[i]=dd;
Вопрос в том, что ExtBullsBuffer[i] используется только для хранения вычисленного значения результата функции iMA и в следующей строке это значение присваивается элементу индикаторного буфера. Больше нигде ExtBullsBuffer не используется. Почему тут нужен этот промежуточный буфер ExtBullsBuffer, а не просто переменная, как на рисунке зеленым отмечено
***