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

xmctradeutils.mqh

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

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

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

О программе

XMCTradeUtils — это заголовочная библиотека MQL4, предоставляющая набор переиспользуемых торговых утилит. Библиотека не содержит глобальных переменных советника и торговой логики, предназначена для подключения через #include в другие MQL4-программы.

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

Все функции работают с торговым контекстом MetaTrader 4 и используют стандартные функции MarketInfo, OrdersTotal и OrderSelect. Библиотека не выполняет отправку ордеров и не реализует торговую стратегию.

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

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

Функции
Функция bool XMC_IsManagedSymbol(string symbol, string &symbols[], int count)

Проверяет, содержится ли указанный символ в списке управляемых символов. Перебирает массив символов до заданного количества и возвращает true при совпадении.

Функция double XMC_NormalizeLot(string symbol, double lot)

Приводит объём позиции к допустимым значениям брокера: округление по шагу лота и ограничение минимальным и максимальным размером.

Функция bool XMC_IsSpreadTooHigh(string symbol, int maxSpreadPoints)

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

Функция int XMC_CountOrders(string symbol, int magic)

Подсчитывает количество открытых ордеров для указанного символа и магического номера.

Функция int XMC_CountPortfolioOrders(string &symbols[], int count, int magic)

Подсчитывает общее количество открытых управляемых ордеров по массиву символов и магическому номеру.

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

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

#ifndef __XMCTRADEUTILS_MQH__
#define __XMCTRADEUTILS_MQH__

bool XMC_IsManagedSymbol(string symbol, string &symbols[], int count)
{
   for(int i = 0; i < count; i++)
   {
      if(symbols[i] == "")
         continue;

      if(symbols[i] == symbol)
         return true;
   }

   return false;
}

double XMC_NormalizeLot(string symbol, double lot)
{
   double step = MarketInfo(symbol, MODE_LOTSTEP);
   double min  = MarketInfo(symbol, MODE_MINLOT);
   double max  = MarketInfo(symbol, MODE_MAXLOT);

   if(step > 0.0)
      lot = MathFloor(lot / step) * step;

   if(lot < min)
      lot = min;

   if(lot > max)
      lot = max;

   return lot;
}

bool XMC_IsSpreadTooHigh(string symbol, int maxSpreadPoints)
{
   return (MarketInfo(s

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

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

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

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

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

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

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