初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1045

 
Vladimir Baskakov:

对病情的正确拼写感到困惑,请帮助。

可能有两个选择。

  1. "MA慢 "比 "MA快 "高。
  2. "MA慢 "低于或等于 "MA快"。


相应地,结果的符号将是 "+"或"-"。如果符号是"-",你的条件将永远不会被满足,因为"-"将永远小于5*Point()。


换句话说,该代码将是

   if(ma_slow[0]>ma_slow[9])
      if(ma_slow[0]-ma_slow[9]>5*Point())
        {

        }
   if(ma_slow[9]>ma_slow[0])
      if(ma_slow[9]-ma_slow[0]>5*Point())
        {

        }
 
Vladimir Karputov:

可以有两种选择。

  1. "MA慢 "比 "MA快 "高
  2. "MA慢 "低于或等于 "MA快"。


相应地,结果的符号将是 "+"或"-"。如果符号是"-",你的条件将永远不会被满足,因为"-"将永远小于5*Point()。


换句话说,该代码将是

正是如此!第二个条件我也在考虑这样做;)谢谢
 
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) 等待购买 V = 1.00 价格 = 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 [无效量]

2019.05.20 21:53:34.002 position_open (XAUUSD,M10) PositionOpen() 方法失败。返回代码=10014。代码描述:无效的体积

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
嗨,伙计们,你们能告诉我如何计算MT5交易量的佣金,或者告诉我哪里有现成的功能
 
Aleksandr Egorov:
嗨,伙计们,你们能告诉我如何计算MT5交易量的佣金,或者告诉我哪里有现成的功能
#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:
嗨,伙计们,你们能告诉我如何计算MT5交易量的佣金,或者告诉我是否有现成的功能
PositionGetDouble(POSITION_COMMISSION)

CPositionInf 委员会

 
Konstantin Nikitin:

CPositionInf 委员会

已经有很长一段时间没有工作了。

 
fxsaber:

很长时间没有工作了。

我已经试过了,你的功能运行良好。 无论如何,非常感谢你的反馈。

我已经想好了在哪里获得佣金))我是MT5的新手,所以对它不太感兴趣,但如果不对,我还是要检查一下的

我不知道我说的对还是不对。

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);   }