Советник FOREX: от идеи до результата

Редактор MetaEditor

MetaEditor – это современная среда разработки торговых стратегий, интегрированная с платформой MetaTrader. С помощью MetaEditor можно создавать программы для алгоритмического трейдинга на языках MQL4 и MQL5: торговых роботов, технические индикаторы, скрипты, графические панели управления и многое другое.

Такими вышеприведёнными словами начинается «Руководство пользователя». Эта справка вызывается нажатием клавиши F1. Рекомендуется к прочтению.

Также рекомендуется прочитать «Справочник MQL4». На основе этой документации написан код нашего первого торгового робота, поэтому будут частые отсылки на его онлайновую версию.

Без сомнения рекомендуется вводный курс «Программирование на алгоритмическом языке», его автором является Сергей Ковалёв.

В отличие от вышеназванных трудов наш курс подразумевает «экспресс»-разбор специфических задач и конкретных решений.

Первое знакомство

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

Основы языка

Язык MetaQuotes Language 4 (MQL4) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков.

Синтаксис

Синтаксис языка MQL4 подобен синтаксису С++, за исключением некоторых возможностей.

Комментарии

Многострочные комментарии начинаются парой символов /* и заканчиваются парой */. Данные комментарии не могут быть вложенными.

Однострочные комментарии начинаются парой символов //, заканчиваются символом новой строки и могут быть вложены в многострочные комментарии.

Идентификаторы

Идентификаторы используются в качестве имён для переменных и функций. Длина идентификатора не может превышать 63 знака.

Допустимые символы при написании идентификатора: цифры 0-9, латинские прописные и строчные буквы а-z и А-Z, распознаваемые как разные символы, символ подчеркивания (_). Первый символ не может быть цифрой.

Идентификатор не должен совпадать с зарезервированным словом.

Зарезервированные слова

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

Типы данных

Любая программа оперирует данными. Данные могут быть различных типов в зависимости от назначения.

Например, вы же не станете носить воду в решете. Ну, вот и тут такой же принцип.

Вот некоторые типы данных, которые нам точно понадобятся:

Операции и выражения

Некоторым символам и символьным последовательностям придаётся особое значение. Это – так называемые символы операций, например:

Короче, на деле (в коде) всё будет очевидным.

Операторы

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

Вот некоторые из операторов, которые мы точно будем использовать:

  • составной оператор {}
  • оператор-выражение (;)
  • оператор return
  • условный оператор if-else
  • оператор цикла for
  • оператор break
  • оператор continue

Функции

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

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

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

Переменные

Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором.

Препроцессор

Препроцессор – это специальная подсистема компилятора MQL4, которая занимается предварительной подготовкой исходного текста программы непосредственно перед её компиляцией.

Компилятор MQL4

Для того, чтобы код MQL4-программы выполнялся, его требуется скомпилировать, то есть преобразовать в «машинный язык».

Об этом в следующей части курса.

{Продолжение следует}

Страницы: 1 2 3 4 5 6 7 8 9 10 11

Комментарии 5

  • очень интересно , пожалуйста продолжайте !

  • 1. Тема программирования интересная, в самом деле, хотя бы для расширения кругозора (по меньшей мере).
    2. Касаемо стратегии дневных свечей согласен с автором, что она требует доработки (дополнений, фильтров). Имею некоторый опыт испытаний на истории данной стратегии в следующем виде: вход по вершине (дну) предыдущего дня, защита под свечой входа, по мере движения цены в положительную сторону переносим защиту по свечам предыдущего дня, закрытие по срабатывании защитного приказа. За несколько лет у меня получился ноль (т.е. не убыток).

  • Практически завершил серию статей по теме: «Советник FOREX: от идеи до результата».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *