Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1045

 
Artyom Trishkin:

Может быть вы выложили декомпилированный код? Может просили что-то ещё, что связано с декомпиляцией исполняемого файла?

нет, вопросы был в переводе кода с mql4 на mql5
Я все сделал вроде, но была ошибка во время работы, я попросил помочь разобраться

 
Roman Sharanov:

нет, вопросы был в переводе кода с mql4 на mql5
Я все сделал вроде, но была ошибка во время работы, я попросил помочь разобраться

Странно. Код был? Может в нём были признаки декомпиляции?

 

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


   if(direction==0)
      open_label=open_label+"Buy  "+ "V = "+DoubleToString(V,2)+" price = "+DoubleToString(price_open,_Digits)+
                  " SL = "+DoubleToString(SL,_Digits)+"  TP = "+DoubleToString(TP,_Digits);
   else   
      open_label=open_label+"Sell  "+ "V = "+DoubleToString(V,2)+" price = "+DoubleToString(price_open,_Digits)+
                  " SL = "+DoubleToString(SL,_Digits)+"  TP = "+DoubleToString(TP,_Digits);
   
    Print(open_label);

   if(direction==0 && last.ask<=price_open)
      {
        if(!trade.PositionOpen(_Symbol,ORDER_TYPE_BUY,V,price_open,SL,TP))
          Print("Метод PositionOpen() потерпел неудачу. Код возврата=",trade.ResultRetcode(),
            ". Описание кода: ",trade.ResultRetcodeDescription());
        else
          Print("Метод PositionOpen() выполнен успешно. Код возврата=",trade.ResultRetcode(),
            " (",trade.ResultRetcodeDescription(),")");
      }


2019.05.20 21:53:24.814 position_open (XAUUSD,M10) Wait for Buy  V = 1.00 price = 1278.15 SL = 0.00  TP = 0.00

2019.05.20 21:53:34.002 position_open (XAUUSD,M10) CTrade::OrderSend: market buy 1.00 XAUUSD [invalid volume]

2019.05.20 21:53:34.002 position_open (XAUUSD,M10) Метод PositionOpen() потерпел неудачу. Код возврата=10014. Описание кода: invalid volume

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
ребят всем привет,  подскажите как посчитать комиссию по открытым сделкам в мт5 том или подскажите може где есть готовая ф-ция
 
Aleksandr Egorov:
ребят всем привет,  подскажите как посчитать комиссию по открытым сделкам в мт5 том или подскажите може где есть готовая ф-ция
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

// Комиссия всех открытых позиций.
double GetSumCommission()
{
  double Sum = 0;
  
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS))
      Sum += OrderCommission();
      
  return(Sum);
}
 
Aleksandr Egorov:
ребят всем привет,  подскажите как посчитать комиссию по открытым сделкам в мт5 том или подскажите може где есть готовая ф-ция
PositionGetDouble(POSITION_COMMISSION)

Или CPositionInf Commission

 
Konstantin Nikitin:

Или CPositionInf Commission

Не пашет давно.

 
fxsaber:

Не пашет давно.

да кстати, думал может у меня руки корявые по всякому попробовал не пашет, а ваша ф-ция четко пашет, в любом случае все вам спасибо за то что откликнулись,

хотя бы понял откуда ноги расту где брать эту комиссию )) походу написал еще свою ф-цию , новичек в мт5 так что сильно не пинайте если можно оцените правильно не правильно 

ну считает правильно вроде все проверил 

double PROFIT()     {

   double  rez=0, alprof=0,svap=0,commicion=0;

   ulong ticet=0,tikett=0;

   long  entry=0;

   string com="";

   ulong tik;

   ulong ord;

   int i=0;

   for(i=PositionsTotal()-1;i>=0;i--) 

     {

      if(PositionGetSymbol(i)==Symbol() || PositionGetSymbol(i)==Pair)

        {

         if((tik=PositionGetTicket(i))>0)

           {

            alprof+=PositionGetDouble(POSITION_PROFIT);

            svap+=PositionGetDouble(POSITION_SWAP);

           }

        }

     }

   HistorySelect(0,TimeCurrent());

   for(uint r=HistoryDealsTotal()-1;r>0;r--) 

     {

      if((tikett=HistoryDealGetTicket(r))>0) 

        {

         ord=HistoryDealGetInteger(tikett,DEAL_ORDER);

         entry =HistoryDealGetInteger(tikett,DEAL_ENTRY);

         if(entry==DEAL_ENTRY_IN)

           {

            for(int t=PositionsTotal()-1;t>=0;t--) 

              {

               if(tik==ord)

                 {

                  commicion+=HistoryDealGetDouble(tikett,DEAL_COMMISSION);

                 }

              }

           }

        }

     }

   rez+=alprof+commicion+svap;

   return(rez);   }

 
Aleksandr Egorov:

да кстати, думал может у меня руки корявые по всякому попробовал не пашет, а ваша ф-ция четко пашет, в любом случае все вам спасибо за то что откликнулись,

хотя бы понял откуда ноги расту где брать эту комиссию )) походу написал еще свою ф-цию , новичек в мт5 так что сильно не пинайте если можно оцените правильно не правильно 

ну считает правильно вроде все проверил 

Не правильно, но для новичка перспективно. Сами разберетесь. Единственное, закладывайтесь на максимальную скорость выполнения всех функций, иначе в Тестере будет жутко тормозить. Правильнее всего - написать два варианта: один для реала, другой - Тестер.

 

Пытался скачать бесплатного советника в маркете, не получилось...

Подскажите эту простоту, я в этом деле пока новичок.

Куда нажимать и что понимать ?

СПАСИБО.