Язык MQL4 для "чайников". Технические индикаторы и встроенные функции
Это третья статья из цикла "Язык MQL4 для 'чайников'". В первых двух статьях мы познакомились с основами языка MQL4, фундаментом дальнейшего развития. Сейчас мы будем разбираться, как использовать встроенные функции и функции для работы с техническими индикаторами. Последние будут жизненно необходимы при разработке в дальнейшем ваших советников и индикаторов. Кроме того, мы на простом примере посмотрим, как можно отслеживать торговые сигналы для входа в рынок, что бы вы поняли, как правильно использовать индикаторы. А в конце статьи вы узнаете кое-что новенькое и интересное про сам язык.
Математические функцииНачнем с наиболее простых, но все же используемых и полезных математических функций.
MathAbsОчень простая функция, которая возвращает абсолютное значение (модуль числа). Это значит, что, если вы, например, примените ее к отрицательному числу, то в результате получите положительное число.
MathCeil, MathFloor и MathRoundЭти три функции очень похожи между собой: все они округляют число до целого. Но у каждой своя маленькая особенность:
MathCeil округляет таким образом, что, если имеется даже одна тысячная целого (например, 1.001), то это уже считается целым числом. То есть округление происходит в сторону, где получим большее значение. Например:
MathFloor делает тоже, что и MathCeil, с точностью до наоборот. То есть, если нужно округлить положительное число, то оно просто лишиться дробной части:
MathRound позволяет округлить число в привычном для нас с вами смысле. То есть, если дробная часть достаточно большая (0.5 и более), то она будет округлена до 1. Если дробная часть мала (меньше 0.5), то она будет округлена до 0, то есть она просто исчезнет. Примеры:
MathMax MathMinЭто 2 очень похожие функции, которые принимают 2 аргумента, а возвращают соответственно наибольший и наименьший. Примеры:
MathPowЭта функция позволяет возвести число base в степень exponent. Примеры:
MathSqrtНо квадратные корни лучше извлекать с помощью этой функции, так как это ее прямое назначение. Но не вздумайте узнавать корень отрицательного числа, так как вам будет возвращен нуль. Примеры:
MathLogЕще кто-то помнит, что такое логарифм? Логарифм числа a по основанию b равен показателю степени, в которую нужно возвести число b, чтобы получить число a. Широкое применение нашли логарифмы по основаниям e (число Эйлера) — натуральные логарифмы (lna) и по основанию 10 — десятичные логарифмы (lg a). Что бы вспомнить больше, а возможно и узнать что-то новенькое, воспользуйтесь этой ссылкой: http://ru.wikipedia.org/wiki/Логарифм
Так вот, функция MathLog предназначена для извлечения натурального логарифма из числа х. Не нужно узнавать натуральный логарифм отрицательных чисел или нуля. В таком случае вы получите -1. Примеры использования:
MathExpЭта функция возвращает число e, возведенное в степень d. Многие наверняка не помнят про это число. e — математическая константа, основание натурального логарифма, иррациональное и трансцендентное число. e = 2,718281828459045… Иногда число e называют числом Эйлера или неперовым числом. Играет важную роль в дифференциальном и интегральном исчислении. Узнать больше про число Эйлера можно по этой ссылке: http://ru.wikipedia.org/wiki/Число_Эйлера
Если вы укажите слишком большую степень, то произойдет переполнение и будет возвращен нуль. Насколько большой должна быть степень, что бы произошла ошибка? Давайте узнаем это и проделаем небольшой эксперимент:
А происходит следующее: каждый раз мы пытаемся вызвать функцию MathExp и с каждой итерацией степень увеличивается в 10 раз, пока, в конце концов, не произойдет переполнение и не будет возвращен нуль. В результате я получил i=310, что означает: в качестве степени вы можете использовать числа 1*10 в 309 степени (только представьте себе число длиной в 309 цифр!!). Поэтому, я думаю, что про переполнение вы можете не беспокоится.
MathModЭта функция позволяет узнать остаток от деления двух чисел. Например, 5 поделить на 2 равно 2 и остаток равен 1. Первый аргумент value – что делим, второй value2 – на что. И возвращается остаток. Примеры:
MathRand и MathSrandMathRand возвращает одно за другим псевдослучайные целые числа в диапазоне от 0 до 32767. Тут у вас возникает куча вопросов: что значит приставка «псевдо»? Что за странный диапазон, а если мне надо от 5 до 10? Почему именно 32767? Отвечаю по порядку: «Псевдо» означает, что числа не совсем случайные и все же зависят от чего-то. Допустим, вы написали скрипт, который выдает 5 псевдослучайных чисел, например, так:
Так вот, числа действительно будут случайными, но запустив скрипт еще раз, вы заметите, что последовательность будет постоянно повторяться. Это все потому, что существует число, от которого отталкивается функция MathRand. Будем называть его начальным числом. Что бы его изменить, нужно воспользоваться другой функцией – MathSrand. Эта функция принимает единственный аргумент – начальное число, от которого будут зависеть все псевдослучайные числа. Представьте себе, что начальное число – это плод, из которого вырастет дерево (случайные числа). По умолчанию начальное число равно единице. Таким образом, что бы получить действительно случайную последовательность нам нужно сначала присвоить начальному числу уникальное значение. Как это сделать? Есть еще одна функция TimeLocal, которая не имеет аргументов и возвращает количество секунд, прошедших после 00:00 1 января 1970 года. Эта функция идеально подходит, так как в большинстве случаев получим уникальное число. Ну как, еще не запутались? Вот как это выглядит:
Теперь каждый раз будем получать новую последовательность. Поехали дальше. От 0 до 32767. Почему 32767? Смотрите: максимальное значение, которое может принимать int равно 2 в степени 16 (потому что значение переменной типа int занимает 16 бит в памяти компьютера, без учета знака) равно 32768, но так как мы считаем с нуля, то нужно отнять единицу. Вот и получили 32767. Что бы получить любой нужный вам диапазон, нужно воспользоваться оператором % - остаток от деления. Например, если нужно получить случайные числа в диапазоне от 0 до 5:
Обратите внимание, что мы написали MathRand()%6, а не MathRand()%5, это потому, что наш диапазон начинается с нуля, то есть нужно добавить еще единицу. Теперь, допустим, вам нужны случайные числа в диапазоне от 5 до 10:
Аналогично можно получить и диапазон с отрицательными числами, например, от -5 до 5:
Если вам нужны только отрицательные числа, то умножьте результат на -1. Например, нужен диапазон от -10 до -20:
Если вам нужно получить случайное дробное число, например, в диапазоне от 0.0 до 1.0 с точностью до тысячной, то воспользуйтесь таким кодом:
Сначала мы создаем случайное число в диапазоне от 0 до 1000, а потом делим его на 1000.0. Обратите внимание, что делить нужно именно на 1000.0 (с плавающей запятой), а не на 1000(целое). В противном случае получим нуль, так как будет произведено округление.
Тригонометрические и обратные тригонометрические функцииТригонометрические функции - математические функции от угла. Они важны при исследовании периодических процессов. С тригонометрическими функциями тесно связаны обратные им функции. Более подробно про все эти функции можно прочитать: http://ru.wikipedia.org/wiki/Тригонометрические_функции https://en.wikipedia.org/wiki/Trigonometric_function https://en.wikipedia.org/wiki/ArcSin Все эти функции в MQL4 принимают аргумент в радианах, а не градусах. То есть, если вы хотите узнать, чему равен синус 20 градусов, то сначала нужно перевести 20 градусов в радианы, например, так:
То есть 1 градус = пи / 180. Удобно объявить и использовать константу в начале программы, если вы часто используете тригонометрические функции:
MathSin, MathCos, MathTan, MathArcsin, MathArccos и MathArctanОстановимся на особенностях некоторых функций. MathTan принимает значения в диапазоне от -263 до 263, если вы превысите эти ограничения, то получите неопределенное число. MathArcsin и MathArccos принимают значения в диапазоне от -1 до 1, иначе вы получите 0 и соответствующее сообщение в журнале эксперта. MathArctan возвращает 0, если принимает 0.
Новые функции для вывода сообщенийПока вы знакомы лишь с одной функцией для вывода информации - MessageBox. Сейчас мы познакомимся еще с тремя очень похожими функциями, которые обладают своими особенностями.
AlertВыводит диалоговое окно, которое содержит ваши сигналы (информацию). При вызове функции вы услышите специальный звуковой сигнал, который можно изменить или отключить через настройки терминала: Сервис -> Настройки -> вкладка События. Окно будет иметь следующий вид:
Вы можете изменять размеры окна для удобного просмотра большого количества информации. Кроме того, прошлые вызовы функции всегда можно просмотреть, так как они не удаляются. Также вы можете произвести несколько вызовов подряд, и получите окно с активным последним сигналом, при этом не нужно каждый раз нажимать на «ОК». Вы можете использовать функцию подобно тому, как вы используете MessageBox:
Но задумано было по-другому. Предполагается, что вы должны просто перечислить параметры для вывода через запятую. То есть, получается то же самое, что и в примере выше, но вместо «+» нужно использовать «,». Я советую вам использовать второй вариант:
CommentПохожая функция, идентична по использованию, которая выводит сообщение в левый верхний угол графика. При этом не нужно ничего нажимать, что бы код продолжал выполняться. Используйте эту функцию, например, для того, что бы показать текущее состояние. Пример:
PrintЕще одна аналогичная функция, которая выводит сообщения в журнал экспертов:
Кроме того, журнал экспертов сохраняет все сообщения в соответствующем файле (название соответствует дате) на вашем компьютере в папке MetaTrader 4\experts\logs:
Также нужно сделать несколько замечаний, которые касаются всех трех функций. Вы не можете выводить массивы, просто указав их, как параметр. Нужно выводить их поэлементно, например, так:
Вы можете вывести максимум 64 параметра в каждой из этих функций. Каждый вызов функции Alert также записывается в журнал эксперта. Тип double будет выводиться с точностью в 4 цифры после точки.
Технические индикаторыПочти все эксперты используют технические индикаторы. Если посмотреть даже на пример простого советника, который входит в поставку (MACD Sample), то вы увидите, что он использует технические индикаторы. Сейчас вы узнаете, каким образом можно получить показатели всех доступных технических индикаторов. Каждому из них соответствует определенная функция, которая может вычислить показатель на любом доступном инструменте и тайм фрейме. При этом вам не нужно беспокоиться о том, открыт ли сейчас этот индикатор на графике или нет. Это не имеет никакого значения.
Теперь давайте детально остановимся на параметрах функций технических индикаторов. Дело в том, что большая часть из них повторяется. Например, все функции, которые мы сейчас рассмотрим, для вычисления показателей технических индикаторов имеют одинаковые 2 первых аргумента и 1 последний:
- symbol – первый аргумент, который определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. То есть, к какому графику применить технический индикатор. Что бы использовать индикатор на текущем графике, используйте константу NULL (или 0). Под текущий графиком нужно понимать, тот график, на котором вы будете запускать ваш скрипт (эксперт, индикатор). Если вам нужен другой инструмент, то нужно использовать его название в виде строки («EURUSD»,»GBPUSD» и т.д.).
- timeframe – второй аргумент, который определяет, на каком тайм фрейме использовать индикатор. Если вам нужен тайм фрейм, который используется на текущем графике, то используйте 0 (нуль). Если вам нужен какой-то другой тайм фрейм, то воспользуйтесь одной из предопределенных констант:
- PERIOD_M1 - 1 минута
- PERIOD_M5 - 5 минут
- PERIOD_M15 - 15 минут
- PERIOD_M30 - 30 минут
- PERIOD_H1 - 1 час
- PERIOD_H4 - 4 часа
- PERIOD_D1 - 1 день
- PERIOD_W1 - 1 неделя
- PERIOD_MN1 - 1 месяц
Технические индикаторы очень часто используют средние значения по нескольким барам для вычислений. То есть они берут различные цены (открытия, закрытия и т.д.) по нескольким барам и находят среднее значение за каким-то определенным методом. Также часто используется смещение. Поэтому среди параметров можно встретить вот такие:
- applied_price – определяет какой тип цены использовать для получения среднего значения. Есть такие предопределенные константы для выбора используемой цены:
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
- MODE_SMA - простое скользящее среднее
- MODE_EMA - экспоненциальное скользящее среднее
- MODE_SMMA - сглаженное скользящее среднее
- MODE_LWMA - линейно-взвешенное скользящее среднее
Вышеописанные параметры будут встречаться очень часто. Поэтому, когда встретите подобные параметры, вы уже должны понимать, что эта функция использует средние значения для вычисления своих показателей. Что бы узнать, как именно рассчитываются показатели и какое участие принимают средние значения, воспользуйтесь ссылкой, которую можно найти после короткого описания каждой функции.
Еще один важный момент: все эти индикаторы (функции) можно поделить на две категории:
-
простые – когда индикатор имеет всего один показатель. Например: Acceleration/Deceleration (AC), Accumulation/Distribution (A/D), DeMarker (DeM) и т.д. То есть на графике индикатор имеет лишь одну линию/гистограмму, показатель которой и возвращает при вызове соответствующей ему функции. Вот пример нескольких простых индикаторов, используемых на одном графике:
К описанию функций каждого индикатора также будет добавлен поясняющий рисунок, примеры использования (используются различные цвета для того, что бы было видно, что за что отвечает) и ссылка с описанием самого индикатора (как его использовать при торговле, суть индикатора). Предполагается, что вы знакомы с индикаторами и использовали их на практике. Я советую вам один раз прочитать описания функций из этой статьи, что бы понять, как ними пользоваться и посмотреть примеры. Но что бы вспомнить назначение каждого аргумента в дальнейшем, используйте справку из MetaEditor-а. Для этого откройте окно Инструментарий (ToolBox) с помощью горячих клавиш Ctrl+T и перейдите на вкладку Справка (Help). Там разъясняется каждый параметр, кроме того, там есть удобный список всех функций, поэтому вы быстро найдете, то, что ищете. Если справка на английском языке, то его можно переключить на русский через меню View->Languages->Russian. После чего нужно перезапустить MetaEditor.
Acceleration/Deceleration (AC) или Ускорения/ЗамедленияИндикатор Acceleration/Deceleration (AC) или Ускорения/Замедления используется для измерения скорости изменения цены (замедление, ускорение). https://www.metatrader5.com/ru/terminal/help/indicators/bw_indicators/ao
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- shift – определяет, к какому бару применить индикатор.
Индикатор Accumulation/Distribution (A/D) или Накопления/Распределения используется для подтверждения ценовых изменений через измерения объемов. https://www.metatrader5.com/ru/terminal/help/indicators/volume_indicators/ad Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- shift – определяет, к какому бару применить индикатор.
Индикатор Alligator (Аллигатор) - это комбинация 3-ох скользящих средних, использующих фрактальную геометрию и нелинейную динамику. https://www.metatrader5.com/ru/terminal/help/indicators/bw_indicators/alligator Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- jaw_period - период усреднения челюсти аллигатора (синяя линия)
- jaw_shift - смещение челюсти аллигатора
- teeth_period - период усреднения зубов аллигатора (красная линия)
- teeth_shift - смещение зубов аллигатора
- lips_period - период усреднения губ аллигатора (зеленая линия)
- lips_shift - смещение губ аллигатора
- ma_method – определяет метод, который используется для получения средних значений. Предопределены такие константы для выбора метода:
- MODE_SMA - простое скользящее среднее
- MODE_EMA - экспоненциальное скользящее среднее
- MODE_SMMA - сглаженное скользящее среднее
- MODE_LWMA - линейно-взвешенное скользящее среднее
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
- MODE_GATORJAW - линия челюсти аллигатора (синяя)
- MODE_GATORTEETH - линия зубов аллигатора (красная)
- MODE_GATORLIPS - линия губ аллигатора (зеленая)
Посмотрите, за что отвечают аргументы функции, если бы вы установили индикатор Аллигатор на графике. Такая аналогия поможет вам легко сориентироваться:
С помощью параметра mode укажите, что возвращать:
Average Directional Movement Index (ADX) или Индекс Среднего Направления ДвиженияИндикатор Average Directional Movement Index (ADX) или Индекс Среднего Направления Движения используется для определения наличия ценовой тенденции (тренда). https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/admi Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period – количество баров, которые будут использованы для получения среднего значения.
- mode – выбираем линию, значение которой получим. Используем такие предопределенные константы:
- MODE_MAIN - основная линия
- MODE_PLUSDI - линия +DI
- MODE_MINUSDI - линия –DI
С помощью параметра mode укажите, что возвращать:
Average True Range (ATR) или Средний Истинный ДиапазонИндикатор Average True Range (ATR) или Средний Истинный Диапазон используется для определения волатильности рынка. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/atr Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period – количество баров, которые будут использованы для получения среднего значения.
- shift – определяет, к какому бару применить индикатор.
Индикатор Awesome Oscillator (AO) или Чудесный Осциллятор Билла Вилльямса используется для определения движущей силы рынка. https://www.metatrader5.com/ru/terminal/help/indicators/bw_indicators/awesome Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- shift – определяет, к какому бару применить индикатор.
Индикатор Bears Power используется для оценки баланса сил «медведей». http://www.fibo-forex.ru/pages.php?page=1799 Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- applied_price – определяет используемую цену (что будем усреднять). Есть такие предопределенные константы для выбора используемой цены:
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
Индикатор Bollinger Bands (BB) или Полосы Боллинджера используются для определения верхних и нижних границ нормального диапазона колебаний цен. https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/bb Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- deviation – отклонение от основной линии.
- bands_shift - cдвиг относительно цен.
- applied_price – определяет используемую цену (что будем усреднять). Есть такие предопределенные константы для выбора используемой цены:
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
- MODE_UPPER - верхняя линия
- MODE_LOWER - нижняя линия
С помощью параметра mode укажите, что возвращать:
Bulls PowerИндикатор Bulls Power используется для оценки баланса сил «быков». http://www.forexdealer.net/help/bul_hlp.htm Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- applied_price – определяет используемую цену (что будем усреднять). Есть такие предопределенные константы для выбора используемой цены:
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
Индикатор Commodity Channel Index (CCI) или Индекс Товарного Канала используется для измерения отклонений цены инструмента от его среднестатистической цены. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/cci Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- applied_price – определяет используемую цену (что будем усреднять). Есть такие предопределенные константы для выбора используемой цены:
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
Индикатор DeMarker (DeM) используется для прогнозирования разворота цен на основе разницы цен прошлых баров. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/demarker Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- shift – определяет, к какому бару применить индикатор.
Индикатор Envelopes или Огибающие Линии (Конверты) используется для определения границ колебаний цены на основе двух скользящих средних. https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/envelopes Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- ma_period - количество баров, которые будут использованы для получения основной линии.
- ma_method – определяет метод, который используется для получения средних значений. Предопределены такие константы для выбора метода:
- MODE_SMA - простое скользящее среднее
- MODE_EMA - экспоненциальное скользящее среднее
- MODE_SMMA - сглаженное скользящее среднее
- MODE_LWMA - линейно-взвешенное скользящее среднее
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
- MODE_UPPER - верхняя линия
- MODE_LOWER - нижняя линия
С помощью параметра mode укажите, что возвращать:
Force Index (FRC) или Индекс СилыИндикатор Force Index (FRC) или Индекс Силы используется для измерения силы «быков» при каждом подъеме цены и силу «медведей» при каждом спаде. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/fi Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- ma_period - количество баров, которые будут использованы для получения основной линии.
- ma_method – определяет метод, который используется для получения средних значений. Предопределены такие константы для выбора метода:
- MODE_SMA - простое скользящее среднее
- MODE_EMA - экспоненциальное скользящее среднее
- MODE_SMMA - сглаженное скользящее среднее
- MODE_LWMA - линейно-взвешенное скользящее среднее
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
Fractals (Фракталы) — это один из пяти индикаторов торговой системы Билла Вильямса, которые используются для обнаружения впадин или вершин графика цены. Фракталы образуются не на каждом баре. Поэтому, если на каком-то баре фрактал не сформировался, то функция возвращает нуль. https://www.metatrader5.com/ru/terminal/help/indicators/bw_indicators/fractals Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- mode - выбираем линию, значение которой получим. Используем такие предопределенные константы:
- MODE_UPPER - верхние фракталы
- MODE_LOWER - нижние фракталы
С помощью параметра mode укажите, что возвращать:
Gator OscillatorGator Oscillator строится на основе индикатора Alligator и используется для измерения степени схождения или расхождения его линий баланса. https://www.metatrader5.com/ru/terminal/help/indicators/bw_indicators/go Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- jaw_period - период усреднения челюсти аллигатора (синяя линия)
- jaw_shift - смещение челюсти аллигатора
- teeth_period - период усреднения зубов аллигатора (красная линия)
- teeth_shift - смещение зубов аллигатора
- lips_period - период усреднения губ аллигатора (зеленая линия)
- lips_shift - смещение губ аллигатора
- ma_method – определяет метод, который используется для получения средних значений. Предопределены такие константы для выбора метода:
- MODE_SMA - простое скользящее среднее
- MODE_EMA - экспоненциальное скользящее среднее
- MODE_SMMA - сглаженное скользящее среднее
- MODE_LWMA - линейно-взвешенное скользящее среднее
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
- MODE_UPPER - верхняя гистограмма
- MODE_LOWER - нижняя гистограмма
С помощью параметра mode укажите, что возвращать:
Ichimoku Kinko Hyo или Ишимоку Кинко ХайоИндикатор Ichimoku Kinko Hyo или Ишимоку Кинко Хайо используется для определения тренда, уровней поддержки и сопротивления, а также сигналов покупки и продажи. https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ikh Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- tenkan_sen - период усреднения Tenkan Sen.
- kijun_sen - период усреднения Kijun Sen.
- senkou_span_b - период усреднения Senkou Span B.
- mode - определяет, значение чего вы хотите узнать. Что бы выбрать, используйте одну из констант:
- MODE_TENKANSEN - Tenkan-sen
- MODE_KIJUNSEN - Kijun-sen
- MODE_SENKOUSPANA - Senkou Span A
- MODE_SENKOUSPANB - Senkou Span B
- MODE_CHINKOUSPAN - Chinkou Span
С помощью параметра mode укажите, что возвращать:
Market Facilitation Index (BW MFI) или Индекс Облегчения РынкаИндикатор Market Facilitation Index (BW MFI) или Индекс Облегчения Рынка используется для измерения изменений цены на один тик. https://www.metatrader5.com/ru/terminal/help/indicators/bw_indicators/market_facilitation Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- shift – определяет, к какому бару применить индикатор.
Индикатор Momentum или Темп используется для измерения величины изменения цены за промежуток времени. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/momentum Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- applied_price – определяет используемую цену (что будем усреднять). Есть такие предопределенные константы для выбора используемой цены:
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
Индикатор Money Flow Index (MFI) или Индекс Денежных Потоков используется для измерения интенсивности денежных вложений. https://www.metatrader5.com/ru/terminal/help/indicators/volume_indicators/mfi Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- shift – определяет, к какому бару применить индикатор.
Индикатор Moving Average (MA) или Скользящее Среднее показывает среднее значение цены инструмента за некоторый период времени. https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/ma Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- ma_shift – сдвиг средней линий в барах. Если сдвиг положительный, то линия смещается вправо. И наоборот, если сдвиг отрицательный, то линия смещается влево.
- ma_method – определяет метод, который используется для получения средних значений. Предопределены такие константы для выбора метода:
- MODE_SMA - простое скользящее среднее
- MODE_EMA - экспоненциальное скользящее среднее
- MODE_SMMA - сглаженное скользящее среднее
- MODE_LWMA - линейно-взвешенное скользящее среднее
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
Индикатор Average Convergence/Divergence (MACD) или Схождение/Расхождение Скользящих Средних – используется для отслеживания тенденций на основе соотношения между двумя скользящими средними цены. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/macd Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- fast_ema_period - количество баров, которые будут использованы для вычисления быстрой скользящей средней.
- slow_ema_period - количество баров, которые будут использованы для вычисления медленной скользящей средней.
- signal_period - количество баров, которые будут использованы для вычисления сигнальной линии.
- applied_price – определяет используемую цену (что будем усреднять). Есть такие предопределенные константы для выбора используемой цены:
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
- MODE_MAIN - основная линия
- MODE_SIGNAL - сигнальная линия
С помощью параметра mode укажите, что возвращать:
Moving Average of Oscillator (OsMA) или Скользящая Средняя ОсциллятораИндикатор Moving Average of Oscillator (OsMA) или Скользящая Средняя Осциллятора используется для измерения разницы между главной и сигнальной линией индикатора Average Convergence/Divergence (MACD) или Схождение/Расхождение Скользящих Средних. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/macd Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- fast_ema_period - количество баров, которые будут использованы для вычисления быстрой скользящей средней.
- slow_ema_period - количество баров, которые будут использованы для вычисления медленной скользящей средней.
- signal_period - количество баров, которые будут использованы для вычисления сигнальной линии.
- applied_price – определяет используемую цену (что будем усреднять). Есть такие предопределенные константы для выбора используемой цены:
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
Индикатор On Balance Volume (OBV) или Балансовый Объем связывает объем и изменение цены, сопровождавшее данный объем. https://www.metatrader5.com/ru/terminal/help/indicators/volume_indicators/obv Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- applied_price – определяет используемую цену (что будем усреднять). Есть такие предопределенные константы для выбора используемой цены:
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
Индикатор Parabolic Stop and Reverse system (Parabolic SAR) или Параболическая Система SAR используется для анализа трендовых рынков, определения точек выхода из рынка. https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/psar Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- step - приращение уровня стопа, обычно 0.02.
- maximum - максимальный уровень стопа, обычно 0.2.
- shift – определяет, к какому бару применить индикатор.
Индикатор Relative Strength Index (RSI) или Индекс Относительной Силы используется для прогнозирования разворота цен. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/rsi Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- applied_price – определяет используемую цену (что будем усреднять). Есть такие предопределенные константы для выбора используемой цены:
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
Индикатор Relative Vigor Index (RVI) или Индекс Относительной Бодрости используется для определения сигналов на покупку и продажу. При этом рекомендуется использовать вместе с предыдущим индикатором для исключения неясностей. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/rvi Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- mode - определяет, значение чего вы хотите узнать. Что бы выбрать, используйте одну из констант:
- MODE_MAIN - основная линия
- MODE_SIGNAL - сигнальная линия
С помощью параметра mode укажите, что возвращать:
Standard Deviation или Стандартное ОтклонениеИндикатор Standard Deviation или Стандартное Отклонение используется для измерения волатильности рынка. https://www.metatrader5.com/ru/terminal/help/indicators/trend_indicators/sd Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- ma_period - количество баров, которые будут использованы для получения линии индикатора.
- ma_shift – сдвиг линий индикатора в барах. Если сдвиг положительный, то линия смещается вправо. И наоборот, если сдвиг отрицательный, то линия смещается влево.
- ma_method – определяет метод, который используется для получения средних значений. Предопределены такие константы для выбора метода:
- MODE_SMA - простое скользящее среднее
- MODE_EMA - экспоненциальное скользящее среднее
- MODE_SMMA - сглаженное скользящее среднее
- MODE_LWMA - линейно-взвешенное скользящее среднее
- PRICE_CLOSE - цена закрытия
- PRICE_OPEN - цена открытия
- PRICE_HIGH - максимальная цена
- PRICE_LOW - минимальная цена
- PRICE_MEDIAN - средняя цена, (high+low)/2
- PRICE_TYPICAL - типичная цена, (high+low+close)/3
- PRICE_WEIGHTED - взвешенная цена закрытия, (high+low+close+close)/4
Индикатор Stochastic Oscillator или Стохастический Осциллятор используется для определения сигналов на покупку и продажу. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/so Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- %Kperiod - количество баров, которые будут использованы для получения линии %K.
- %Dperiod - количество баров, которые будут использованы для получения линии %D.
- slowing - значение замедления.
- method - определяет метод, который используется для получения средних значений. Предопределены такие константы для выбора метода:
- MODE_SMA - простое скользящее среднее
- MODE_EMA - экспоненциальное скользящее среднее
- MODE_SMMA - сглаженное скользящее среднее
- MODE_LWMA - линейно-взвешенное скользящее среднее
- 0 - Low/High
- 1 - Close/Close
- MODE_MAIN - основная линия
- MODE_SIGNAL - сигнальная линия
С помощью параметра mode укажите, что возвращать:
Williams’ Percent Range (%R) или Процентный Диапазон ВильямсаИндикатор Williams’ Percent Range (%R) или Процентный Диапазон Вильямса используется для определения состояния перекупленности/перепроданности. https://www.metatrader5.com/ru/terminal/help/indicators/oscillators/wpr Прототип функции:
- symbol – определяет, какой финансовый инструмент (валютную пару) использовать для вычисления показателей технического индикатора. Используйте NULL (или 0), если вам нужен текущий (активный) инструмент (график).
- timeframe – определяет, на каком тайм фрейме (периоде) использовать индикатор. Используйте 0 для текущего периода или одну из констант (PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1).
- period - количество баров, которые будут использованы для получения среднего значения.
- shift – определяет, к какому бару применить индикатор.
Что бы правильно использовать эти функции вы должны точно знать, как устроен конкретный индикатор и как ним пользоваться (торговые сигналы). Конечно, использовать их нужно в собственных советниках или индикаторах. Но все же, в качестве домашнего задания, попробуйте написать скрипт, который будет вам сообщать точки входа в рынок, основываясь на сигналах какого-то индикатора (выберите сами).
Для примера напишем одно из таких домашних заданий, которое будет показывать точки входа в рынок, основываясь на торговых сигналах Стохастического Осциллятора. Будем использовать такие правила для входа в рынок: Покупаем, если главная линия поднимается выше сигнальной линии. Продаем, если главная линия опускается ниже сигнальной линии. На рисунке обведены точки входа в рынок:
Для начала объявим несколько переменных, в которых будем хранить показатели сигнальной и главной линии на текущем и предыдущем баре:
Теперь давайте узнаем показатели для этих переменных:
Как видно, мы ограничились последним и предпоследним баром. Теперь проверим, нет ли сигналов на покупку и продажу:
Мы использовали операторы сравнения и логическое И (&&). Разберитесь, как следует.
А теперь давайте «засунем» все это в цикл, что бы «пройтись» по сотне последних баров:
Видели?? Мы просто добавили счетчик из цикла и уже с его помощью перебираем бары. А теперь давайте для удобства вместо сотни объявим константу BARS_TO_ANALYSE, которая будет определять, сколько последним баров анализировать. А вот и финальная версия скрипта:
В этом скрипте вам должен быть непонятен вот этот маленький фрагмент кода (а если понятно, то, вы, пожалуй, преуспевающий ученик):
Эта функция принимает количество секунд, прошедших с 01.01.1970 и возвращает строку с датой. А предопределенный массив Time[] возвращает то самое количество секунд применительно к выбранному бару. Вот и имеем идеальную парочку :)) В качестве дополнительного задания «накиньте» тяжелую скользящую среднюю (с периодом 200-500) и отфильтруйте лишние сигналы по таким правилам: если цена выше средней линии, то не продаем. Если цена ниже средней, то не покупаем. Ну что? Разобрались?? Нет? Тогда вот вам еще.
Кое-что новенькое про объявление переменныхОбычно мы объявляем переменные так:
Больше так не делайте. А поступайте вот так:
То есть сначала тип, а потом через запятую названия переменных (массивов). Разницы никакой, а лишние движения никому не нужны. Инициализацию тоже проводите в таком стиле:
Функции, которые возвращают несколько значенийОго, а что такое бывает?? Конечно, сейчас вы сами напишете парочку! Давайте посмотрим, что мы уже умеем. Простейшая функция, которая возвращает одно значение:
А что же если нужно возвратить несколько значений, да еще и разных типов, да еще и одновременно? Мотайте на ус:
А теперь вызовем эту чудо-функцию:
Но иногда полезно закомментировать какой-то блок кода, что бы временно исключить его. И тогда не очень удобно таким способом комментировать 20-30 строк. Для этого существуют многострочные комментарии:
ЗаключениеСегодня вы узнали много нового материала. Мы рассмотрели математические и тригонометрические функций, а также функции для работы с техническими индикаторами. Вы увидели на простом примере, как правильно отслеживать торговые сигналы. И хотя в скриптах их и неудобно использовать и не для того они создавались, но скоро, на следующих уроках, вы увидите как их использовать в собственных индикаторах и советниках. И вот тогда, они окажутся действительно полезными.