Вопрос по MT Language!!! - страница 2

 
Естественно, первым делом https://www.mql5.com/en/code закачал к себе на компьютер, однако не выход это, раз на сайте выложено, можно было и в программный пакет это описание включить.
PS: Далеко от темы ушли
 
to Renat

Ну, конечно, мы ходили на ваш сайт по этой ссылке https://www.mql5.com/en/code . Вашей команде, как разработчику, кажется , что там описано все по максимуму, но поверьте - это не так.
 
Вашей команде, как разработчику, кажется , что там описано все по максимуму, но поверьте - это не так.

Я Вас отправляю читать книжки по языку С.
Не желаете - это Ваше дело. Но из-за этого выказывать нам свои претензии не нужно.
Дети маленькие - с ложечки кормить прикажете?
 
Да почитаю я книжки по С, при чем здесь желаете-не желаете. Я высказываю свое мнение - а Вы сразу обижаться.
 
Rosh, со временем у нас будет пополняющийся набор статей по программированию. но это не сейчас. сейчас Вам придётся полностью самостоятельно. кстати, на прошлой неделе мы исправили на сайте неточности в описании языка, так что зайдите ещё раз на https://www.mql5.com/en/code
 
MetaEditor (Словарь)
1.Описание функции OrderExpiration в части Sample должен быть приведен пример использования функции OrderExpiration, но этой функции там вообще нет. Наверное в третьей строке примера имелось ввиду не expiration=OrderComment(), а expiration=OrderExpiration().
2.Описание функции OrderOpenPrice(), как я понял, эта функция должна возвращать значение цены открытия ордера, а цена имеет тип double, но в описании тип возвращаемого значения указан как datetime. Ошибочность указанного типа подтверждает (только если не имелось ввиду преобразование типов) и приведенный ниже пример в котором значение возвращаемой функции придают переменной типа double :
double ctm=OrderOpenPrice();
3.То же, что и в п.2, но по функции OrderProfit().
4.То же, что и в п.2, но по функции OrderSwap().
5.Описание функции CurTime тип возвращаемого значения декларируется как datetime, по сути эта функция возвращает текущее время, в виде количества секунд прошедших с 00:00 1 января 1970 года, здесь наверняка тип возвращаемого значения будет int и потом я думаю что в точке отсчета нужно дописать 00:00:00 или 00:00:01 (может 60 секунд и не много значат, как время, но когда пишется код, зачастую это может довольно сильно влиять на результаты).
6.На форуме очень часто говорилось об экономии места под базы на носителях, трафика при передачи истории, поэтому есть такое предложение (я понимаю, что реализовать это можно будет только в следующих версиях) историю хранить и передавать не в том виде как она есть сейчас
date time OHLC volume
, а в следующем формате
date time O dH dL +/-dC volume
, т.е. hi и low передаются в виде приращения по отношению к open (вместо 5 знаков 2-3 знака), а close в виде приращения со знаком (вместо 5 знаков 3-4 знака) понятно что возрастет нагрузка на процессор (для проведения операции преобразования локально), но зато сократиться (значительно 30-40%) место занимаемое базами + трафик. Экономию из-за закрытости формата баз программы я смотрел на примере баз в формате csv, txt.
7.В описание функции TimeDay говорится что передаваемый ей параметр должен иметь тип datetime. В пояснение параметра говорится, что параметр имеет вид количества секунд прошедших с 00:00:00 1 января 1970 года, т.е. имеет тип int.
8.см. п.7 , но по функции TimeDayOfWeek
9.по функции TimeDayOfYear, также тип параметра наверняка int, а не datetime как указано в описании.
10. по функции TimeHour в описании недописано, что возвращается порядковый номер часа в сутках (а может в неделе, месяце или году?). Также справедливо сказанное выше относительно типа передаваемого функции параметра.
11.см. п.10 , но по функциям TimeMinute, TimeMonth, TimeSeconds и частично TimeYear
12.по функции FileOpen типы второго и третьего параметра по-моему неверно продекларированы, в частности второй параметр объявляют как int, а принимаемые им значения FILE_BIN, FILE_CSV, FILE_READ, FILE_WRITE (т.е. string скорее всего), третий параметр тоже объявлен как int хотя и представляет из себя символ-разделитель.
13.Действительно ли сейчас Time возвращает время открытия (раньше по-моему было время закрытия)? И опять-таки неувязочка с типом возвращаемого значения количество секунд имеет скорее всего тип int, а не datetime, ну и необходимо дописать :00.
14.По всей видимости кусок примера для функций pre-defined variables копировался и везде содержит одну и ту же опечатку в слове write первая буква неправильна и слово выглядит как erite.
15.Очепятка в описании функции MathArctan "value whose arcsin to calculate, in range from -1 to 1" и тут же MathArctan(1.3)
16.в описании функции ObjectCreate (там где расшифровка параметров подраздел type) OBJ_TREND - Trend line встречается почему-то два раза, может там должен был быть еще какой-то тип объекта или просто вписали два раза?
17.функция ObjectType: в описание значится, что тип возвращаемого значения int, но по смыслу и из примера видно, что это скорее string
18.для чего в синтаксисе функций фигурирует "Math", пустые скобки в функциях, в которых не предусмотрена передача параметров и то и другое захламляет код программы, интересно, а как насчет неявного преобразования типов данных например int->color?
19.не найдется ли форумянен, который смог бы граммотно руссифицировать описание MQL4? Я бы взялся, но к сожалению не обладаю необходимыми знаниями (впрочем частично я реализовал это и всем нуждающимся по возможности вышлю MetaEditor.chm дополненный 220kb)
 
спасибо за замеченные очепятки. исправим к следующему билду. также включим описание языка в словарь ближайщем будущем.
по поводу типов данных:

5,7-11. datetime и color действительно представляет собой целые числа и были введены с одной стороны для удобства (функция возвращает именно время а не просто число) и с другой стороны для представления в различных диалогах нужные редакторы для значений. например когда вводятся параметры для эксперта в клиентском терминале если параметор имеет тип datetime то используется поле ввода для datetime, а если color то для цвета.
12,17. в языке отсутствует тип char - так как это по своей сути тотже integer. Все стандарные константы являются целочисленными. например: ObjectType возвращает номер типа а не строковое имя типа.
18. за основу языка брался синтаксис С поэтому и пустые скобки в функциях без параметров. color является интом в любом языке. преобразование типов есть только между строкой и числами (int, double) и наоборот с помощью соответствующих функций.
 
Я Вас отправляю читать книжки по языку С.
Не желаете - это Ваше дело. Но из-за этого выказывать нам свои претензии не нужно.

Это Ваше дело!
Вопрос: А для кого Вы создаёте MT4, позвольте спросить? Для себя?
Разжуйте, уж будьте добры. И тогда нам и Вам будет намного легче. Мы побыстрей вникнем и не станем задавать лишние вопросы, а Вы сможете скорее построить полноценно работающий пакет.
 
Разжуйте, уж будьте добры. И тогда нам и Вам будет намного легче. Мы побыстрей вникнем и не станем задавать лишние вопросы, а Вы сможете скорее построить полноценно работающий пакет.


А мы стараемся. Но также понимаем, что все равно всех не удовлетворим.
 
George не могли бы вы посмотреть следующие два фрагмента и ответить мне почему различаются результаты их работы?

1-й фрагмент
i=Bars;
while(i>=0)
{
high=High[i]; low=Low[i];
UpBuffer[i]=high;
DnBuffer[i]=low;
MdBuffer[i]=(high+low)/2;
i--;
}

2-й фрагмент

for(i=Bars;i==0;i--)
{
high=High[i]; low=Low[i];
UpBuffer[i]=high;
DnBuffer[i]=low;
MdBuffer[i]=(high+low)/2;
}
Причина обращения: