EasyLanguage - Управление датами и временем

: Function ereg() is deprecated in /home/marketprofit/msnet/html/sites/all/modules/paging/paging.module on line 193.


Другие темы: Omega ProSuite |
Вы будете часто использовать даты и время при написании ваших торговых сигналов, методов анализа и функций. В этом разделе рассматривается, как работать с датами и временем. Работа с Датами Даты в EasyLanguage представлены как числовое выражение в форме YYYMMDD, где YYY - годы с 1900, ММ - месяц из 2 цифр, а DD соответствует дню месяца. Например, дата EasyLanguage представляющая 17 декабря 1999 - 991217, тогда как 13 января 2000 записывается как 1000113. Одно из преимуществ представления дат как числовых выражений - то, что это позволяет сравнивать даты. Например, 1000113 больше (то есть, это - более поздняя дата) чем 991217, и следующее сравнение вычисляется как Истина: 1000113 > 991217. Второй способ представлять даты в EasyLanguage - Юлианские Даты. Юлианская система Дат назначает дату с номером n, и следующий календарный день имеет Юлианскую дату n+1 (все календарные дни, а не только торговые дни). Юлианская система Дат начинается на 1 января 1900, которому назначен номер 2. 2 января 1900 соответствует номер 3, 31 декабря 1999 - 36 525, и 1 января 2000 - 36 526, и т.д. Это позволяет нам выполнять математические вычисления с датами - типа прибавления и вычитания, не имея причин волноваться о 'переворачивании' месяцев и лет. Например, если мы имеем в EasyLanguage дату 991013 (13 октября 1999), и мы хотим найти дату 20-ю днями ранее, мы может (неправильно) попробовать вычесть 20 из даты: 991013 - 20 Однако мы получили бы 990993, что - недопустимая дата EasyLanguage. Вместо этого, мы можем вычесть 20 из Юлианского эквивалента даты: 36,446 - 20 В результате получается 36 426, что является правильным, потому что это - Юлианская Дата, которая соответствует 23 сентября 1999. Мы строго рекомендуем Вам использовать зарезервированные слова Date или ELDate при обращении к дате. Это будет гарантировать совместимость независимо от любых будущих изменений в формате даты. Зарезервированные слова, которые позволят Вам ссылаться на даты, перечислены ниже. Date Это зарезервированное слово возвращает числовое выражение, представляющее дату EasyLanguage цены закрытия анализируемого бара. Дата - это дата EasyLanguage, то есть - это числовое выражение формы YYYMMDD, где YYY - годы с 1900, ММ - месяц, DD - день месяца. Синтаксис: Date Параметры: Нет. Пример: См. пример для зарезервированного слова ELDate. ELDate(YYYY, MM, DD) Это зарезервированное слово возвращает числовое выражение, представляющее дату EasyLanguage (YYYMMDD) как эквивалент стандартной форме представления даты (YYYY, ММ, DD). Синтаксис: ELDate(YYYY, MM, DD) Параметры: YYYY - числовое выражение с 4 цифрами, представляющее год, ММ - выражение с 2 цифрами, представляющее месяц, и DD - числовое выражение с 2 цифрами, представляющее день месяца. Примечания: Мы строго рекомендуем, чтобы Вы использовали зарезервированные слова Date или ELDate при обращении к дате. Это будет гарантировать совместимость независимо от любых будущих изменений в формате даты. Пример: Чтобы проверить, что дата текущего бара является 17 декабря 1999, Вы можете использовать следующую инструкцию IF-THEN:

If Date = ELDate(1999, 12, 17) Then {EasyLanguage instruction};

DateToJulian(eDate) Это зарезервированное слово возвращает числовое выражение, представляющее Юлианскую дату, как эквивалент указанной дате EasyLanguage. Синтаксис: DateToJulian(eDate) Параметры: eDate - дата EasyLanguage (формат YYYMMDD), которая конвертируется в Юлианскую дату. Пример: Вы можете использовать следующую инструкцию, чтобы получить эквивалент Юлианской даты дате EasyLanguage для текущего бара и представить ее как переменную (в нашем случае Value1): Value1 = DateToJulian(Date); JulianToDate(jDate) Это зарезервированное слово возвращает числовое выражение, представляющее EasyLanguage дату, как эквивалент указанной Юлианской дате. Синтаксис: JulianToDate(jDate) Параметры: jDate - числовое выражение, представляющее Юлианскую дату, которая конвертируется в дату EasyLanguage (формат YYYMMDD). Пример: Следующая инструкция получает Юлианскую дату дня за 20 календарных дней перед датой текущего бара, и конвертирует результат в дату EasyLanguage:

Value1 = JulianToDate(DateToJulian(Date) + 20);

Сначала вычисляется выражение в круглых скобках (зарезервированное слово DateToJulian). То есть, сначала преобразовывается дата текущего бара в Юлианскую дату. Затем, число 20 добавляется к полученной Юлианской Дате. Эта Юлианская дата - параметр для зарезервированного слова JulianToDate, которое конвертирует Юлианскую дату в дату EasyLanguage, в формате YYYMMDD. Эта дата EasyLanguage сохраняется в переменной Value1. CurrentDate Это зарезервированное слово возвращает числовое значение, представляющее дату EasyLanguage (формат YYYMMDD) равную дате и времени вашего компьютера (или времени передачи данных (datafeed), если Вы связаны с datafeed). Синтаксис: CurrentDate Параметры: Нет. Пример: Чтобы торговый сигнал, методика анализа, или функция выполняли вычисления только до 1 января 2000 (или любой другой даты), Вы можете записать:

If CurrentDate < ELDate(2000,01,01) Then Begin {EasyLanguage instruction(s)} End;

Работа со Временем В EasyLanguage, временя представлено как числовое выражение в форме HHMM, где HH - час, и MM - минуты. Часы представляются в так называемом 24-часовом или военном форматом, так что 1:30pm представляется как 1330, а 10:05am - как 1005. Кроме того, когда Вы работаете со временем, упростить математические операции типа сложения и вычитания, Вы можете отсчитывать время как минуты, начиная с полуночи. Например, 1:00am - 60 (60 минут после полночи), и 10:30am - 630 (630 минут после полуночи). Однако, если текущее время - 10:30am (или 1030), и Вы хотите добавить 60 минут к текущему времени, не думайте, что Вы просто добавляете 60 к 1030: 1030 + 60 Делая так и получая в итоге 1090, Вы получите недопустимое значение время. Поэтому, чтобы добавить 60 минут ко времени, используйте минуты после полуночи. Тогда Вы запишете так: 630 + 60 В итоге получится 690. Когда Вы конвертируете это число в 24-часовой формат, результат - 1130, является правильным значением. Зарезервированные слова нужны Вам, чтобы конвертировать время в различные форматы автоматически. Зарезервированные слова, использующие и управляющие временем, перечислены ниже. Time Это зарезервированное слово возвращает числовое выражение, представляющее EasyLanguage время (формат HHMM) цены закрытия текущего бара. Синтаксис: Time Параметры: Нет. Пример: Например, Вы можете записать ваш торговый сигнал, методику анализа или функцию таким образом, чтобы они вычислялись только тогда, когда торговое время меньше чем 11:00am:

If Time < 1100 Then {EasyLanguage instruction};

TimeToMinutes(eTime) Это зарезервированное слово возвращает числовое значение, представляющее количество минут, прошедших с полуночи в течение указанного EasyLanguage времени (формат HHMM) . Синтаксис: TimeToMinutes(eTime) Параметры: eTime - числовое выражение, представляющее EasyLanguage время, которое будет конвертировано в количество минут после полуночи. Пример: Следующая инструкция конвертирует время текущего бара в количество минут после полуночи, и представляет полученное числовое значение как переменную (в нашем случае Value1):

Value1 = TimeToMinutes(Time) ;

MinutesToTime(mTime) Это зарезервированное слово возвращает числовое выражение, представляющее EasyLanguage время (формат HHMM) как эквивалент определенному количеству минут с полуночи. Синтаксис: MinutesToTime(mTime) Параметры: mTime - числовое выражение, представляющее количество минут после полуночи, которое будет конвертировано в эквивалент EasyLanguage время. Пример: Следующая инструкция конвертирует текущее время в минуты, прошедшие после полуночи, добавляет 20 к полученному значению, и затем конвертирует конечную величину в EasyLanguage время:

Value1 = MinutesToTime(TimeToMinutes(Time) + 20);

Сначала вычисляется выражение в пределах круглых скобок (зарезервированное слово TimeToMinutes), т.е. конвертируется время текущего бара в минуты после полночи. Затем 20 добавляется к минутам, прошедшим после полуночи, и полученное значение используется как параметр для зарезервированного слова MinutesToTime, которое конвертирует число в EasyLanguage время (формат HHMM). CurrentTime Это зарезервированное слово возвращает числовое значение, представляющее EasyLanguage время (формат HHMM), соответствующее времени вашего компьютера (или времени получения данных (datafeed), если Вы связаны с datafeed). Синтаксис: CurrentTime Параметры: Нет. Пример: Чтобы торговый сигнал, методика анализа или функция исполнялись только до 2:00pm, Вы должны записать:

If CurrentTime < 1400 Then Begin {EasyLanguage instruction(s)} End;