Справка по языку MQL5 - страница 36

 

SymbolName

Возвращает наименование указанного символа.

int SymbolName(

int pos, // номер в списке

bool selected // true – только символы в MarketWatch

);



SymbolSelect

Выбирает символ в окне MarketWatch или убирает символ из окна.

int SymbolSelect(

string name, // имя символа

bool select // включить или выключить

);

Возвращаемое значение

В случае неудачи функция возвращает false.

 


Если множественного наследования нет, то и предков не может быть болъше одного,
или неверно ?

 
wlad >>:


Если множественного наследования нет, то и предков не может быть болъше одного,
или неверно ?

Предков может быть N штук, имеется в виду не мама с папой, а родитель, его родитель, и т.д. вверх по иерархии до самого Адама :)

 

Доступ к таймсериям и данным индикаторов


Несоответствие:

BarsCalculated

Возвращает true, если данные запрашиваемого индикатора рассчитаны.


BarsCalculated


Возвращает количество рассчитанных данных для запрашиваемого индикатора.

int BarsCalculated(

int indicator_handle, // handle индикатора

);

 

CopyBuffer


Опечатка, на этой странице встречается 3 раза:

int       buffer_num,           // номер буфера в индикатора


 

Основы языка — Типы данных — Вещественные типы (double, float)

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

-----------------------------------

Основы языка — Типы данных — Целые типы — Перечисления

Во втором примере :

enum intervals // перечисление именованных констант

{

month=1, // интервал в один месяц

two_months, // два месяца

quarter, // три месяца - квартал

halfyear=6, // полугодие

year=12, // год - 12 месяцев запятая?

};

================================================================================

Наблюдается некоторое своеволие в использовании терминов (уникальности названий и определений понятий).

Например, термин "объект" используется здесь (Основы языка — Операторы — Оператор создания объекта new ) применительно к структурам и классам, хотя привычнее его применять к графическим объектам. То же замечено в отношении термина "тип".

-----------------

Справочник MQL5 — Основы языка — Операторы — Составной оператор

Вопрос терминов в значительной степени решается на основе личных предпочтений.

Моё представление о правильной терминологии таково:

Это - заголовок оператора.

if(x==0)

Это - тело оператора (исполняемая часть)

{

Print("invalid position x=",x);

return;

}

Это - блок операторов (обсуждаемый фрагмент кода) Блок 1-2, блок 2-3 и т.д

//-------------------------------- 1 -

Print("invalid position x=",x);

return;

//-------------------------------- 2 -

Это - составной оператор; по своей сути составляется из двух частей - заголовка и исполняемого тела (предполагающего обязательное наличие других операторов), в отличие от обычных операторов (return, break).

if(x==0)

{

Print("invalid position x=",x);

return;

}

То же for, while, switch
 

Нестыковочка:


Функции для работы с техническими индикаторами

Пользовательские индикаторы могут содержать до 512 индикаторных буферов,...


Переход с MQL4

·

Количество индикаторных буферов не ограничено;

...

В MQL4 количество индикаторных буферов ограничено и не может быть более 8. В MQL5 такого ограничения нет

 

Графические объекты

Количество графических объектов в MQL5 существенно расширилось,
но при этом появилось одно  ограничение - нельзя использовать функции по работе с графическими объектами в пользовательских индикаторах. 

Тут, конечно, можно долго разглагольствовать о принятых в MQL5 ограничениях в плане ООП, и, с другой стороны, отпущенных вольностях, частично берущих свои корни из C/C++.

Хотелось бы услышать обоснование разработчиков по поводу запрета работы с графикой в графических индикаторах. Многих это ограничение не устроит, поэтому возникнут извращения, типа создания вспомогательных экспертов с секундным таймером, которые будут дополнять индикаторы графикой; будет также организован обмен информацией между такими индикаторами и экспертами (возможно, очень "кривой" с точки зрения эффективного использования памяти и CPU).


Также, не увидел программной возможности запуска скриптов из экспертов и индикаторов.

 

Темы быстро убегают...

Кое что здесь озвучено:

'Вопросы по индикаторам в МТ5'

 
pisara писал(а) >>
Многих это ограничение не устроит, поэтому возникнут извращения, типа создания вспомогательных экспертов с секундным таймером, которые будут дополнять индикаторы графикой; будет также организован обмен информацией между такими индикаторами и экспертами (возможно, очень "кривой" с точки зрения эффективного использования памяти и CPU).

Также, не увидел программной возможности запуска скриптов из экспертов и индикаторов.

По-моему, нужно оставить эти прикл. программы для расчёта инд. массивов, но называть их не индикаторами, а попроще - что-то типа "модуль эффективного расчёта индикаторных массивов". И должен появиться ещё один тип прикл. программы - рисовалка, которая:

1) сможет вызвать (в стиле iCustom) расчётный модуль, чтобы получить данные для отрисовки индикаторных линий

2) будет иметь право использования функций для управления графическими объектами.

3) будет называться индикатором.

--

Хорошо бы, чтоб программы могли вызывать друг друга. При этом должна соблюдаться иерархия. Программы с более высоким статусом должны иметь право вызывать программы с меньшим статусом, а наобороот - нет.

Main - "главная" программа, (типа, в "пустом" окне) - высший статус - подчиняется только терминалу. Может вызывать любую прикл. программу в любое окно.

Эксперты - статус 1. Могут вызывать скрипты и индикаторы (в окно, в ктором сидит эксперт).

Скрипты - статус 2. Могут вызывать индикаторы (в то же окно).

Индикаторы - статус 3. Могут вызываться кем угодно. Вызывать не могут никого. (могут создавать подокно в окне вызвавшей прогр.)

** "модуль эффективного расчёта индикаторных массивов" может быть вызван любой прикл. программой.

Причина обращения: