Новая версия платформы MetaTrader 4 build 1353 - страница 2

 
Georgiy Merts #:

А как предлагается преобразовывать значение double в строку? 

В четвёрке давно есть, наряду с устаревшей DoubleToStr(), соответствующая пятёрке  DoubleToString().

 

Вот чего не хватает в мт4, так это  PlotIndexSetInteger(...) приходится писать код для разделения языков, что не удобно и не красиво. 

Может когда-то добавят


 
Vitaly Muzichenko #:

Вот чего не хватает в мт4, так это  PlotIndexSetInteger(...) приходится писать код для разделения языков, что не удобно и не красиво. 

Может когда-то добавят


Так из этого списка отсутствует только PLOT_ARROW_SHIFT, PLOT_DRAW_BEGIN и разноцветность отображения. Но цвет относится к другим построениям и вряд-ли когда будет добавлен.
 
Alexey Viktorov #:
Так из этого списка отсутствует только PLOT_ARROW_SHIFT, PLOT_DRAW_BEGIN и разноцветность отображения. Но цвет относится к другим построениям и вряд-ли когда будет добавлен.

Вот проверял, но правда давненько, функций компилируются, но не работают

 
Vitaly Muzichenko #:

Вот проверял, но правда давненько, функций компилируются, но не работают

Так они чуток не так называются да и я чуток ошибся.

SetIndexDrawBegin

Устанавливает порядковый номер бара от начала данных, с которого должна начинаться отрисовка указанной линии индикатора.

void  SetIndexDrawBegin( 
   int     index,       // номер линии 
   int     begin        // номер позиции 
   );
SetIndexShift

Устанавливает смещение линии индикатора относительно начала графика.

void  SetIndexShift( 
   int     index,       // номер линии 
   int     shift        // смещение 
   );

Ну и дальше можно поискать. На память я конечно не помню.

А вот PLOT_ARROW_SHIFT точно нету…

 
Нельзя ли добавить в мобильную версию мт4 для индикатора Фрактал параметр бары? Т.е. количество, а не как сейчас 5 по умолчанию
 
Alexey Viktorov #:

Так они чуток не так называются да и я чуток ошибся
....

Что развеять сомнение - проверил.

Компилируется, но не работает:

  // SetIndexStyle(LineIndx, DrawType, STYLE_SOLID, LineWdth, LineColr);
  PlotIndexSetInteger(LineIndx, PLOT_LINE_COLOR, LineColr);
  PlotIndexSetInteger(LineIndx, PLOT_LINE_WIDTH, LineWdth);

---

Огромная просьба, добавьте в следующем обновлении!

 
Vitaly Muzichenko #:

Что развеять сомнение - проверил.

Компилируется, но не работает:

---

Огромная просьба, добавьте в следующем обновлении!

Виталий, а можете объяснить зачем это надо, если всё работает вот так

#property strict
#property indicator_chart_window
#property indicator_buffers             1
#property indicator_type1               DRAW_LINE
#property indicator_color1              clrBlueViolet
#property indicator_width1              3

double buff[];
/*********************************************************************\
|               Custom indicator initialization function              |
\*********************************************************************/
int OnInit()
 {
  SetIndexBuffer(0, buff);
  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[])
 {
  int i, limit=rates_total-prev_calculated-1;
   for(i = limit; i >= 0; i--) 
   {
    buff[i] = high[i];
   }
  return(rates_total);
 }/*******************************************************************/

результат


 
Alexey Viktorov #:

Виталий, а можете объяснить зачем это надо, если всё работает вот так

Менять значения на лету.

В вашем примере привязаны к одному буферу, в моём примере буферов может быть от 1 до N и каждому нужно менять цвет, ширину, иногда стиль.

 
Vitaly Muzichenko #:

Менять значения на лету.

В вашем примере привязаны к одному буферу, в моём примере буферов может быть от 1 до N и каждому нужно менять цвет, ширину, иногда стиль.

Ну так и меняйте на закладке «Цвета» ведь на рисунке показано…

Если буферов несколько, то они нумеруются

#property indicator_buffers             3
#property indicator_type1               DRAW_LINE
#property indicator_color1              clrBlueViolet
#property indicator_width1              1
//---
#property indicator_type2               DRAW_LINE
#property indicator_color2              clrBlue
#property indicator_width2              2
//---
#property indicator_type3               DRAW_LINE
#property indicator_color3              clrViolet
#property indicator_width3              3

Или воспользуйтесь функцией

void  SetIndexStyle( 
   int     index,       // номер линии 
   int     type,        // тип 
   int     style=EMPTY, // стиль линии 
   int     width=EMPTY, // ширина линии 
   color   clr=clrNONE  // цвет 
   );
Причина обращения: