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

ctime_tradestate.mqh

Вы автор или правообладатель?

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

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

О программе

Библиотека CTradeState предназначена для управления режимами торговли на основе расписания по времени и дню недели. Она позволяет программисту задавать разные состояния торговли (например, разрешение покупок и продаж, только покупки, только продажи, остановка, ожидание или запрет новых входов) для конкретных временных окон в течение недели.

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

Конструкторы позволяют при создании объекта задать начальное состояние по умолчанию — либо полное разрешение торговли, либо пользовательское. Метод получения состояния работает как с текущим серверным временем, так и с произвольным моментом времени.

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

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

Классы
Класс class CTradeState

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

Методы и конструкторы
Конструктор · CTradeState CTradeState(void)

Конструктор класса, инициализирующий все временные слоты состоянием разрешения торговли покупкой и продажей.

Конструктор · CTradeState CTradeState(ENUM_TRADE_STATE default_state)

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

Метод · CTradeState ENUM_TRADE_STATE GetTradeState(void)

Возвращает текущее состояние торговли на основе системного времени сервера.

Метод · CTradeState ENUM_TRADE_STATE GetTradeState(datetime time_current)

Возвращает состояние торговли для указанного момента времени.

Метод · CTradeState void SetTradeState(datetime time_begin,datetime time_end,int day_of_week,ENUM_TRADE_STATE state)

Устанавливает состояние торговли для заданного временного интервала и дня (или всех дней) недели.

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

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

??//+------------------------------------------------------------------+

//|                                              Time_tradestate.mqh |

//|                                 Copyright 2015, Vasiliy Sokolov. |

//|                                              http://www.mql5.com |

//+------------------------------------------------------------------+

#property copyright "Copyright 2015, Vasiliy Sokolov."

#property link      "http://www.mql5.com"



#define ALL_DAYS_OF_WEEK 7

//+------------------------------------------------------------------+

//| ?@545;O5B B>@3>2>5 A>AB>O=85 M:A?5@B0                           |

//+------------------------------------------------------------------+

enum ENUM_TRADE_STATE

  {

   TRADE_BUY_AND_SELL,              //  07@5H5=K ?>:C?:8 8 ?@>4068.

   TRADE_BUY_ONLY,                  //  07@5H5=K B>;L:> ?>:C?:8. @>4068 70?@5I5=K.

   TRADE_SELL_ONLY,                 //  07@5H5=K B>;L:> ?@>4068. >:C?:8 70?@5I5=K.

   TRADE_STOP,                      // ">@3>2;O 70?@5I5=0. 5<54;5==> 70:@KBL 2A5 ?>78F88. >2K5 A83=0;K =0 2E>4 =5 ?@8=8<0BL.

   TRADE_WAIT,                      // >=B@>;L =04 >B:@KBK<8 ?>78F8O<8 B5@O5BAO. >2K5 A83=0;K 83=>@8@CNBAO. >;575= 2 <><5=BK 2KE>40 =>2>AB59.  

   TRADE_NO_NEW_ENTRY               // !83=0;K =0 2E>4 83=>@8@CNBAO. 4=0:> C65 >B:@KBK5 ?>78F88 A>?@>2>640NBAO A>3;0A=> B>@3>2>9 ;>38:5.

  };

//+------------------------------------------------------------------+

//| >4C;L B>@3>2KE A>AB>O=89 TradeState                             |

//+------------------------------------------------------------------+

class CTradeState

  {

private:

   ENUM_TRADE_STATE  m_state[60*24*7];  // 0AA82 B>@3>2KE A>AB>O=89

public:

                     CTradeState(void);

                     CTradeState(ENUM_TRADE_STATE default_state);

   ENUM_TRADE_STATE  GetTradeState(void);

   ENUM_TRADE_STATE  GetTradeState(datetime time_current);

   void              SetTradeState(datetime time_begin,datetime time_end,int day_of_week,ENUM_TRADE_STATE state);

  };

//+------------------------------------------------------------------+

//|  568< ?> C<>;G0=8N TRADE_BUY_AND_SELL                            |

//+------------------------------------------------------------------+

CTradeState::CTradeState(void)

  {

   ArrayInitialize(m_state,TRADE_BUY_AND_SELL);

  }

//+------------------------------------------------------------------+

//|  568< ?> C<>;G0=8N 70405BAO 7=0G5=85< default_state              |

//+------------------------------------------------------------------+

CTradeState::CTradeState(ENUM_TRADE_STATE default_state)

  

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

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

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

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

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

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

Стоимость полного кода
924,40₽ ≈ $11.30