Выпущена бета-версия MetaTrader 4 Build 582 с обновленным языком MQL4 и Маркетом приложений - страница 26

 

Renat:

В представленном мною скриншоте явно видно зеленую стрелку по цене BID, которая стоит у края графика.

А вместо этой зеленой стрелки, до компиляции в новом редакторе, был прямоугольник с ценой, который двигался вместе с изменениями цены


Вот этот кусок extern-ов его и регулировал.

extern string IIIIIIIIIIIIIIIIIIIII = "<<<< BOX PRICE Settings >>>>>";
extern bool Show_Moving_BOX_Price = TRUE;
extern bool Show_BID = TRUE;
extern bool Show_ASK = FALSE;
extern double Moving_BID_BOX_Price_Size = 3.0;
extern double Moving_ASK_BOX_Price_Size = 1.0;
extern int BID_BOX_Label_Shift = -5;
extern int ASK_BOX_Label_Shift = -1;
extern bool Show_BID_BOX_Right = TRUE;
extern bool Show_ASK_BOX_Right = TRUE;

 
Kedr:

А вместо этой зеленой стрелки, до компиляции в новом редакторе, был прямоугольник с ценой, который двигался вместе с изменениями цены

Видимо, речь об этом текстовом контроле, у которого не выставлены (а может так и сделано специально судя по ручной добивки пробелами) точки привязки:

Число после < показывается только в режиме включения "смещения графика". В обычном режиме остается видна только угловая скобка. Причем способ формирования строки с добивкой впереди пробелами таков, что скорее всего цель автора была как раз реализовать такой способ комбинированного отображения:

      ObjectDelete("PRICE");
      if(ObjectFind("PRICE")!=0) 
        {
         ObjectCreate("PRICE",OBJ_TEXT,0,customTime(MovingLabel_Shift),Bid);
         ObjectSetText("PRICE","                        <  "+DoubleToStr(ld_4,gi_220)+"",Moving_Price_Size,Moving_Price_font,li_28);
        }
      else ObjectMove("PRICE",0,customTime(MovingLabel_Shift),Bid);

Кроме того, код индикатора удивителен - на каждом тике происходит удаление и пересоздание части объектов. Похоже, что автор не совсем понимал, что делает.

 
Renat:

Чтобы подключиться к любому брокеру на выбор, достаточно вбить желаемое в любом желаемом/кусочном/приблизительном виде вот сюда и нажать Enter:

То есть, теперь можно искать брокеров, вводя куски имени брокера типа Saxo, Alpari, MetaQuotes или имена их торговых серверов или ip адреса серверов.


Справился!

Обновился до 577

Спасибо за науку!

А Price Display.mq4 не подправите?
 

По моему, рановато релиз выкладывать.

Примеры из справки не компилируются.

Вызов функции

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

имя_функции (x1, x2,..., xn)

Аргументы (формальные параметры) передаются по значению, т. е. каждое выражение x1, . . ., xn вычисляется и значение передается функции. Порядок вычисления выражений и порядок загрузки значений не гарантируются. Во время выполнения производится проверка числа и типа аргументов, переданных функции. Такой способ обращения к функции называется вызовом по значению.

Вызов функции – это выражение, значением которого является значение, возвращаемое функцией. Описанный тип функции должен соответствовать типу возвращаемого значения. Функция может быть объявлена или описана в любом месте программы на глобальном уровне, то есть, вне других функций. Функция не может быть объявлена или описана внутри другой функции.

Примеры:

int start()
{
double some_array[4]={0.3, 1.4, 2.5, 3.6};
double a=linfunc(some_array, 10.5, 8);
return(0);

}
double linfunc(double &x[], double a, double b)
{
return (a*x[0] + b);
}


'x' - arrays are passed by reference only Check_FuncArray.mq4 19 23

'}' - not all control paths return a value Check_FuncArray.mq4 18 3

Наверно, справка должна соответствовать более строгому компилятору.
 
Renat:

Кроме того, код индикатора удивителен - на каждом тике происходит удаление и пересоздание части объектов. Похоже, что автор не совсем понимал, что делает.

http://cjatradingtools.com/FREE_Downloads.html

Взглянуть на варианты отображения цены можно здесь - это сайт этого программера. И здесь видно на "мультяшном" кино, какие варианты есть у этого индикатора.

 

Третий раз спрашиваю.

Функции любого типа всегда должны возвращать значение

Как вернуть тип void? Может поправить справку?

 
Kedr:

Дык её горизонталь надо ещё умудриться и поймать... Всегда криво выходит...

А что плохо иметь горизонтальную в виде "отрезка"? Или все только "приспосабливать" надо...

Горизонталь и вертикаль ловятся очень легко даже на глаз (по исчезновению ступенек видно сразу), не говоря про программную отрисовку с которой вообще никаких проблем.

Просто есть проблемы куда фундаментальнее и актуальнее, нежели твои мелкие удобства. Посему считаю твою просьбу вредной на текущий момент (отвлечение разрабов на второстепенную задачу).

Хотя принципиальных возражений нет.

 
MetaDriver:

Горизонталь и вертикаль ловятся очень легко даже на глаз (по исчезновению ступенек видно сразу), не говоря про программную отрисовку с которой вообще никаких проблем.

Просто есть проблемы куда фундаментальнее и актуальнее, нежели твои мелкие удобства. Посему считаю твою просьбу вредной на текущий момент (отвлечение разрабов на второстепенную задачу).

Хотя принципиальных возражений нет.


"не говоря про программную отрисовку" - так здесь нет "отрезка"

"Просто есть проблемы куда фундаментальнее и актуальнее, нежели твои мелкие удобства."

А зря! Качественный продукт всегда продуман до мелочей... Поэтому он и качественный. Сравни топор и скальпель - ампутировать можно и тем и другим.... Мерседес и Запорожец...

" Посему считаю твою просьбу вредной на текущий момент"

Да ладно..., не захламляй ветку. Я внес предложение - разработчики решат, что делать... А я как то обойдусь и без твоих оценок моего предложения

 
MetaDriver:

Горизонталь и вертикаль ловятся очень легко даже на глаз (по исчезновению ступенек видно сразу), не говоря про программную отрисовку с которой вообще никаких проблем.

Просто есть проблемы куда фундаментальнее и актуальнее, нежели твои мелкие удобства. Посему считаю твою просьбу вредной на текущий момент (отвлечение разрабов на второстепенную задачу).

Хотя принципиальных возражений нет.


Обычно, во многих программах, чтобы было дискретное изменение угла наклона линии, нужно удерживать Alt или Ctrl. В МТ только удержание Shift влияет на линию - точка изменяется только по шкале времени. Было бы неплохо, но и без этого совсем не страшно. Можно просто скопировать одно значение цены в оба поля значений цен линии.
 
Kedr:

"не говоря про программную отрисовку" - так здесь нет "отрезка"

Та ну? OBJPROP_RAY
Причина обращения: