Программирование роботов и советников mt4 и mql

Язык программирования MQL5

MetaQuotes Language 5 (MQL5) — язык программирования приложений для автоматизации трейдинга, разработанный MetaQuotes Software Corp. Синтаксис языка MQL5 сходен с языком С++ с некоторыми исключениями.

На языке MQL5 пишут технические индикаторы, торговые роботы, советники и другие приложения для трейдинга на рынке форекс. MQL5 программирует в формате объектно-ориентированного программирования (ООП). Для программы на MQL5 создана специальная среда MetaEditor и хранилище MQL5 Storage.

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

В языке MQL5 возможны разные операции и выражения. Операторы языка MQL5 представляют собой алгоритмы решения задач, которые формируют тело задачи. Функциями записывается программный код.

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

В языке MQL5 есть специфическая подсистема компилятора, которая осуществляет предварительную подготовку исходного текста программы перед компиляцией. С помощью препроцессора в MQL5-программы вносятся функции, объявляются константы, вставляются файлы и так далее.

Как использовать язык MQL5

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

В языке MQL5 три основных вида программ — скрипт, индикатор, советник. Один скрипт однократно запускается на ценовом графике, после выполнения своих задач он останавливается. Также скрипт может работать, выполняя одну операцию, в формате бесконечного цикла, пока не будет остановлен трейдером.

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

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

Язык MQL5 позволяет создавать собственные модули для сборки торговых роботов посредством Мастера MQL5.

Программы на MQL5 создаются по событийной модели. Они реагируют на какое-либо событие, — изменение цены, реализацию ордера, изменение таймфрейма и других.

Как написать советника на MQL5

Язык MQL5 содержит все необходимые элементы для написания советников — Expert Advisors. В общих чертах пошагово это выглядит так. Запускаем MetaEditor через торговый интерфейс MT5 (рис. 1) (загружается на компьютер одновременно с торговым сервисом), например, кликнув на соответствующий значок или на клавишу F4 на клавиатуре. Появится, собственно, редактор (рис. 2):

Язык программирования MQL5

Основы языка программирования MQL5

В MetaEditor кликнем на кнопку «Создать» и появится соответствующее окно со списком тех приложений, которые можно создать в редакторе (рис. 3)

Как использовать язык MQL5

Рис. 3

В этом окне представляется на выбор «Советник (шаблон)» и «Советник (сгенерировать)». Выбираем и кликаем на кнопку «Далее». И в том, и в другом случае появится окно, в котором нужно сначала дать имя создаваемому советнику (рис. 4) и можно написать ссылку на свой сайт, электронную почту в поле «Имя»:

Как написать советника на MQL5

Рис. 4

В варианте с шаблоном, кликнув на кнопку «Добавить», нужно выбрать те параметры, которыми должен будет обладать советник (рис. 5). Выбранные параметры можно и удалить, кликнув на соответствующую кнопку.

MQL5 программирование для форекс

Уже на этом этапе от трейдера требуется обладание устойчивыми навыками и программирования, и понимания трейдинга.

Выбрав параметр, нужно кликнуть «Далее», появится окно, в котором будет предложено выбрать обработчики событий для советника (рис. 6).

MQL5 форекс роботы и советники

Продолжая создание советника, кликнув «Далее», надо будет выбрать ещё обработчики событий тестирования и нажать кнопку «Готово», после чего появится шаблон кода (рис. 7) с заданными трейдером параметрами.

Руководство по языку MQL5

Рис. 7

В шаблон кода вносятся дополнительные параметры в соответствии с правилами, которые указаны в подробном руководстве по языку MQL5.

Если после вызова мастера MQL выбрана функция «Советник (сгенерировать)», то далее поэтапно выбирается имя (в параметрах уже указаны символы и таймфрейм), добавляются параметры для сигналов, добавляются параметры трейдинга, параметры управления капиталом (рис. 8) и после нажатия кнопки «Готово» появится шаблон кода.

MQL5 программирование

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

Сообщество трейдеров и форум

Все вопросы по освоению и применению MQL5 рассматриваются на страницах комьюнити. В частности, https://www.mql5.com/ru/forum — форум трейдеров, в котором можно найти ответы если не на все, то на подавляющее большинство вопросов.

Проблема в том, что форум очень большой и требуется время для того, чтобы найти нужную информацию. Вопросы от тех, кто только начинает освоение языка, рассматриваются по этому адресу: https://www.mql5.com/ru/forum/6343

Также на сайте MQL5 есть библиотека статей о языке по адресу: https://www.mql5.com/ru/articles

Но начинать изучение языка оптимально со справочника MQL5 — https://www.mql5.com/ru/docs

В сообществе MQL5 можно просто купить советника, попросить разработать робота или предложить своего советника на продажу.

Торговые сигналы при помощи советников, размещенных на сайте MQL5

На сайте MQL5 есть раздел сигналов для MetaTrader 5 для автоматической торговли https://www.mql5.com/ru/signals. Прежде всего нужно ознакомиться с правилами раздела.

На сайте можно зарегистрироваться как в качестве подписчика, так и в качестве продавца сигналов. Подписка может быть платной или бесплатной, и она позволяет применять торговые сигналы на собственном торговом счете. При этом каждый участник MQL5.community может представить свой сигнал в бесплатное пользование другим трейдерам.

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

Пользователь выбирает сигналы в соответствии с критериями максимальной прибыльности, надежности, рейтингом и так далее. Также он может выбрать новый сигнал.

Торговые сигналы при помощи советников, размещенных на сайте MQL5

Система также подбирает сигналы по требованиям пользователя для определенных форекс брокеров или ищет сигналы по их автору. Стоит отметить, что сервис указывает отказ от ответственности за работу сигналов (рис. 9) — трейдер подписывается на сигналы только на свой страх и риск.

Какого советника выбрать

MQL5.community предлагает обширный выбор советников и торговых роботов с исходными кодами: https://www.mql5.com/ru/code/mt5/experts. На сайте два раздела — советники, предназначенные для MetaTrader5 и советники, предназначенные для MetaTrader4. В сервисе можно также скачать индикаторы, скрипты и библиотеки.

Советник можно выбрать в соответствии с упрощенным рейтингом: справа от списка советников — два раздела: последние/лучшие. Лучшие выбираются по оценке пользователей. Кроме того, оценка роботов указывается справа от каждого из них звездочками от 1 до 5. Кстати, пользователь может добавить в список свой код для скачивания пользователями.

Но советника можно заказать и под свои требования, для этого есть фриланс-биржа: https://www.mql5.com/ru/job, или просто купить (или скачать бесплатно) в магазине торговых роботов: https://www.mql5.com/ru/market. Там же можно выставить робота на продажу.

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

Полезные материалы

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

Довольно велик выбор книг по данной теме, в частности, «Учебник (справочник) по языку программирования MQL5» Т. Машнина (скачать бесплатно), есть бесплатные видеокурсы и многочисленные уроки энтузиастов на форумах трейдеров. Материалы предназначены не только для начинающих, но и для пользователей, которые хотят углубить свои знания.

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

Кстати, поскольку язык MQL5 близок языку C++, то многие опытные пользователи рекомендуют для начала почитать книги по C++, как, например, Bronson G.J. A First Book of C++, Девис Стефан Р. «C++ для чайников», Липпман С. «C++ для начинающих», Пахомов Б Н. «С/С++ и МS Visual C++ 2010 для начинающих» и другие — все эти книги без труда можно скачать в интернете. Освоение MQL5 особых трудностей не составит, — после освоения C++.

Выводы

Язык MQL5 — хорошо зарекомендовавший себя инструмент для написания трейдерских программ с огромными возможностями. При этом в интернете можно встретить заявления о том, что язык MQL5 — легкий в освоении и его можно освоить «с нуля» даже за месяц. Есть очень большие сомнения в подобных утверждениях.

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

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

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

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

Отзывы

  • Kornet Mackormik

Сайт MQL5 это развод. Пользуясь монополией, занимаются агрессивной рекламой, в последнее время появилась в терминале в правом верхнем углу на красном фоне единичка которая первое время бросалась в глаза и мешала работать так как для плодотворной работы в форекс нужно быть сосредоточенным на работе а не отвлекаться на разные рекламы. Уведомления о торгах и закрытиях рынка начали давать на английском языке, снова таки отвлекая от работы. Когда я высказал сомнения на форуме меня просто забанили до 2030 года не удостоившись написать причину бана. Кстати сказать что модератор кроме того что с не очень мягко говоря высоким интеллектом так еще и допускает грамматические ошибки и оскорбления. С так называемыми програмЁрами столкнулся лично когда изучал язык программирования. Задал вопрос почему не получается сделать так-то и так-то, на что мне дали готовый код. Когда я попросил пояснить почему так написан код а не так как я писал, ответ получил как прямой в челюсть, написали что бы пользовался тем кодом что дали. То есть программист сам не понимает в программировании ничего, а просто готовые коды берет и пишет совы, индюки и все остальное. Естественно что после таких программистов толком ничего не работает. Я не говорю за всех программистов, но большинство именно такие. По этому мораль такова. Прежде чем доверять написанному, а тем более купленному советнику нужно критически оценить предлагаемый продукт. В доказательство написанного выше прикрепляю скриншот моей странички на которой видно бан.

видео, как мошенники с MQL5 подделывает статистику и разводят подписчиков. https://www.youtube.com/watch?v=h9bEzoivCLU&t=117s

Mql5 — мошенники. сайт MQL5 — подделывает торговую историю торговых счет, торговые позиции, которые опубликованы в торговой истории на сайте MQL5 не соответствуют торговым позициям, которые в торговой платформе mt4. Сайт MQL5 может показывать на своем сайте только позиции с прибылью, а позиции с потерями, которые в торговой истории платформы, сайт MQL5 может не отображать. Отсюда получается идеальная ежемесячная торговая история, а после публикации, счет сгорает вместе с подписчиками в течение 1-2 месяца.
Так же, просадка по счету публикуется только с момента регистрации счета на сайте MQL5, а не с торговой истории. если просадка по счету была 90%, сайт MQL5 не будет показывать это в торговой истории, а покажет просадку, со дня регистрации счета на сайте MQL5.
Поэтому на сайте множество торговых счетов с максимальной просадкой 2-10%, а ежемесячная прибыль 100-250% в месяц. Сайт MQL5 не уведомляет об этом подписчиков, тем самым вводя трейдеров в заблуждение.За это, трейдеры, кто потерял свои деньги на сайте MQL5, копируя торговые сигналы, вправе требовать от сайта MQL5 возврата потерянных средств и компенсацию в судебном порядке.
По поводу торговых роботов, это просто один и тот же алгоритм, которые открывает торговые позиции автоматически, наугад. Затем администрация сайт меняет название робота, загружает новое фото обложки, пишет в рекламе обновленный робот, а продает один и тот же алгоритм, которые открывает позиции наугад. Подумайте логически, если торговый робот продаваемый на сайте MQL5 может хорошо торговать, зачем сайту MQL5 продавать этого робота за 50-100$? Почему сайт MQL5 не занимается самостоятельной торговлей? Потому что этот робот взорвет ваш депозит в течение месяца.

    Константин 12 июля 2019 в 09:47

Ну по поводу того что сайт продает экспертов, можно и поспорить. Они являются только площадкой через которую продают программы программисты. И за это с продажи снимается процент в пользу сервиса. А торговую историю могут править в ДЦ, и публиковать свои сигналы. Они так-же поделятся процентом с сервисом. А основную прибыль заберут себе.
Так что не нужно рубить с плеча не разобравшись в суте вопроса.

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

Программирование форекс-роботов без знания языка MQL4

Программирование советников форекс

Эта статья будет интересна в основном трейдерам, а также форекс-инвесторам для расширения кругозора. Как известно, сколько трейдеров – столько и стратегий. Причем множество интересных стратегий не смогли стать достоянием широкого трейдерского сообщества лишь по той причине, что не были автоматизированы. А не были автоматизированы они в связи с тем, что разработчики стратегии не владели навыками пользования языком программирования – в бум автоматизации многие стратегии становятся известными в виде торговых роботов.

Конечно, знание языка программирования MQL версий 4 или 5 – это значительный шаг вперед для трейдера. Язык программирования позволяет создать собственный индикатор технического анализа, написать скрипт или торговый советник. А преимущества автоматической торговли общеизвестны – это и отсутствие влияния эмоций, и большее количество свободного времени. В этой статье мы рассмотрим вопросы и различные подходы к программированию торговых роботов:

  • Программирование роботов с помощью языка MQL;
  • Модификация кода существующей механической торговой системы;
  • Программирование советника с помощью специальных программ.

Создание программных кодов

курс ленивого инвестора

Важно! Я веду этот блог уже почти 10 лет. Все это время я регулярно публикую отчеты о результатах публичных инвестиций. Сейчас мой публичный инвестпортфель — более 5 000 000 рублей.

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

Если вам интересна практика и какие инвестрешения в моменте принимаю лично я, то вступайте в Клуб Ленивого инвестора.

Хорошую базу для познания MQL создает владение языком программирования «С++», но и без этих знаний язык MQL хорошо поддается изучению. Многие рядовые трейдеры, изучающие язык самостоятельно, считают, что для написания несложных скриптов и программ достаточно самостоятельного изучения языка программирования в течение недели.

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

Программирование роботов, в большинстве случаев, производится в специальном разделе торгового терминала MetaTrader4 – MetaEditor. Это многофункциональный и удобный специализированный редактор, с помощью которого можно самостоятельно создавать любые торговые алгоритмы.

Создание программных кодов MetaEditor

Достоинством редактора является то, что созданные алгоритмы могут быть запущены сразу после создания, так как они автоматически появляются в торговой платформе. MetaEditor в МТ4 обладает такими характеристиками, как:

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

Помимо встроенного редактора МТ4 существует еще множество платформ для программирования советников с использованием языка С++. Например, платформы WealtLab, StockSharp и TSLab обеспечивают реализацию сразу всех этапов создания экспертов, включая их тестирование.

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

Платформа StockSharp

Платформа TSLab представляет собой визуальный редактор, собирающий торговый советник из функциональных блоков. Блоки написаны на языке С#, но их код в процессе программирования скрыт от пользователя. Существует и возможность использования языка C# и комбинирования программирования с визуальным редактором. Так можно дописывать отсутствующие в стандартном наборе элементы.

Платформа TSLab

Промежуточной по функционалу, между платформами StockSharp и TSLab является платформа WealtLab. Она имеет визуальный редактор, правда, не очень хорошо развитый, и возможность использования языка программирования. Достоинством является отличный тестер стратегий.

 платформа WealtLabМодификация советника

Более простым способом, но также требующим знания языка программирования, является модификация кода существующего советника под собственную стратегию. Для этого подбирается торговый робот, близкий по функционалу необходимому. При этом необходимо обеспечить соответствие по типу советника и используемым средствам технического анализа. С помощью модификации возможно добиться ускорения работы системы, произвести добавление алгоритмов управления, индикаторов, правил. Модификация так же осуществляется в интегрированном редакторе MetaEditor.

Программы для создания эксперта

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

Одной из таких программ является Forex EA Generator, реализующая блочную схему построения эксперта. Программа предполагает наличие минимальных знаний проектирования механических торговых систем.

Программы для создания эксперта

Программа Gordago Forex Optimizer разработана с функционалом, приближенным к торговой платформе. Помимо создания советника она позволяет тестировать разработку на истории, а так же осуществлять с ее помощью торговлю, в случае наличия доступа к торговым серверам. Работа с программой интуитивно понятна – начало работы начинается с задания условий входа в рынок и выхода из него, задания инструментов анализа рынка. Функционал программы позволяет использовать разработанные эксперты в МТ4.

Программа Gordago Forex Optimizer

Полностью в автоматическом режиме эксперты создаются в программе Hlaiman EA Generator. Программа работает с торговой платформой МТ4. Для создания эксперта необходимо добавить на график желаемые инструменты технического анализа и нанести на график стрелки, указывающие места и направления входа в рынок, где осуществил бы вход сам трейдер. После этого программа самостоятельно просчитывает заданные условия входа и разрабатывает алгоритм робота. При этом качество отработки условий входа зависит от качества и количества заданных точек – они должны расставляться строго в соответствии с разработанной стратегией и таких точек должно быть нанесено максимальное количество. К сожалению, программа отсутствует в свободном доступе, что не позволяет провести тестирование созданных с ее помощью советников.

 программа Hlaiman EA GeneratorЗаключение

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

Тема: учимся писать советника

Посмотреть профиль Сторожила форума Регистрация 15-12-10 Сообщений 930

При работе на валютном рынке трейдер сталкивается с многочисленными расчетами , кроме того эта работа требует к себе постоянного внимания . Облегчить жизнь трейдеров может советник (робот , атс) . Но работа программистов как правило стоит денег , причем цена растет пропорционально качеству исполнения. Есть вариант написать советника самому и в этой теме я покажу как это проще сделать человеку незнакомому с программированием .

Посмотреть профиль Сторожила форума Регистрация 15-12-10 Сообщений 930

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

Посмотреть профиль Авторитет Регистрация 02-12-10 Сообщений 2074

Очень классная мысль такую тему расписать. Хотел бы очень научится писать советники. А не лучше начать вообще со всяких возможных значений параметров, точней всяких переменных и констант. или как там, или это не важно?

Посмотреть профиль Сторожила форума Регистрация 15-12-10 Сообщений 930

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

Посмотреть профиль Авторитет Регистрация 02-12-10 Сообщений 2074

хмм. я когда-то учил программирование в школе, так я не представляю как там с переменными. Ну вот давайте допустим разберем самый простой момент. Открываем сделку на пересечении двух МА с заданным периодом. =) Давайте учиться, я только рад)))

Посмотреть профиль Сторожила форума Регистрация 15-12-10 Сообщений 930

открываем MetaEditor (желтый значек в терминале, рядом с кнопкой советники), там файл ___ новый , в выпавшем меню выбираем эксперт , потом вписываем название и нажимаем ок . если все сделали правильно то вы должны увидеть начальный код
//+——————————————————————+
//| учебный.mq4 |
//| Copyright © 2011, MetaQuotes Software Corp. |
//| |
//+——————————————————————+
#property copyright «Copyright © 2011, MetaQuotes Software Corp.»
#property link

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

Посмотреть профиль Сторожила форума Регистрация 15-12-10 Сообщений 930

int start() когда в терминал приходит новый тик программа начинается именно с этой строки
//—-
почти весь прграммный код у нас будет находиться внутри значков отмеченных красным цветом
//—-
return(0);
>
//+——————————————————————+

Посмотреть профиль Сторожила форума Регистрация 15-12-10 Сообщений 930

первое что необходимо сделать это обьявить переменную . переменная это ячейка памяти в которой будет храниться информация , наглядно ее можно представить в виде коробочки в которую кладутся буквы, цифры , символы. есть несколько типов переменных в зависимости от того какие данные мы будем записывать . переменная обьявляется так :
int signal=0;
где int — это тип переменной в которой будут содержаться только целые числа (есть еще double — дробные , string — текст bool — значения «да» или «нет», datetime — время )
signal — это назавние переменной , его придумываем сами , желательно не очень длинные
=0 — это значение которое записывается в переменную при ее создании
; — означает конец команды
дальше нам в зависимости от положения скользяших средних нужно записать в эту ячейку (переменную), либо значение 1(при сигнале на повышение) , либо значение (-1) (при сигнале на понижение). 0 будет означать что сигнала нет
в коде это будет выглядеть так:
if (
iMA(symbol(), period(),30, 0 ,MODE_SMA,PRICE_CLOSE, 0) >iMA(symbol(), period(),60, 0 ,MODE_SMA,PRICE_CLOSE, 0)&&
iMA(symbol(), period(),30, 0 ,MODE_SMA,PRICE_CLOSE,1) )
signal=1;
>

if (
iMA(symbol(), period(),30, 0 ,MODE_SMA,PRICE_CLOSE, 0) iMA(symbol(), period(),30, 0 ,MODE_SMA,PRICE_CLOSE,1) >iMA(symbol(), period(),60, 0 ,MODE_SMA,PRICE_CLOSE, 1)
)
signal=(-1);
>
теперь что это все обозначает:
if — это команда условия (в переводе «если») в чистом виде она выглядит так
if( )
< >
выполняется она следующим образом: если то что записанно внутри круглых скобок — правда, то выполняется то что записанно внутри фигурных скобок , если нет , то выполнение программы продолжится с команды стоящей за фигурными скобками.
iMA (symbol(), period(),30, 0 ,MODE_SMA,PRICE_CLOSE, 0) — это ячейка памяти в которой хранятся данные об индикаторе MA
где :
symbol() — означает что индикатор расчитывается для пары на которой стоит советник , вместо symbol() можно написать например «EURUSD» тогда в ячейке всегда будут содержаться данные о значании индикатора по паре евро/усд (независимо от того на какой паре работает советник)
period() — означает что индикатор расчитывается для того периода графика , на котором стоит советник если например у нас стоит Н1 то индикатор будет расчитываться для часавого , если мы на графике переключимся на другой период то индикатор будет расчиываться для него , я рекомендую привязывать расчеты к конкретному периоду, для этого вместо period() , можно написать количество минут для одного бара нужного периода , например если мы хотим что бы индикатор всегда расчитывался для пятьнадцатиминутки вместо period() записываем 15, для Н4 записываем 240
далее 30, 0 ,MODE_SMA,PRICE_CLOSE это настройки индикатора 30 — период усреднения, 0 — сдвиг, MODE_SMA — метод , PRICE_CLOSE к какой цене применять .
0 — означает что мы получаем данные об индикаторе именно с текущего бара , если поставить 1 то будет расчитываться значение прошлого бара 2 позапрошлого и т.д.
теперь переводим на человеческий язык то что записанно кодом
если
(
текушее значение ма с периодом 30 больше текушего занчения ма с периодом 60 и(в коде «и» пишется &&)
прошлое значение ма с периодом 30 меньше прошлого значения ма с периодом 60
)
записываем в переменную signal значение 1
>
теперь у нас при пересечении скользящих средних (быстрая пресекает медленую снизу вверх) в ячейку signal будет записываться значение 1
анологично с сигналом на понижение .
если есть вопросы , задавайте

Источник https://eto-razvod.ru/mql5-programming/

Источник https://smfanton.ru/forex/programmirovanie-robotov.html

Источник https://traders-union.ru/forexforum/showthread.php?t=531

Читайте также:

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

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

span.hidden-link { color: #DCDCDC; /*-цвет ссылки-*/ text-decoration: underline; /*-подчеркивание-*/ cursor: pointer; /*-указатель в виде пальца-*/ }