Ну наверное перевести координаты X/Y в значения время/цена
Могли бы вы объяснить как заменить их? пожалуйста, я понимаю наверное глупый вопрос
Добрый день, как вывести любое число возле цены справа? точнее даже вопрос состоит в том, какие координаты у Label
У меня получилось
вывести текстом вот так:
где:
Как сделать тоже самое но только с LABEL, ведь там нужно знать координаты X и У
- www.mql5.com
В этом случае Label - лишнее звено. Вполне достаточно OBJ_TEXT. Ведь все равно нужно знать время открытия бара, который крайний справа на графике. Вот по этому времени/цене и отображается OBJ_TEXT.
Вот так:
#define FONT_NAME "Tahoma" #define FONT_SIZE 10 #define OBJECT_NAME "Sample" int OnInit(void) { return(INIT_SUCCEEDED); } void OnDeinit(const int reason) { ObjectDelete(0, OBJECT_NAME); } int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int nBars = int(ChartGetInteger(0, CHART_WIDTH_IN_BARS)); int nFirstBar = int(ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR)); datetime dtRightBar = (nBars < nFirstBar)? iTime(NULL, 0, nFirstBar - nBars) : iTime(NULL, 0, 0) + (nBars - nFirstBar) * PeriodSeconds(); ShowText(OBJECT_NAME, dtRightBar, Bid, "MyText", "\n", clrBlue, ANCHOR_RIGHT_LOWER); return(rates_total); } //+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ //| Отображение объекта "Текст" | //+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ void ShowText(string name, datetime time, double price, string text, string toolTip, color clr, ENUM_ANCHOR_POINT anchor) { if (ObjectFind(0, name) < 0) { ObjectCreate(0, name, OBJ_TEXT, 0, time, price); ObjectSetString(0, name, OBJPROP_FONT, FONT_NAME); ObjectSetInteger(0, name, OBJPROP_FONTSIZE, FONT_SIZE); ObjectSetString(0, name, OBJPROP_TEXT, text); ObjectSetString(0, name, OBJPROP_TOOLTIP, toolTip); ObjectSetInteger(0, name, OBJPROP_COLOR, clr); ObjectSetInteger(0, name, OBJPROP_ANCHOR, anchor); ObjectSetInteger(0, name, OBJPROP_BACK, false); ObjectSetInteger(0, name, OBJPROP_HIDDEN, true); ObjectSetInteger(0, name, OBJPROP_SELECTABLE, false); return; } ObjectMove(0, name, 0, time, price); ObjectSetInteger(0, name, OBJPROP_COLOR, clr); ObjectSetString(0, name, OBJPROP_TEXT, text); }
Получаем:
Вот так:
Получаем:
Спасибо большое, но такой вариант у меня есть, и он не подходит потому что когда двигаем рафик, этот текст остается на месте, мне поэтому и нужно
было на Label
Пожалуйста
помогите перевести
Спасибо большое, но такой вариант у меня есть, и он не подходит потому что когда двигаем рафик, этот текст остается на месте, мне поэтому и
нужно было на Label
Пожалуйста
помогите перевести
А что не получается? Документацию читали? Там ведь есть пример.
Спасибо большое, но такой вариант у меня есть, и он не подходит потому что когда двигаем рафик, этот текст остается на месте, мне поэтому и нужно было на Label
Пожалуйста помогите перевести
Еще раз - не нужен Вам этот Label для решения поставленной задачи. Дальше всего лишь OnChartEvent() добавить, чтобы отследить изменения графика. Это проще простого уже. Тут приготовили, в рот положили. Жевать уже не будут.
Еще раз - не нужен Вам этот Label для решения поставленной задачи. Дальше всего лишь OnChartEvent() добавить, чтобы отследить изменения графика. Это проще простого уже. Тут приготовили, в рот положили. Жевать уже не будут.
нет, вы не поняли, TEXT остается на графике, а LABEL он идёт вместе с графиком, мне нужно чтобы при просмотре графика текст оставался на месте,
тобишь работало как LABEL
Или же вы это поняли и говорите что так можно сделать только через TEXT, если так ток как это сделать?
нет, вы не поняли, TEXT остается на графике, а LABEL он идёт вместе с графиком, мне нужно чтобы при просмотре графика текст оставался на
месте, тобишь работало как LABEL
Или же вы это поняли и говорите что так можно сделать только через TEXT, если так ток как это
сделать?
ОК. Жую...
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { CalculateAndShowObject(); return(rates_total); } void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam) { if (id == CHARTEVENT_CHART_CHANGE) CalculateAndShowObject(); } void CalculateAndShowObject() { int nBars = int(ChartGetInteger(0, CHART_WIDTH_IN_BARS)); int nFirstBar = int(ChartGetInteger(0, CHART_FIRST_VISIBLE_BAR)); datetime dtRightBar = (nBars < nFirstBar)? iTime(NULL, 0, nFirstBar - nBars) : iTime(NULL, 0, 0) + (nBars - nFirstBar) * PeriodSeconds(); ShowText(OBJECT_NAME, dtRightBar, Bid, "MyText", "\n", clrBlue, ANCHOR_RIGHT_LOWER); }
ОК. Жую...
Спасибо большое я только начинаю познавать этот язык, и я не мог представить что такое можно сделать и через TEXT, ведь TEXT и Label этим и отлючаются, и зачем тогда 2 разных если можно сделать все через TEXT - странно! Спасибо больше, я уже столько информации перерыл, как отследить его) но так и не нашёл, подскажите как можно по быстрому находить ответ, ведь я искал через документацию. Или же всего лишь нужно знать полностью язык. Спасибо за ответ
И ответьте пожалуйста, как быстрее или как более правильнее будет как вы сделали или через преобразование координат X У ???
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день, как вывести любое число возле цены справа? точнее даже вопрос состоит в том, какие координаты у Label
У меня получилось вывести текстом вот так:
где:
TimeCurrent() - последнее текущее время
Как сделать тоже самое но только с LABEL, ведь там нужно знать координаты X и У