Архив категорий: Функции MQL4

Наиболее нужные и полезные функции для применения в советниках и индикаторах терминала MT4.

Тип первого ордера

Тип первого ордера Mql-4 string sy="" — символ, int mn — магик. int TypeFirstPos(string sy="",int mn=-1)   {    datetime t=TimeCurrent();    int      i,k=OrdersTotal();    if(sy=="0") sy=Symbol();    for(i=0; i<k; i++)      {       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))         {          if(OrderSymbol()==sy ||… Читать далее »

Проверка корректности Тейк-профита и Стоп-лосса

Проверка корректности Тейк-профита и Стоп-лосса Простая функция проверки уровней стоп-лосса и тейк-профита. Если какой-то из этих уровней слишком близко к цене открытия, функция вернет false. Во входные параметрый уже нужно передавать ценовые уровни стопа и тейка, а не их выражение в пунктах. Например, if(CheckStopLoss_Takeprofit(OP_BUY,Ask-(300*_Point),Ask + (300*_Point)) { //тут код модификации… Читать далее »

Сколько одинаковых фракталов подряд?

Функция MQL4: Сколько одинаковых фракталов подряд? Посчитаем, сколько одинаковых фракталов подряд с помощью двух простых функций: int FractalsUPpodryad() //Сколько подряд верхних фракталов   {    int count= 0;    for(int i=1; i<=100;i++) // считаем 100 свечей назад, этого достаточно      {       if(iFractals(Symbol(),0,MODE_UPPER,i)>0) count++; //прибавляем каждый найденный… Читать далее »

Уровень предполагаемого убытка в пунктах

Уровень предполагаемого убытка в пунктах Уровень предполагаемого убытка в пунктах открытых ордеров, у которых установлен стоп-лосс. Данная mql4-функция считает, сколько пунктов будет потеряно, если серия ордеров закроется по стоп-лоссу. Аргументы функции: sy — Символ; op — тип ордера(OP_BUY или OP_SELL); mn — магик ордеров. int BezubitokOrderov(string sy,int op,int mn)  … Читать далее »

Профит последнего открытого ордера в пунктах

Профит последнего открытого ордера в пунктах Профит или убыток последнего открытого ордера (который еще в рынке и не закрыт) в пунктах можно узнать с помощью нижеприведенной mql4-функции. Здесь: Sy — символ; op — тип ордера OP_BUY или OP_SELL; mn — магик. double ProfitPointLastOrder(string sy,int op,int mn)   {    datetime… Читать далее »

Как гарантировано открыть и/или модифицировать ордер в mql4

Предлагаю следующий простой и надежный вариант установки или модификации. Для этого используем цикл while. Установка ордера: bool open=false; int ticket = 0; while(!open && !IsStopped()) { ticket=OrderSend(Symbol(),OP_BUY,lot,Ask,300,0,0,»»,Magic,0,Lime); if(ticket > 0) open = true; } Здесь цикл while будет посылать запросы на открытие ордера до его успешной установки. Модификация (ордер должен… Читать далее »

Функция mql4 считает проценты бычьих и медвежьих баров

Функции считают, сколько бычьих и медвежьих баров по отношению друг к другу. Из скрина будет все понятно: Внешний параметр: input int    number_of_bars = 3; // Сколько баров принимать в расчет Вызов функций (как пример): MathRound(PercentsBullBars(number_of_bars)) // сколько процентов бычьих баров с округлением до целого числа MathRound(PercentsBearBars(number_of_bars))  // сколько процентов медвежьих баров с… Читать далее »

Функция прямоугольной метки mql4

Чтобы нарисовать прямоугольник на графике, на фоне которого потом можно вывести какую-нибудь информацию уже в виде текста, предлагаю следующую функцию. Каждая строка комментирована и все предельно понятно.     void DrawBox()          {            ObjectCreate(0,»Labe»,OBJ_RECTANGLE_LABEL,0,1,1,1,1);// Создаем метку            ObjectSetInteger(0,»Labe»,OBJPROP_XDISTANCE,8);      // X-координата            ObjectSetInteger(0,»Labe»,OBJPROP_YDISTANCE,60);     // Y-координата            ObjectSetInteger(0,»Labe»,OBJPROP_XSIZE,200);        // ширина метки           … Читать далее »

Закрылся ли последний ордер по тейк-профиту?

Функция mql4: закрылся ли предыдущий ордер по тейк-профиту? Функция возвращает: если true — по тейку, false — еще как-то. Нажмите лайк и функция откроется.[sociallocker] bool isCloseLastPosByTake(string sy=»», int op=-1, int magic=-1) {   datetime t;   double   ocp, otp;   int      dg, i, j=-1, k=OrdersHistoryTotal();   if (sy==»0″) sy=Symbol();  … Читать далее »

Функция безубытка mql4

Функция безубытка mql4 Внешние переменные: input int LevelProfit = 60;  //Уровень профита в пунктах, которого должна достигнуть позиция для того, чтобы её стоп был перенесён на уровень безубытка. input int LevelWLoss  =  30;  //  Уровень безубытка в пунктах, на который будет перенесён стоп позиции после того, как её профит достигнет… Читать далее »