← К каталогу
Исходный код · ID 2990

CTradeTime

сtradetime.mqh
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

CTradeTime — это библиотека на языке MQL, предназначенная для управления торговым временем. Класс позволяет задать временной интервал (начало и конец) в виде строк и проверять, попадает ли текущее или указанное время в этот интервал.

Конструктор принимает два параметра — строки начала и окончания торгового времени в формате Ч:М:С. При инициализации происходит валидация формата и вычисление допустимого диапазона.

Метод IsTrueFormat возвращает результат валидации введённого формата времени. Метод IsTradeAlloed позволяет узнать, находится ли текущий (или переданный) момент времени внутри заданного торгового окна, учитывая возможность перехода границ через полночь.

Состав библиотеки

Классов: 1 · методов: 2 · конструкторов: 1 · деструкторов: 0 · отдельных функций: 0

Классы
Класс class CTradeTime

Класс для управления и проверки торгового временного окна.

Методы и конструкторы
Конструктор · CTradeTime CTradeTime(string mTimeStart,string mTimeStop)

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

Метод · CTradeTime bool IsTrueFormat()

Возвращает, был ли корректно задан формат времени.

Метод · CTradeTime bool IsTradeAlloed(datetime mTime)

Проверяет, разрешена ли торговля в указанный момент времени.

Получить полный код

Поиск по коду файла

#ifndef _C_TRADE_TIME_
#define _C_TRADE_TIME_

#define  TIME_DAY  86400

class CTradeTime{
private:
   bool              cIsTrue;
   datetime          cTimeCurrent;
   datetime          cTradeTime[2];
public:
                     CTradeTime(string mTimeStart,string mTimeStop);
   bool              IsTrueFormat() {return cIsTrue;}
   bool              IsTradeAlloed(datetime mTime=0);
private:
   bool              StringToTimeStruct(string mTimeStart,string mTimeStop,MqlDateTime &mTimeCurStruct,int mId);
   void              Control(datetime mTime);
   bool              CheckTime();
  };

CTradeTime::CTradeTime(string mTimeStart,string mTimeStop){
   MqlDateTime mTimeStruct;
   cTimeCurrent=TimeCurrent();
   cIsTrue=true;
   if (!TimeToStruct(cTimeCurrent,mTimeStruct)) {cTimeCurrent=0; cIsTrue=false; return;}
   for (int i=0;i<2;i++)
      if (!StringToTimeStruct(mTimeStart,mTimeStop,mTimeStruct,i)) {cTimeCurrent=0; cIsTrue=false; return;}
   if (cTradeTime[0]==cTradeTime[1]) return;
   if (cTimeCurrent>cTradeTime[0]&&cTimeCurrent>=cTradeTime[1]){
      if(cTradeTime[0]<cTradeTime[1]) {cTradeTime[0]+=TIME_DAY; return;}
      if(cTradeTime[0]>cTradeTime[1]) {cTradeTime[1]+=TIME_DAY; return;}}
   if (cTimeCurrent<=cTradeTime[0]&&cTimeCurrent<cTradeTime[1]){
      if(cTradeTime[0]<cTradeTime[1]) {cTradeTime[1]-=TIME_DAY; return;}
      if(cTradeTime[0]>cTradeTime[1]) {cTradeTime[0]-=TIME_DAY; return;}}}   

bool CTradeTime::StringToTimeStruct(string mTimeStart,string mTimeStop,MqlDateTime &mTimeCurStruct,int mId){
   if (mId>=ArraySize(cTradeTime)) return false;
   MqlDateTime mTimeStruct=mTimeCurStruct;
   string mData[],
          mText=mId==0?mTimeStart:mTimeStop;
   int mSize=StringSplit(mText,StringGetCharacter(":",0),mData);
  

Показано первые 50% кода (символов: 2910)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

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

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
291₽ ≈ $3.56