Блог им. 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

Всех приветствую.

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

Из торговых роботов в этом списке представлен только продукт Mr. Average — усредняющийся советник. Вдаваться в подробности того, что такое усреднение позиции я не буду. Скажу лишь, что стратегия весьма опасная. При необдуманном и безответственном использовании — слив депозита это только вопрос времени. Так что, я бы сказал, что данный советник скорее полуавтомат. Т.е. требует знающего и понимающего оператора, который будет выбирать для использования стратегии нужное время и правильные инструменты. 

Все эти продукты опубликованы на официальном Маркете для MQL-программ. На странице каждого продукта имеется подробное описание, а у некоторых ещё и видеоинструкция по применению.

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

Блог им. AlgoTrader1 |Строковый тип данных string в языках MQL4 и MQL5

Всех приветствую. Продолжаем изучение языка MQL4. В прошлый раз мы говорили о вещественных  типах данных, а сегодня поговорим о строковом типе. Начать следует с того, что из себя представляет строка. Строка – это последовательность из юникод-символов. Таблица юникод-символов включает в себя очень много символов, хотя в практическом использовании строк, скорее всего, мы будем пользоваться только теми символами, которые видим на клавиатуре. Сюда входят и буквы, и цифры и знаки пунктуации. Как раз строковый тип данных string и позволяет хранить последовательности из таких символов.  

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



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

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

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

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

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

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



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

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

Всех приветствую. Продолжаем цикл уроков по MQL4.

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

Список целых типов данных в MQL4 выглядит следующим образом:

  • char
  • uchar
  • bool
  • short
  • ushort
  • int
  • uint
  • color
  • long
  • ulong
  • datetime

Кстати, в языке MQL5 типы данных такие же, так что содержание поста можно смело отнести и к целым типам данных в MQL5.

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

  • обсудить на форуме:
  • MQL5,
  • MQL4

Блог им. AlgoTrader1 |Типы данных и переменные в MQL4

Господа, всех приветствую. Продолжаем цикл изучения MQL4. В прошлый раз мы знакомились с синтаксисом языка MQL4. (Прошу модератора вернуть ту тему в АЛГО-раздел. Она там уже была, но вылетела после редактирования поста и исправления опечатки.)

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

Если бы Вам задали вопрос: «Что делает абсолютно любая программа?», — не конкретизируя, о какой программе идёт речь. Наверняка, Вы бы ответили: «Любая программа оперирует данными, то есть берёт некоторые исходные данные и производит с ними действия, предусмотренные алгоритмом программы, после чего в каком-то виде возвращает результат этих действий». Вы были бы совершенно правы. Действительно, программы занимаются обработкой данных и торговые роботы или советники здесь не являются исключением.

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



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

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

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

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

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

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

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

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

Блог им. AlgoTrader1 |Типы программ и вспомогательных файлов на языке MQL4

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

В прошлом посте мы познакомились со средой разработки MetaEditor, в которой и происходит процесс набора кода программ для терминала MetaTrader. Теперь неплохо было бы разобраться с тем, какого рода программы и вспомогательные файлы можно написать на языке mql4.

В этом нам поможет «Мастер MQL4». Чтобы его запустить, достаточно в MetaEditor’e в меню «Файл» выбрать команду «Создать», либо нажать на соответствующую кнопку на панели инструментов, которая находится прямо под главным меню, либо зажать комбинацию горячих клавиш Ctrl + N. Любое из перечисленных действий запустит «Мастер MQL4». Он хорош не только тем, что помогает создать заготовку будущей программы, но он ещё и размещает её в правильном каталоге для выбранного типа программы или файла.
Мастер MQL4

После этого перед нами предстанет выбор из 6 возможных вариантов:

  1. Советник (шаблон)
  2. Пользовательский индикатор
  3. Скрипт
  4. Библиотека
  5. Включаемый файл (*.mqh)
  6. Новый класс


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

Блог им. AlgoTrader1 |Настройка редактора программного кода MetaEditor для разработки советников / индикаторов / скриптов под платформы МТ4 и МТ5

Всех приветствую.
Решил завести свой блог на смартлабе и делать публикации на тему алгоритмической торговли. Буду время от времени постить материалы посвящённые программированию на языках mql4 и mql5 под торговые платформы MetaTrader 4 и 5 соответственно.

Материалов по этим языкам в интернете предостаточно, но большая часть видеоуроков от разных авторов, и от меня в том числе, записывалась до 600 билда терминала МТ4, когда он и претерпел значительные изменения. Именно тогда в mql4 и появилось объектно-ориентированное программирование и в целом язык изменился. Не то чтобы старые видеоуроки полностью утратили актуальность, но часть программного кода, написанного в старых версиях mql4 без ошибок и предупреждений успешно не перекомпилируется в современной версии редактора. Поэтому решил обновить цикл видеоуроков по mql4 с перспективой дальнейшего перехода на mql5. 

Конечно самым мощным ресурсом для изучения mql является официальное сообщество. Но там манера подачи скажем так: «От программистов — для программистов». Абсолютному новичку в программировании вообще и в mql в частности, пользоваться только справочной документацией будет затруднительно. Я же стараюсь доносить информацию максимально просто, доходчиво и с примерами. 

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

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