Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

Класс для задания и проверки времени торговли - библиотека для MetaTrader 5

Просмотров:
2019
Рейтинг:
(33)
Опубликован:
2015.07.03 14:55
Обновлен:
2016.11.22 07:33
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Класс CTimeControl предназначен для использования в советниках с целью удобного задания и проверки разрешенного времени торговли.

Пример использования:

Включение:

#include "TimeControl.mqh"

Конструктор по умолчанию:

CTimeControl   timeControl;

Конструктор с заданием дней недели:

CTimeControl timeControl(false, true, true, false, false, false, false);

Конструктор, принимающий массив с днями недели и временем торговли для каждого дня:

bool     arrDaysSetting[7] = { false, true, true, false, false, false, false};
int      
arrStartHours[7] = { 0, 15, 14, 0, 0, 0, 0};
double  
arrStartMinutes[7] = { 0, 15, 14, 0, 0, 0, 0};
int      
arrStopHours[7] = { 23, 13, 21, 23, 23, 23, 23};
double  
arrStopMinutes[7] = { 0, 15, 14, 0, 0, 0, 0};

CTimeControl timeControl2( arrDaysSetting, arrStartHours, arrStartMinutes, arrStopHours, arrStopMinutes);

Для чтения/установки параметров каждого дня можно воспользоваться перечислением ENUM_DAY_OF_WEEK для указания дня недели:

bool bMonday = timeControl.GetDay(MONDAY);

timeControl.SetDay(MONDAY, true);// включить понедельник
timeControl.EnableDay(MONDAY);   // включить понедельник
timeControl.DisableDay(MONDAY);  // исключить понедельник

int iStartHour, iStopHour;
double
dStartMinute, dStopMinute;

timeControl.GetTradingTime(MONDAY, iStartHour, dStartMinute, iStopHour, dStopMinute);

Можно также использовать отдельные функции для каждого дня недели:

bool bMonday = timeControl.GetMonday();

timeControl.SetMonday(true); //включить понедельник
timeControl.EnableMonday();  //включить понедельник
timeControl.DisableMonday(); //исключить понедельник

 Основная функция проверки разрешения на торговлю (для текущего времени сервера)

if ( timeControl.IsTradingTime() == true )

{
   //код
}

else

{
   //код
}

Можно также передать переменную типа datetime:

datetime date = D'24.02.2015 12:30:27'

if ( timeControl.IsTradingTime(date) == true )
{
   //код
}
else
{
   //код
}

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/12484

Indicator Arrows II Indicator Arrows II

Индикатор строит буферные стрелки вверх/вниз в окне графика.

ColorLinearRegSlope_V2_HTF ColorLinearRegSlope_V2_HTF

Индикатор ColorLinearRegSlope_V2 с возможностью изменения таймфрейма индикатора во входных параметрах.

Fractal ZigZag Fractal ZigZag

Этот индикатор является версией FractalZigZagNoRepaint для MQL5, он отображает локальные максимумы и минимумы.

Smoothed_RSI и RSI_of_MA Smoothed_RSI и RSI_of_MA

Индикаторы Smoothed RSI и RSI of Moving Average.