Комиссия брокера на экране(mt5) - страница 3

 
MrBrooklin #:
то возможно у Вас в названии валютной пары есть суффикс или префикс

Зрение уже подводит. Ещё раз посмотрел код индикатора и не нашёл, где используется входной параметр. Похоже, что он никак не может влиять на работу индикатора. Тогда больше не знаю, чем Вам помочь.

С уважением, Владимир.

 
Renat Akhtyamov #:
//+------------------------------------------------------------------+ //|                                              BrokerComission.mq5 | //|                                             Copyright 2024, 666. | //|                                      http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, 666." #property link      "http://www.mql5.com" #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(); Print("Comission: ",com);             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);   } //+------------------------------------------------------------------+

по нулям

 
Nikolay #:

по нулям

по нулям или нет, не интересно

что и где пишет, сообщения есть?

вкладка эксперты, экран

где сообщение выводится?

 
Renat Akhtyamov #:

по нулям или нет, не интересно

что и где пишет, сообщения есть?

вкладка эксперты, экран

где сообщение выводится?

скрин

Файлы:
test_komsa.jpg  165 kb
 
Nikolay #:

скрин

значит комиссии нет

 
Renat Akhtyamov #:

значит комиссии нет

скрин

Файлы:
komsa.jpg  516 kb
 
Рецепты MQL5 - История сделок и библиотека функций для получения свойств позиции
Рецепты MQL5 - История сделок и библиотека функций для получения свойств позиции
  • www.mql5.com
Пришло время подвести краткий итог по материалам предыдущих статей о свойствах позиции. В этой статье мы создадим несколько дополнительных функций для получения тех свойств, которые можно получить только после обращения к истории сделок. Мы также познакомимся со структурами данных, что сделает доступ к свойствам позиции и символа еще удобнее.
 
Nikolay #:

скрин

Угу. Значит говорите что торгуете у брокера)))

Если бы вы сразу написали, что торговля ведётся на кухне, то правильный ответ получили бы намного быстрее.

Вероятнее всего вы платите комиссию за выход из позиции, поэтому пока вы в позиции ваш индикатор ничего не показывает.

Давайте проверим это.

#property  script_show_inputs

input int day = 30;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   datetime to = TimeCurrent();
   datetime from = to - day * PeriodSeconds(PERIOD_D1);

   if(HistorySelect(from, to))
      for(int i = 0; i < HistoryDealsTotal(); i++)
        {
         ulong ticket = HistoryDealGetTicket(i);

         if((ENUM_DEAL_ENTRY)HistoryDealGetInteger(ticket, DEAL_ENTRY) == DEAL_ENTRY_IN)
            Print("IN  COMMISSION = ", DoubleToString(HistoryDealGetDouble(ticket, DEAL_COMMISSION), 2));

         if((ENUM_DEAL_ENTRY)HistoryDealGetInteger(ticket, DEAL_ENTRY) == DEAL_ENTRY_OUT)
            Print("OUT  COMMISSION = ", DoubleToString(HistoryDealGetDouble(ticket, DEAL_COMMISSION), 2));
        }
  }
//+------------------------------------------------------------------+
P.S.  Забыл добавить тему в избранное, поэтому не видел изменений в теме)
 
Aleksandr Slavskii #:

Угу. Значит говорите что торгуете у брокера)))

Если бы вы сразу написали, что торговля ведётся на кухне, то правильный ответ получили бы намного быстрее.

Вероятнее всего вы платите комиссию за выход из позиции, поэтому пока вы в позиции ваш индикатор ничего не показывает.

Давайте проверим это.

P.S.  Забыл добавить тему в избранное, поэтому не видел изменений в теме)

скрин

Файлы:
komsa2.jpg  162 kb
 
Nikolay #:

скрин

Попробуйте так.

#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);
            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);
  }
//+------------------------------------------------------------------+
Причина обращения: