Hotabych
НиколайВладимирович

 
Уровень 7

  Торгую в компаниях:


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

Рейтинг 2088



РЕКОМЕНДУЮ



Комиссия брокера на экране mt5

Коллеги, приветствую!
Возможно ли создать индикатор, который после открытия сделки, отображает на экране комиссию брокера(на mt5)?
Если реализуете или скажете куда копать, было бы хорошо, спасибо
  • 0
  • Просмотров: 1215
  • 18 марта 2024, 13:11
  • Hotabych
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
ты пошто рекламируешь точку
avatar

  22  igrun Сообщений: 1574 - igrun

  • 18 марта 2024, 17:43
+
0
набросал вариант, только проверить не могу. брокер без комиссии:


//+------------------------------------------------------------------+
//|                                              BrokerComission.mq5 |
//|                                             Copyright 2024, AM2. |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, AM2."
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property indicator_chart_window

input string s="EURUSD";

#include <Trade\PositionInfo.mqh>

CPositionInfo pos;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutLabel(string text)
  {
//--- создадим текстовую метку
   ObjectCreate(0,"L",OBJ_LABEL,0,0,0);
//--- установим координаты метки
   ObjectSetInteger(0,"L",OBJPROP_XDISTANCE,111);
   ObjectSetInteger(0,"L",OBJPROP_YDISTANCE,22);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0,"L",OBJPROP_CORNER,2);
//--- установим текст
   ObjectSetString(0,"L",OBJPROP_TEXT,text);
//--- установим шрифт текста
   ObjectSetString(0,"L",OBJPROP_FONT,"Arial");
//--- установим размер шрифта
   ObjectSetInteger(0,"L",OBJPROP_FONTSIZE,12);
//--- установим цвет
   ObjectSetInteger(0,"L",OBJPROP_COLOR,Red);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Com()
  {
   double com=0;

   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionSelectByTicket(PositionGetTicket(i)))
        {
         if(PositionGetString(POSITION_SYMBOL)==_Symbol)
           {
            com=pos.Commission();
            break;
           }
        }
     }
   return(com);
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   PutLabel("Comission: "+string(Com()));

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


Редактирован: 20 марта 2024, 09:32
avatar

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

  • 20 марта 2024, 09:03
+
0
К сожалению не работает, на экране ничего не появляется(ни сразу, ни при открытии сделки)
avatar

  7  Hotabych Автор Сообщений: 30 - НиколайВладимирович

  • 20 марта 2024, 14:02
+
0
У меня тоже не работает.
Брокер АМаркетс
avatar

  19  alex30774 Сообщений: 715

  • 20 марта 2024, 14:16
+
+1
в нижнем правом углу смотрите:

avatar

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

  • 20 марта 2024, 14:16
+
0
открыл счет на амаркет, сейчас попробую отладить
avatar

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

  • 20 марта 2024, 14:55
+
+1
здесь надо копать.
готового варианта или функции не нашел.
быстро не сделаешь
Редактирован: 20 марта 2024, 17:39
avatar

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

  • 20 марта 2024, 15:27
+
0

У меня такая петрушка, после компиляции…
avatar

  7  Hotabych Автор Сообщений: 30 - НиколайВладимирович

  • 21 марта 2024, 07:05
+
+1
вопрос решен
#property indicator_chart_window
#property indicator_plots 0
//+------------------------------------------------------------------+
int OnInit()
  {
//--- создадим текстовую метку
   ObjectCreate(0, "L", OBJ_LABEL, 0, 0, 0);
//--- установим координаты метки
   ObjectSetInteger(0, "L", OBJPROP_XDISTANCE, 11);
   ObjectSetInteger(0, "L", OBJPROP_YDISTANCE, 22);
//--- установим угол графика, относительно которого будут определяться координаты точки
   ObjectSetInteger(0, "L", OBJPROP_CORNER, 2);
    ObjectSetInteger(0, "L", OBJPROP_ANCHOR, ANCHOR_RIGHT_LOWER);
//--- установим шрифт текста
   ObjectSetString(0, "L", OBJPROP_FONT, "Arial");
//--- установим размер шрифта
   ObjectSetInteger(0, "L", OBJPROP_FONTSIZE, 12);
//--- установим цвет
   ObjectSetInteger(0, "L", OBJPROP_COLOR, Red);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
string Com()
  {
   string com = "Нет открытой позиции.";

   for(int i = PositionsTotal() - 1; i >= 0; i--)
     {
      ulong ticket = PositionGetTicket(i);
      if(ticket > 0)
         if(PositionGetString(POSITION_SYMBOL) == _Symbol)
           {
            ulong position_ID = PositionGetInteger(POSITION_IDENTIFIER);
            double commission = 0;
            if(HistorySelectByPosition(position_ID))
               for(int j = 0; j < HistoryDealsTotal(); j++)
                 {
                  ticket = HistoryDealGetTicket(j);
                  commission += HistoryDealGetDouble(ticket, DEAL_COMMISSION);
                 }
            if(commission != 0)
               com = "Comission: " + DoubleToString(commission*2, 2);
            else
               com = "Comission: 0.0";
            break;
           }
     }
   return(com);
  }
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double& price[])
  {
   ObjectSetString(0, "L", OBJPROP_TEXT, Com());

   return(rates_total);
  }
//+------------------------------------------------------------------+
avatar

  7  Hotabych Автор Сообщений: 30 - НиколайВладимирович

  • 26 марта 2024, 16:08

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