Группа "Стол заказов MQL"

Рейтинг 2073



РЕКОМЕНДУЮ



Индикатор МТ4 - только расчеты

Здравствуйте! Пожалуйста, создайте индикатор МТ4, который отображает на графике следующие:
— текущую просадку на счете;
— возможную прибыль в валюте депозита при срабатывании всех ТП;
— возможную прибыль в пунктах (4 значные) при срабатывании всех ТП;
— возможный убыток в валюте депозита при срабатывании всех СЛ;
— возможный убыток в пунктах (4 значные) при срабатывании всех СЛ;
— количество открытых позиций;
— прибыль и убыток за последний месяц в процентах и валюте депозита.
Если не установлен СЛ или ТП то индикатор отображает надпись УСТАНОВИТЕ ТП или СЛ.
В качестве информации. Работа будет вестись только на валютных парах, поэтому не обязательно проверять на инструментах как металлы, фьючерсы, акции, биткоины и другие.
Заранее благодарен!
  • +1
  • Просмотров: 3511
  • 23 августа 2018, 15:10
  • izzatilla
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Исправить советник
18 августа 2018
23 августа 2018

Комментарии (7)

+
0
покажите на скрине какие ордера будут в рынке в момент подсчета
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 23 августа 2018, 17:44
+
0
сделал 3 строчки:




//+------------------------------------------------------------------+
//|                                                       Profit.mq4 |
//|                                              Copyright 2018, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutLabel(string name,string text,int x,int y)
  {
//--- создадим текстовую метку
   ObjectCreate(0,name,OBJ_LABEL,0,0,0);
//--- установим координаты метки
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,name,OBJPROP_CORNER,2);
//--- установим текст
   ObjectSetString(0,name,OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,name,OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12);
//--- установим цвет
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   int co=0;
   double pp=0,lp=0;

   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderType()<2) co++;
         pp+=MathAbs((OrderOpenPrice()-OrderTakeProfit())/MarketInfo(SymbolName(i,0),MODE_POINT));
         lp+=MathAbs((OrderOpenPrice()-OrderStopLoss())/MarketInfo(SymbolName(i,0),MODE_POINT));
        }
     }

   PutLabel("pp","Профит в пунктах: "+(string)NormalizeDouble(pp,2),22,44);
   PutLabel("lp","Убыток в пунктах: "+(string)NormalizeDouble(lp,2),22,22);
   PutLabel("co","Число позиций: "+(string)co,22,66);

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+



остальное буду смотреть после уточнения информации.
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 23 августа 2018, 20:19
+
0
avatar

  5  izzatilla Автор Сообщений: 107 - telma

  • 23 августа 2018, 21:39
+
0
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 24 августа 2018, 20:43
+
0

Не работает.
avatar

  5  izzatilla Автор Сообщений: 107 - telma

  • 30 августа 2018, 05:11
+
0
avatar

  34  AM2 Сообщений: 15826 - Андрей

  • 30 августа 2018, 11:35
+
0
Спасибо
avatar

  5  izzatilla Автор Сообщений: 107 - telma

  • 30 августа 2018, 19:35

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари