Нужно установить ширину линии индикатора больше 5.
Через #property indicator_width устанавливается без проблем. Но после установки индикатора на график при попытке поменять ширину во вкладке Цвета предлагается только диапазон (1-5)
Хочу потом поменять на 6, не получается. Меняю на 5, вернуться обратно на 7 тоже не получается.
Толщин линий всего 5. То, что установлена толщина 6,7, 8 и более, ни на что не влияет. Толщина 7 от толщины 5 ничем не отличается. Видимо, это чисто субъективно показалось, что толще.
Толщин линий всего 5. То, что установлена толщина 6,7, 8 и более, ни на что не влияет. Толщина 7 от толщины 5 ничем не отличается. Видимо, это чисто субъективно показалось, что толще.
Нет, не показалось :) Ниже, картинка - ширина 5,7,10. Через вкладку параметры можно без проблем установить любую ширину. А вот через вкладку Цвета только от 1 до 5
Да, действительно, работает ))
Тогда запишем очередную фичу МТ4: указать толщину линии в коде можно любую, а в параметрах линий - только от 1 до 5.
Это недавняя фича. Раньше такого не было. Установка любого значения выше 5 ни к чему не приводило..
Да, действительно, работает ))
Тогда запишем очередную фичу МТ4: указать толщину линии в коде можно любую, а в параметрах линий - только от 1 до 5.
Это недавняя фича. Раньше такого не было. Установка любого значения выше 5 ни к чему не приводило..
А точно в параметрах линии( во вкладке Цвета в настройках) никак нельзя программно настроить ширину, чтобы было больше 5? Заказчик просит )
И не знаете, в МТ5 такое же ограничение?
А точно в параметрах линии( во вкладке Цвета в настройках) никак нельзя программно настроить ширину, чтобы было больше 5? Заказчик просит )
Программно никак не установить, кроме указанного Вами варианта, который все равно не расширяет выбор в выпадающем списке. Попробуйте обратиться к разработчикам.
И не знаете, в МТ5 такое же ограничение?
Посмотрел. Там все то же самое.))
Ну хоть хорошо, что фича одинакова для обоих терминалов.
Кстати, в МТ5 проходит такой финт:
input uint i_uWidth = 20; int OnInit() { ... PlotIndexSetInteger(0, PLOT_LINE_STYLE, STYLE_SOLID); PlotIndexSetInteger(0, PLOT_LINE_WIDTH, i_uWidth); ... }
Кликабельно.
В МТ4 то же самое, только вместо PlotIndexSetInteger можно дополнительно задействовать аналогичный параметр в функции SetIndexStyle:
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, i_uWidth);
А точно в параметрах линии( во вкладке Цвета в настройках) никак нельзя программно настроить ширину, чтобы было больше 5? Заказчик просит )
И не знаете, в МТ5 такое же ограничение?
Линию в МТ5 я не смотрел, а гистограмму любую поставьте, а она не будет толще свечи. Даже если в параметрах индикатора поставить 5, а на графике 2, то и гистограмма будет толщиной 2
Кстати, в МТ5 проходит такой финт:
Кликабельно.
В МТ4 то же самое, только вместо PlotIndexSetInteger можно дополнительно задействовать аналогичный параметр в функции SetIndexStyle:
Да, я так и сделала, через Входные параметры. Просто думала, что можно как-то через вкладку Цвета, как просит Заказчик.
Похоже, что нельзя :(
Да, я так и сделала, через Входные параметры. Просто думала, что можно как-то через вкладку Цвета, как просит Заказчик.
Похоже, что нельзя :(
не понимаю, какие могут быть сложности с этим...
#property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict #property indicator_chart_window #property indicator_buffers 1 #property indicator_plots 1 //--- plot line #property indicator_label1 "line" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 #define ARGB(a,r,g,b) ((uchar(a)<<24)|(uchar(r)<<16)|(uchar(g)<<8)|uchar(b)) //--- indicator buffers double lineBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,lineBuffer); ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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[]) { if(rates_total - prev_calculated>1) ArrayCopy(lineBuffer,close); else lineBuffer[rates_total-1] = close[0]; return(rates_total); } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(id == CHARTEVENT_MOUSE_MOVE) { SetIndexStyle(0,EMPTY,EMPTY,int(lparam/20),ColorToARGB(Grad(dparam/1000),0)); ChartRedraw(); } } //+------------------------------------------------------------------+ uint Grad(double p) { static uint Col[6]= {0xFF0000FF,0xFF00FFFF,0xFF00FF00,0xFFFFFF00,0xFFFF0000,0xFFFF00FF}; union argb {uint clr; uchar c[4];}; if(p>0.9999) return Col[5]; if(p<0.0001) return Col[0]; p=p*5; int n=(int)p; double k=p-n; argb c1,c2; c1.clr=Col[n]; c2.clr=Col[n+1]; return ARGB(255,c1.c[2]+uchar(k*(c2.c[2]-c1.c[2])+0.5), c1.c[1]+uchar(k*(c2.c[1]-c1.c[1])+0.5), c1.c[0]+uchar(k*(c2.c[0]-c1.c[0])+0.5)); }
не понимаю, какие могут быть сложности с этим...
Заказчику нужно, чтобы в закладке "Цвета" можно было выставить линию толщиной более 5. Ему не нужно оперативно менять толщину линии во время работы индикатора.
Почему так - не спрашивайте. У каждого свои тараканы в голове. ))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Нужно установить ширину линии индикатора больше 5.
Через #property indicator_width устанавливается без проблем. Но после установки индикатора на график при попытке поменять ширину во вкладке Цвета предлагается только диапазон (1-5)
Хочу потом поменять на 6, не получается. Меняю на 5, вернуться обратно на 7 тоже не получается.