MQL4 Price Data Open High Low Close

Ценовые данные MQL4: открытие, максимум, минимум, закрытие.

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

Константы / функции данных уровня цены Функциональность 1 High, Low, Open, Close, а также: Bid, Ask Самый простой уровень. Ценовые данные относятся к текущим данным цены символа графика, временного интервала графика и текущего бара. 2 High [], Low [], Open [], Close [] Следующий уровень выше. Ценовые данные относятся к текущей цене символа чата, временного интервала графика, но они более гибкие в отношении того, к какому историческому open forex account with $10 бару они могут относиться. Число в скобках относится к исторической шкале, к которой он может относиться. Пример: Close [0] = закрытие текущего бара, Close [1] = закрытие предыдущего бара. 3 iHigh (), iLow (), iOpen (), iClose () Очень гибкий уровень функциональности. Функция ценовых данных относится к ценовым данным настраиваемого символа, и / или таймфрейма, и / или исторического бара. Пример №1: iClose (NULL, 0,0) = закрытие символа графика, таймфрейма, текущего бара. Примечание: его использование мало отличается от Close, Bid или даже iClose [0]. Пример №2: iClose («EURUSD», 30,1) = закрытие символа EURUSD на 30-минутном временном интервале предыдущего бара. Примечание: это его использование в три раза больше функциональности, чем предыдущие функции данных о ценах. 4 iHighest (), iLowest (), функция данных о ценах для нахождения максимальных значений данных о ценах за определенный период. Подходит для поиска самых высоких или самых низких значений данных определенного диапазона. Пример: Low [iLowest (Symbol (), 0, MODE_LOW, 3, 1)] = самый низкий бар из последних трех столбцов..

Давайте рассмотрим каждый из этих четырех уровней ценовых данных..

Данные о цене уровня 1: данные о ценах, ограниченные символом графика, временными рамками графика и текущим столбцом.

Если вы просто хотите сослаться на ценовые данные текущего бара текущего графика и временного интервала, вы можете использовать любой из следующих методов ценовых данных: High, Low, Open, Close, Bid, Ask. .

Имейте в виду, что все должны иметь начальную заглавную букву, чтобы программа могла их прочитать (ставка действительна, ставка — нет). Если вы хотите ссылаться на текущую цену закрытия, вы можете использовать Close, но вы также можете использовать Bid, потому что цены закрытия MT4 по умолчанию установлены как Bid. Например, если вы хотите, чтобы ваш советник искал условие, при котором текущая цена закрытия должна быть больше, чем скользящая средняя за 200 периодов, вы можете указать это с помощью:

или, альтернативно, как:

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

Данные о ценах уровня 2: данные о ценах достаточно гибкие, чтобы работать с разными барами.

Если вы хотите работать с ценовыми данными для текущего графика, но хотите контролировать столбец, на который вы ссылаетесь, вы можете использовать предварительно определенные массивы серий: High [], Low [], Open [] и Close. [] .

Массив — это переменная, в которой хранится несколько значений. Они действуют как таблицы списков, в которых вы можете группировать элементы в таблице и получать к ним доступ по номеру строки, называемой индексами. Пронумерованные строки или индексы начинаются с 0, затем переходят к 1, 2, 3 и т. Д. Эти пронумерованные индексы содержатся в скобках, и в конкретном случае, приведенном выше, каждый нумерованный индекс относится к определенному столбцу во времени и изменяет номер. изменяет полосу времени, к которой вы хотите обратиться. Например, Close [0] — это цена открытия текущего бара, где 0 — это индекс, и, изменив его, мы можем получить цену закрытия других баров: Close [1] относится к бару, предшествующему текущему бару. , Close [2] относится к бару на 2 бара от текущего и т. Д..

В большинстве создаваемых нами советников мы будем использовать либо текущий бар, либо значения цены предыдущего бара. Однако, если вы желаете еще большей гибкости в работе с ценовыми open forex account with $25 данными не только разных исторических баров, но и различных символов, отличных от вашего текущего графика, или других временных рамок, отличных от вашего текущего графика, тогда вы должны обратиться к ценовым данным уровня 3..

Данные о ценах уровня 3: наиболее гибкие данные о ценах с использованием функции, которая работает с настраиваемыми символами, настраиваемыми временными рамками и настраиваемыми историческими столбцами.

Если вы хотите работать с ценовыми данными (максимум, минимум, открытие, закрытие) для символа, отличного от текущего графика, или если вам нужны ценовые данные за период, отличный от текущего периода графика, вы можете использовать следующие функции ценовых данных : iHigh (), iLow (), iOpen () и iClose (). Это даст вам значение ценовых данных за один период или бар..

В таблице ниже показан синтаксис функции iClose ():

Параметры Описание Символ Символ используемой валютной пары Таймфрейм Таймфрейм. Может быть любое значение перечисления таймфреймов. Выберите (0), чтобы отобразить текущий таймфрейм, отображаемый на ИЛИ выберите одно из следующего: (1, 5, 15, 30, 60, 240, 1440, 10080, 43200) МИНУТЫ> Shift Сдвиг назад относительно текущего бара.

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

Вот выборка самого высокого максимума и самого низкого минимума за вчерашний день:

Параметры означают:

NULL = текущий символ графика. PERIOD_D1 = D1 или период дневного графика, также может быть 1440. 1 = сдвиг, 1 означает предыдущий бар.

Примечание. Функции iHigh () и iLow () дают вам сдвиг максимального значения одного столбца. Если вы хотите сдвинуть максимальное значение по диапазону столбцов, вы должны использовать функции iHighest () и iLowest (), которые обсуждаются ниже..

Таблица перечисления таймфреймов.

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

Вы видите, что PERIOD_D1 можно заменить на 1440 — минуты, составляющие дневной период..

Вот полная таблица постоянных значений и их целочисленных эквивалентов:

Постоянное значение Описание PERIOD_M1 1 1 минута forex robot price PERIOD_M5 5 5 минут PERIOD_M30 30 30 минут PERIOD_H1 60 1 час PERIOD_H4 240 4 часа PERIOD_D1 1440 Daily PERIOD_W1 10080 Weekly PERIOD_MN1 43200 Месячный 0 (нулевой) 0 Временной интервал.

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

// помещаем в раздел внешних переменных extern int TimeFrame = 30;

// помещается где-нибудь в коде double PreviousClose = iClose (NULL, TimeFrame, 1);

TimeFrame — это мой идентификатор, который относится к параметру таймфрейма, и мое значение по умолчанию — 30, которое относится к предыдущему бару M30. Я знаю, что это предыдущая полоса, потому что я поставил 1 в параметре сдвига. Если я хочу сослаться на текущее закрытие M5, я просто добавляю 5 во втором параметре, а если я хочу сослаться на текущий бар, я просто добавляю 0 в третий параметр..

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

Вы можете использовать метод альтернативного периода времени (PERIOD_M30 = 30) и метод extern int (extern int CloseTime = 30) не только для любой функции ценовых данных, но и для всех индикаторов и пользовательских индикаторов; все они имеют второй параметр, который относится к временным рамкам, которые обычно по умолчанию равны 0, или временным рамкам вашего графика, но его можно изменить на любой из вышеуказанных временных рамок..

Альтернативная методология замещения валюты.

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

Пример, если вы хотите сослаться на символ EURUSD:

Более того, у вас есть возможность создать внешнюю переменную для этого параметра, как в примере ниже:

// помещаем в раздел внешних переменных extern string CurrencyName = «EURUSD»; extern int TimeFrame = 30;

// помещается где-нибудь в коде double PreviousClose = iClose (CurrencyName, TimeFrame, 0);

Как видите, мы заменили NULL на внешнюю строковую переменную, которую мы определили как CurrencyName, и по умолчанию установили «EURUSD» (хотя это может быть любая валютная пара, которую вы видите в окне вашего рынка, если вы поместите ее в котировку. Метки). Также обратите внимание, что все имена валют, которые вы хотите присоединить к внешней переменной, должны использовать внешнюю строковую переменную..

Зачем вам нужно ссылаться на валютную пару, которая не совпадает с вашим графиком?

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

Вы можете использовать метод замены валюты (NULL = EURUSD) или метод внешней строки (extern string CurrencyName = «EURUSD») не только для функций данных о ценах, но и для всех функций индикаторов и пользовательских индикаторов; все они имеют первый параметр, относящийся к валютной паре. По умолчанию обычно используется NULL, что означает текущий символ графика, но его можно изменить на любой символ валюты, который появляется в окне обзора рынка..

Данные о ценах уровня 4: функция, которая работает с максимальными значениями данных о ценах в диапазонах периода.

В дополнение к работе с функциями ценовых данных, такими как iHigh () и iLow для одного периода, существует возможность работать с функциями ценовых данных максимального значения в диапазоне периодов: iHighest () и iLowest (). С каждой из этих функций вы можете работать с h / l ряда полос в диапазоне.

У этих двух функций есть собственный набор параметров:

Параметры Описание Символ Используемый символ. NULL = Таймфрейм текущего графика Таймфрейм. Это может быть любое количество таймфреймов. 0 = идентификатор массива текущего таймфрейма Type Series. Это может быть любое из значений перечисления идентификатора массива Series. Bar Count Количество полосок, которые вы хотите протестировать, в направлении от начальной полосы к предыдущей, на которой выполняется расчет. Start Bar Shift, показывающий полосу относительно текущей панели, из которой должны быть взяты данные.

Таблица идентификаторов массивов серий:

Постоянное значение Описание MODE_OPEN 0 Цена открытия MODE_LOW 1 Минимальная цена MODE_HIGH 2 Максимальная цена MODE_CLOSE 3 Цена закрытия MODE_VOLUME 4 Объем, используемый в функциях iLowest () и iHighest (). MODE_TIME 5 Время открытия бара, используется в функции ArrayCopySeries ().

Примечание. Похоже, что у вас есть возможность использовать любой тип, указанный выше, но на практике вы будете использовать MODE_HIGH с iHighest () и MODE_LOW с iLowest (). .

Пример самого низкого минимума и самого высокого максимума из последних 3-х баров для стоп-лосса:

Вышеупомянутый умный метод использования стопа, отличного от обычного..

Что how to open forex trading account in india, если вы хотите получить наименьшее значение между столбцами с 10 по 20??

Вы также можете прочитать:

Похожие статьи