Блог им. AlgoTrader1 |Тип данных для хранения даты и времени (datetime) в языках MQL4 и MQL5

Всех приветствую. Продолжаем изучение языка MQL4. В прошлый раз мы говорили о строковом типе данных, а сегодня поговорим о типе данных, который позволяет хранить дату и время, — datetime. На самом деле мы уже с ним знакомились, когда говорили о целых типах данных. Потому что тип datetime является целым и хранит целочисленное значение, которое равно количеству секунд, прошедших с 1 января 1970 года. Эта дата является началом диапазона значений, которые может хранить тип datetime. Конечной датой является 31 декабря 3000 года.

Отдельное внимание уделить типу данных datetime я решил потому, что мы не затрагивали самый простой и удобный способ задания даты – литеральный. Любые дату и время можно задать в виде целого числа, равного количеству секунд прошедших с 1 января 1970 года 00:00:00. Только это совершенно неудобно. Литеральный способ записи позволяет указывать сразу нужную дату и время, заключая их в одинарные кавычки, перед которыми указывается буква D, — первая буква в названии типа данных datetime. Литеральный способ записи выглядит следующим образом: D’YYYY.MM.DD HH:MM:SS’, например D’2018.11.17 12:10:00’ – 17 ноября 2018-го года, 12 часов, 10 минут, 0 секунд. В указании даты можно порядок: год, месяц, день поменять на: день, месяц, год. Оба варианта будут корректны. Что касается времени, то его можно указывать до необходимой точности. Например, если секунды не важны, можно указать только часы и минуты, — HH:MM. Если и минуты не требуются, можно указать только часы, — HH. Можно указать только дату, а время не указывать. В этом случае время будет равно полночи, т.е. 0 часов, 0 минут, 0 секунд. Если указать только время, но не указать дату, ошибки не будет, но компилятор выдаст предупреждение о неполной литеральной записи.



( Читать дальше )

Блог им. AlgoTrader1 |Вещественные типы данных в MQL4 и MQL5

Всех приветствую. Продолжаем изучение языка MQL4.

В прошлый раз мы рассмотрели целые типы данных, а сегодня поговорим о вещественных типах. Они предназначены для того, чтобы хранить не только целую, но и дробную часть числа. Поэтому они гораздо более универсальны, чем целые типы данных. В плане математических операций с целыми числами мы ограничены тем, что результат обязательно должен быть целым, иначе мы потеряем дробную часть числа. По этой причине целые типы чаще всего применяются для нумерации элементов массива и для всевозможных счётчиков, когда нам необходимо посчитать сколько раз выполнилось какое-либо условие. Например, перебрать все активные ордера и посчитать сколько из них каждого типа: (buy, sell, buy stop, buy limit, sell stop, sell limit).

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

Вещественных типов данных в языке MQL4 (и в MQL5 тоже) всего 2:



( Читать дальше )
  • обсудить на форуме:
  • MQL5,
  • MQL4

Блог им. AlgoTrader1 |Синтаксис языка MQL4

Господа, всех приветствую. Продолжаем изучение языка MQL4. В прошлом посте речь шла о базовых функциях-обработчиках событий, которые есть в каждом советнике. Сегодня поговорим о синтаксисе MQL4. Для С++ программистов новость хорошая, в плане синтаксиса MQL4 очень похож.

Синтаксис  — это такой набор правил, которые определяют как из символов алфавита языка собирать слова и предложения, которые образуют правильно структурированную и корректно работающую программу или её фрагмент. Таким образом, наблюдение за набором любого корректного кода, можно одновременно считать и изучением синтаксиса языка.

Однако, согласно справке в разделе посвящённом синтаксису языка предлагается рассмотреть: 

  • комментарии;
  • идентификаторы;
  • зарезервированные слова.
Поэтому, будем придерживаться данного плана.

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

( Читать дальше )
  • обсудить на форуме:
  • MQL4

Блог им. AlgoTrader1 |Обработчики событий, которые есть в каждом советнике

Господа, всех приветствую. Продолжаем изучение mql4. В прошлый раз мы познакомились с «Мастером MQL4», а так же программами и файлами, которые в нём можно создавать и разобрались, чем они друг от друга отличаются и какие задачи выполняют.

Сегодня я расскажу о трёх основных функциях, которые у Вас будут в каждом советнике. Эти функции называются OnInit(), OnDeinit(), OnTick() и являются обработчиками событий: инициализация, деинициализация и новый тик.

Если Вы попробуете создать шаблон советника в «Мастере MQL4», Вам будет предложено добавить и другие имеющиеся обработчики событий, но перечисленные функции являются базовыми, о них Вас даже не будут спрашивать. После получения пустой заготовки для советника, эти 3 функции уже будут в исходнике, после чего Вы можете их наполнить программным кодом.

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

Функция OnInit() выполняется первой, когда торговый терминал посылает событие init (инициализация). А делает он это в следующих ситуациях: запуск советника на графике, смена торгового символа или таймфрейма, перекомпиляция советника в MetaEditor’e, если его копия установлена на графике, изменение входных параметров советника из окна его настроек, а так же при смене счёта.



( Читать дальше )

....все тэги
UPDONW
Новый дизайн