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

mql4.mqh

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

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

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

О программе

Данная библиотека предоставляет набор функций для адаптации кода с MQL4 на MQL5, оборачивая специфичные MQL5 API-вызовы в привычные MQL4-стильные сигнатуры. Она позволяет использовать привычные функции исторических ордеров, информации о счёте и настройки индикаторов в среде MetaTrader 5.

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

Также доступны функции для работы с окнами графиков, определения текущего времени и режима терминала (визуальный, тестирование, оптимизация), а также для чтения буферов индикаторов и проверки демо-режима.

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

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

Функции
Функция int OrdersHistoryTotal(datetime tmStart,datetime tmEnd)

Возвращает количество исторических ордеров за заданный период

Функция ulong HistoryOrderTicket(ulong uticket)

Возвращает тикет исторического ордера

Функция string HistoryOrderSymbol(ulong uticket)

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

Функция string HistoryOrderComment(ulong uticket)

Возвращает комментарий исторического ордера

Функция int HistoryOrderType(ulong uticket)

Возвращает тип исторического ордера

Функция double HistoryOrderClosePrice(ulong uticket)

Возвращает цену закрытия исторического ордера

Функция double HistoryOrderOpenPrice(ulong uticket)

Возвращает цену открытия исторического ордера

Функция double HistoryOrderTakeProfit(ulong uticket)

Возвращает уровень тейк-профита исторического ордера

Функция double HistoryOrderStopLoss(ulong uticket)

Возвращает уровень стоп-лосса исторического ордера

Функция double HistoryOrderLots(ulong uticket)

Возвращает объём исторического ордера

Функция double HistoryOrderProfit(ulong uticket)

Возвращает прибыль исторического ордера

Функция double HistoryOrderSwap(ulong uticket)

Возвращает своп исторического ордера

Функция double HistoryOrderCommission(ulong uticket)

Возвращает комиссию исторического ордера

Функция int HistoryOrderMagicNumber(ulong uticket)

Возвращает магический номер исторического ордера

Функция datetime HistoryOrderOpenTime(ulong uticket)

Возвращает время открытия исторического ордера

Функция datetime HistoryOrderCloseTime(ulong uticket)

Возвращает время закрытия исторического ордера

Функция datetime OrderCloseTime(ulong uticket)

Возвращает время закрытия ордера

Функция bool HistoryOrderSelect(ulong &uticket,ulong index,int select,int pool)

Выбирает исторический ордер по индексу или тикету

Функция bool IsConnected()

Проверяет подключение терминала к серверу

Функция bool IsTradeAllowed()

Проверяет разрешение торговли на счёте

Функция bool IsTradeContextBusy()

Проверяет занятость торгового контекста

Функция double AccountBalance()

Возвращает баланс торгового счёта

Функция double AccountProfit()

Возвращает прибыль торгового счёта

Функция double AccountEquity()

Возвращает эквивалент торгового счёта

Функция double AccountMargin()

Возвращает маржу торгового счёта

Функция double AccountFreeMargin()

Возвращает свободную маржу торгового счёта

Функция long AccountNumber()

Возвращает номер торгового счёта

Функция int AccountLeverage()

Возвращает плечо торгового счёта

Функция string AccountServer()

Возвращает имя торгового сервера

Функция int DayOfWeek()

Возвращает текущий день недели

Функция int TimeDayOfWeek(datetime dtmTime)

Возвращает день недели для заданной даты

Функция int Year()

Возвращает текущий год

Функция int Hour()

Возвращает текущий час

Функция int Minute()

Возвращает текущую минуту

Функция string WindowExpertName()

Возвращает имя эксперта на графике

Функция int WindowFind(string name)

Находит окно графика по имени

Функция long WindowBarsPerChart()

Возвращает количество видимых баров на графике

Функция double WindowPriceMax(int index)

Возвращает максимальную цену в окне графика

Функция double WindowPriceMin(int index)

Возвращает минимальную цену в окне графика

Функция bool IsVisualMode()

Проверяет визуальный режим терминала

Функция bool IsTesting()

Проверяет режим тестирования стратегии

Функция bool IsOptimization()

Проверяет режим оптимизации

Функция string AccountCurrency()

Возвращает валюту торгового счёта

Функция void IndicatorDigits(int idigit)

Устанавливает количество знаков после запятой для индикатора

Функция void SetIndexStyle(int index,int type,int style,int width,color clr)

Устанавливает стиль отрисовки линии индикатора

Функция bool SetIndexLabel(int index,string stext)

Устанавливает метку линии индикатора

Функция void SetLevelValue(int ilevel,double value)

Устанавливает значение уровня индикатора

Функция int IndicatorCounted(int prev_calculated)

Возвращает количество уже рассчитанных баров индикатора

Функция void IndicatorShortName(string name)

Устанавливает короткое имя индикатора

Функция bool SetIndexEmptyValue(int index,double value)

Устанавливает пустое значение линии индикатора

Функция bool SetIndexShift(int index,int ishift)

Устанавливает сдвиг линии индикатора

Функция bool SetIndexDrawBegin(int index,int begin)

Устанавливает начало отрисовки линии индикатора

Функция bool SetIndexArrow(int index,ushort code)

Устанавливает код стрелки для линии индикатора

Функция bool HideTestIndicators(bool bHide)

Скрывает или показывает индикаторы при тестировании

Функция string ObjectDescription(string sname)

Возвращает текстовое описание графического объекта

Функция bool ObjectSetFiboDescription(string name,int index,string text)

Устанавливает текст уровня для объекта Фибоначчи

Функция bool GetBuffer(int hind,double &dbuffer[],int inumbuffer,int ibar,int icount)

Читает данные буфера индикатора

Функция bool IsDemo()

Проверяет демо-режим торгового счёта

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

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

#ifndef __MQL4__TO__MQL5__
#define __MQL4__TO__MQL5__ sovetnikov_net_defines_23fdsd34dsfsdf23433324fdfdgg

#ifdef __MQL5__

#define OP_BUY ORDER_TYPE_BUY
#define OP_SELL ORDER_TYPE_SELL

#define MODE_MAIN 0
#define MODE_SIGNAL 1

#define MODE_TRADES 0
#define MODE_HISTORY 1

#define SELECT_BY_POS 0
#define SELECT_BY_TICKET 1

#define EMPTY -1

#define OBJPROP_FIBOLEVELS OBJPROP_LEVELS

datetime Time[2]= {0};

int OrdersHistoryTotal(datetime tmStart=0,datetime tmEnd=0)
  {
   if(tmEnd==0)
      tmEnd=TimeCurrent();
   HistorySelect(tmStart,tmEnd); //всю историю доступную загружаем
   return HistoryOrdersTotal();
  }

ulong HistoryOrderTicket(ulong uticket)
  {
   return uticket;
  }

string HistoryOrderSymbol(ulong uticket)
  {
   return HistoryOrderGetString(uticket,ORDER_SYMBOL);
  }

string HistoryOrderComment(ulong uticket)
  {
   return HistoryOrderGetString(uticket,ORDER_COMMENT);
  }

int HistoryOrderType(ulong uticket)
  {
   return (int)HistoryOrderGetInteger(uticket,ORDER_TYPE);
  }

double HistoryOrderClosePrice(ulong uticket)
  {
   if(HistoryDealSelect(uticket))
      return HistoryDealGetDouble(uticket,DEAL_PRICE);

   return 0;
  }

double HistoryOrderOpenPrice(ulong uticket)
  {
   return HistoryOrderGetDouble(uticket,ORDER_PRICE_OPEN);
  }

double HistoryOrderTakeProfit(ulong uticket)
  {
   return HistoryOrderGetDouble(uticket,ORDER_TP);
  }

double HistoryOrderStopLoss(ulong uticket)
  {
   return HistoryOrderGetDouble(uticket,ORDER_SL);
  }

double HistoryOrderLots(ulong uticket)
  {

   return HistoryOrderGetDouble(uticket,ORDER_VOLUME_INITIAL);
  }

double HistoryOrderProfit(ulong uticket)
  {
   ulong ut=-1;
   for(int i=HistoryDealsTotal(); i>=0; i--)
     {
      ut=HistoryDealGetTicket(i);
      long lid=HistoryDealGetInteger(ut,DEAL_POSITION_ID);

        {

         long ientry=HistoryDealGetInteger(ut,DEAL_ENTRY);

         if(ientry==DEAL_ENTRY_OUT)
           {
            double dprofit=HistoryDealGetDouble(uticket,DEAL_PROFIT);

           }

        }

     }

   return 0;
  }

double HistoryOrderSwap(ulong uticket)
  {
   if(HistoryOrderSelect(uticket))
      return HistoryDealGetDouble(uticket,DEAL_SWAP);

   return 0;
  }

double HistoryOrderCommission(ulong uticket)
  {
   if(HistoryOrderSelect(uticket))
      return HistoryDealGetDouble(uticket,DEAL_COMMISSION);

   return 0;
  }

int HistoryOrderMagicNumber(ulong uticket)
  {
   return (int)HistoryOrderGetInteger(uticket,ORDER_MAGIC);
  }

datetime HistoryOrderOpenTime(ulong uticket)
  {

   return (datetime)HistoryOrderGetInteger(uticket,ORDER_TIME_DONE);
  }

datetime HistoryOrderCloseTime(ulong uticket)
  {

   return (datetime)HistoryOrderGetInteger(uticket, ORDER_TIME_DONE);
  }

datetime OrderCloseTime(ulong uticket)
  {
   if(HistoryOrderSelect(uticket))
      return (datetime)HistoryOrderGetInteger(uticket, ORDER_TIME_DONE);

   return 0; //invalid time
  }

bool HistoryOrderSelect(ulong &uticket,ulong index,int select,int pool=MODE_TRADES)
  {
   if(select==SELECT_BY_POS)
      uticket=HistoryOrderGetTicket((uint)index);
   else
      uticket=HistoryOrderSelect(index);

   return (uticket>0);
  }

bool IsConnected()
  {
   return (bool)TerminalInfoInteger(TERMINAL_CONNECTED);
  }

bool IsTradeAllowed()
  {
   return (bool)AccountInfoInteger(ACCOUNT_TRADE_ALLOWED);
  }

bool IsTradeContextBusy()
  {
   return false;
  }

double AccountBalance()
  {
   return AccountInfoDouble(ACCOUNT_BALANCE);
  }

double AccountProfit()
  {
   return AccountInfoDouble(ACCOUNT_PROFIT);
  }

double AccountEquity()
  {
   return AccountInfoDouble(ACCOUNT_EQUITY);
  }

double AccountMargin()
  {
   return AccountInfoDouble(ACCOUNT_MARGIN);
  }

double AccountFreeMargin()
  {
   return AccountInfoDouble(ACCOUNT_MARGIN_FREE);
  }

long AccountNumber()
  {
   return AccountInfoInteger(ACCOUNT_LOGIN);
  }

int AccountLeverage()
  {
   return (int)AccountInfoInteger(ACCOUNT_LEVERAGE);
  }

string AccountServer()
  {
   return AccountInfoString(ACCOUNT_SERVER);
  }

int DayOfWeek()
  {
   MqlDateTime mtm;
   TimeCurrent(mtm);
   return mtm.day_of_week;
  }

int TimeDayOfWeek(datetime dtmTime)
  {
   MqlDateTime mtm;
   TimeToStruct(dtmTime,mtm);
   return mtm.day_of_week;
  }

int Year()
  {
   MqlDateTime mtm;
   TimeCurrent(mtm);
   return mtm.year;
  }

int Hour()
  {
   MqlDateTime mtm;
   TimeCurrent(mtm);
   return mtm.hour;
  }

int Minute()
  {
   MqlDateTime mtm;
   TimeCurrent(mtm);
   return mtm.min;
  }

string WindowExpertName()
  {
   return MQLInfoString(MQL_PROGRAM_NAME);
  }

int WindowFind(string name)
  {
   int window=-1;
   if((ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL_PROGRAM_TYPE)==PROGRAM_INDICATOR)
     {
      window=ChartWindowFind();
     }
   else
     {
      window=ChartWindowFind(0,name);
      if(window==-1)
         Print(__FUNCTION__+"(): Error = ",GetLastError());
     }
   return(window);
  }

long WindowBarsPerChart()
  {
   return ChartGetInteger(ChartID(),CHART_VISIBLE_BARS,0);
  }

double WindowPriceMax(int index)
  {
   return ChartGetDouble(0,CHART_PRICE_MAX,index);
  }

double WindowPriceMin(int index)
  {
   return ChartGetDouble(0,CHART_PRICE_MIN,index);
  }

bool IsVisualMode()
  {

   return (bool)MQLInfoInteger(MQL_VISUAL_MODE);
  }

bool IsTesting()
  {
   return (bool)MQLInfoInteger(MQL_TESTER);
  }

bool IsOptimization()
  {
   return (bool)MQLInfoInteger(MQL_OPTIMIZATION);
  }

string AccountCurrency()
  {
   return AccountInfoString(ACCOUNT_CURRENCY);
  }

double iMAOnArray(double &array[],
                  int total,
                  int period,
                  int ma_shift,
                  int ma_method,
                  int shift)
  {
   double buf[],arr[];
   if(total==0)
      total=ArraySize(array)

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

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

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

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

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

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

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