Заработать на ФОРЕКС
Вторник, 16.04.2024, 23:21
Всё для прибыльной торговли на FOREX!
Главная | Добавить в избранное | Сделать стартовойфорекс советники
Меню сайта
Категории раздела
Уроки по MQL4 [14]
Лучшие брокеры
форекс бесплатно заработок в интернете Виртуальный выделенный сервер для Форекс Виртуальный выделенный сервер для Форекс Виртуальный выделенный сервер для Форекс заработок в интернете заработок в интернете
Друзья сайта
Поиск
Наш опрос
Рейтинг брокеров
Всего ответов: 2096
Термины ФОРЕКС
<a href="http://instaforex.com/ru/" rel="nofollow">Форекс портал</a>
Главная » Статьи » Уроки по MQL4 » Уроки по MQL4


MQL4 УРОК 7 – Функции

MQL4 УРОК 7 – ФункцииMQL4 УРОК 7 – Функции


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

Итак, начнём седьмой урок.

В чём смысл функций ?

Функция очень похожа на мясорубку - вы кладёте в неё мясо, лук, специи и получаете фарш.
Мясо, лук и специи называются параметрами функции (входными параметрами функции), фарш - возвращаемое значение. А механизм мясорубки - тело функции.
Есть только одно различие между функциями и Вашей мясорубкой: некоторые функции возвращают НИЧЕГО (в MQL4 ничего называется словом void).
Пример:

Как Вы видите выше, функция начинается с типа возвращаемого значения "double”, за ним следует имя функции, после которого идут круглые скобки.
Внутрь скобок Вы кладёте мясо, лук и специи, точнее параметры функции.
В данном случае – три параметра: double a, double b, double c.
Затем идёт тело функции, которое заключено в фигурные скобки.
В данном примере, тело функции выполнит операцию (a*b + c).
Ключевое слово return ответственно за возвращение итого результата.

Ключевое слово return

Оператор return (); завершает работу функции (как break; завершает работу цикла), и передаёт контроль в точку вызова функции (об этом скоро).
Оператор return (); может содержать выражение в своих скобках, как в нашем примере. Это означает, что надо завершить работу функции и вернуть результат вычисление этого выражения.
Или оператор return (); может не содержать выражения в своих скобках. Тогда его единственная задача – завершить работу функции.
Внимание: не все функции используют оператор return (); Особенно, если возвращаемого значения нет, как в следующем примере:

Эта функция не вернёт никакого значения, но она напечатает параметр s, который Вы ей предоставите. Чтобы показать, что функция ничего не возвращает, используется "void” в качестве её возвращаемого значения.
В некоторых языках программирования такие функции называются "методам”, но в MQL4 они всё равно функции.

Вызов функции

Теперь, я надеюсь, мы понимаем, что такое функция. Как же использовать функции в Вашей программе?
Есть ещё один шаг, который нужно для этого сделать.
Этот шаг называется вызовом функции (её использованием).

Допустим, у Вас есть функция, которая возвращает сумму двух integer.
Вот она:

Вы хотите ей воспользоваться в своей программе.
Делается это так:

В этом примере на экран распечатается 25. Магия! Но как компьютер узнал, что печатать?
Магической является строчка int sum = collect(a,b); Здесь Вы объявили переменную sum, чтобы в неё положить возвращаемое значение, а затем дали функции на вход два параметра (a,b).

Вы просто-напросто вызвали функцию.

Когда MQL4 видит имя функции в Вашей программе, он берёт Ваши параметры и идёт к функции, после чего он возвращается с результатом и кладёт его на то же место.
На самом деле, происходит следующее: в процессе компиляции MQL4 заменяет строчку с вызовом функции в вашей программе целиком телом самой функции (с учётом Ваших параметров). Причём вместо оператора return(); MQL4 производит присваивание возвращаемого им значения в подготовленную Вами переменную.

Вложение функций друг в друга

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

В этом примере мы вызвали функцию collect внутри функции print_collection и распечатали результат. void означает, что возвращаемого значения нет (ещё помните?).

Спец. функции MQL4: init(), deinit(), start().

В MQL4 любая программа начинает своё выполнение с функции "init()” (initialize) и она срабатывает, когда Вы перетаскиваете программу (советника или индикатор) на график MetaTrader или если Вы поменяете валюту или период графика. Задача этой функции заключается в инициализации основных переменных, необходимых для работы Вашей программы. (Больше об инициализации переменных Вы узнаете в следующем уроке).

Когда Ваша программа заканчивает свою работу, или Вы закрываете окно графика, или меняете валюту или период графика, или закрываете терминал, срабатывает функция "deinit()” (de-initialize).

Третья функция (самая важная) "start()” срабатывает каждый раз, когда приходят новые котировки. 90% своей программистской жизни Вы проводите внутри этой функции.

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



Категория: Уроки по MQL4 | Добавил: Profit (01.10.2013)
Просмотров: 4654 | Теги: MQL4, скачать mql4, mql4 советники, индикаторы mql4, mql4 com, mql4 ru, mql4 программирование, mql4 учебник, язык mql4, mql4 +для чайников | Рейтинг: 5.0/2

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш выбор брокеров
форекс скачать форекс бесплатно заработать на форекс форекс советники

форекс стратегии


VPS для Форекс
vps сервер для форекс
Заработать на ФОРЕКС
памм инвестирование
Форекс обзор
Наша кнопка
Установите нашу кнопку себе на сайт

Форекс советники

Торговые сессии
Котировки Sell/Buy
Журнал
FOREX MAGAZINE
Форма входа
Статистика
vps для форекс vps для форекс сервер для форекс
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Торговля на финансовых рынках сопряжена с риском. Все материалы носят исключительно ознакомительный характер. Администрация сайта не несет ответственности за принимаемые Вами решения.
Copyright Profit © 2010 - 2024

Облако тегов: форекс для начинающих форекс для начинающих видео форекс для новичков форекс для тебя форекс анализ технический анализ форекс прогноз форекс аналитика форекс видео брокеры форекс лучшие брокеры форекс надежный брокер форекс Волновой форекс анализ и прогноз Форекс аналитика от Trading Central советники форекс бесплатно советники форекс бесплатные советники форекс vps для форекс форекс сервер ПАММ памм счета волновой анализ форекс волновой анализ рынка форекс волновой анализ волновой анализ рынка волновой анализ эллиотта волновой анализ элиота аналитика рынка форекс аналитика форекс форекс аналитика прогнозы аналитика форекс на каждый день аналитика форекс на сегодня trading central заработок на форекс лучшие советники форекс форекс советники бесплатно Форекс советник аналитика форекс прогноз ежедневная форекс аналитика форекс новости аналитика прибыльные советники форекс советники форекс скачать торговый советник форекс советники форекс отзывы советники форекс скачать бесплатно советники форекс 2019 лучшая аналитика форекс технический анализ форекс анализ рынка форекс Анализ Форекс фундаментальный анализ форекс свечной анализ форекс нелинейный волновой анализ волновой анализ эл технический анализ рынка форекс прогноз форекс прогноз доллара форекс прогноз рынка форекс прогноз курса форекс прогноз форекс на сегодня прогноз евро форекс прогноз валют форекс графический анализ форекс свечной анализ на форекс Фундаментальный прогноз валюты форекс анализ форекс на сегодня прогноз евро доллар форекс технический анали прогноз форекс 2017 волновой анализ usd прогноз форекс евро анализ фигур форекс волновой анализ сегодня анализ форекс евро доллар форекс анализ евро волновой анализ доллар прогноз доллара на форекс сегодня прогноз курса доллара форекс рынки сегодня волновой анализ артем гелий форекс прогноз прогноз форекс гелия волновой анализ павелко анализ форекса сегодня волновой анализ форекс на сегодня анализ рынка форекс на сегодня роман павелко волновой анализ прогноз форекс гелий волновой анализ онегин технический анализ рынка фор прогнозы на золото форекс волновой анализ рынка форек прогноз фо анализ форекс книги прогноз курса валют на форекс доллар на форекс прогноз сегодня форекс прогноз сентябрь анализ валют форекс анализ графиков форекс ежедневный анализ форекс