翻译的困难 :) - 页 5

 
fxsaber如果有#include <贸易/贸易.mqh>,请在后面插入这一行
如果在这之后--一切正常 )
 
Alexey Volchanskiy:

问题--我如何知道MQL5中的头寸佣金?

我在MQL4中是这样做的

MQL5中没有佣金。

我查看了订单属性,也没有佣金。我应该怎么做?

它是在一个符号的属性中的某处
 
Alexey Volchanskiy:

问题--我如何知道MQL5中的头寸佣金?

我在MQL4中是这样做的

MQL5中没有佣金。

我查看了订单属性,也没有佣金。我应该怎么做?

你应该在交易属性中寻找。HistoryDealGetDouble(ticket, DEAL_COMMISSION)。
 
Alexey Volchanskiy:

问题--我如何知道MQL5中的头寸佣金?

我在MQL4中是这样做的

MQL5中没有佣金。

我查看了订单属性,也没有佣金。我应该怎么做?

该库将在调用以下内容时返回正确的值

OrderCommission()

源代码显示如下

   static ulong GetPositionDealIn(const ulong HistoryTicket=0)
     {
      ulong Ticket=0;

      if((HistoryTicket==0) ? ::HistorySelectByPosition(::PositionGetInteger(POSITION_TICKET)) : ::HistorySelectByPosition(HistoryTicket))
        {
         const int Total=::HistoryDealsTotal();

         for(int i=0; i<Total; i++)
           {
            const ulong TicketDeal=::HistoryDealGetTicket(i);

            if(TicketDeal>0)
               if((ENUM_DEAL_ENTRY)::HistoryDealGetInteger(TicketDeal,DEAL_ENTRY)==DEAL_ENTRY_IN)
                 {
                  Ticket=TicketDeal;

                  break;
                 }
           }
        }

      return(Ticket);
     }

   static double GetPositionCommission(void)
     {
      double Commission=::PositionGetDouble(POSITION_COMMISSION);

      // На случай, если POSITION_COMMISSION не работает
      if(Commission==0)
        {
         const ulong Ticket=MT4ORDERS::GetPositionDealIn();

         if(Ticket>0)
           {
            const double LotsIn=::HistoryDealGetDouble(Ticket,DEAL_VOLUME);

            if(LotsIn>0)
               Commission=::HistoryDealGetDouble(Ticket,DEAL_COMMISSION)*::PositionGetDouble(POSITION_VOLUME)/LotsIn;
           }
        }

      return(Commission);
     }
 

在这里,我们开始...文件中没有POSITION_COMISSION 属性,交易属性中只有DEAL_COMISSION。

谢谢,我就知道文件中的另一个不准确之处。

 
那么佣金是如何被考虑在内的呢?它没有被加入到头寸的利润中?开仓后 是否会立即影响余额?
 
Dmitry Fedoseev:
那么佣金是如何被考虑在内的呢?它没有被加入到头寸的利润中?在交易后立即开仓,是否会影响余额?
是的。
 
fxsaber:

该库在调用时将返回正确的值

在源代码中,它是这样的

你是否在最后注释了定义,应该是这样的?还有一件事。我将在我的博客上制作一个视频卷轴,在YouTube上从MQL4翻译到MQL5。你介意我也翻译一下你的图书馆吗?当然是链接到kodobase。

/*
#define OrderClose  MT4ORDERS::MT4OrderClose
#define OrderModify MT4ORDERS::MT4OrderModify // нельзя, например: CTrade::OrderModify
#define OrderDelete MT4ORDERS::MT4OrderDelete // нельзя, например: CTrade::OrderDelete

#define OrdersHistoryTotal MT4ORDERS::MT4OrdersHistoryTotal

#define OrderTicket      MT4ORDERS::MT4OrderTicket
#define OrderType        MT4ORDERS::MT4OrderType // нельзя, например: CHistoryOrderInfo::OrderType
#define OrderLots        MT4ORDERS::MT4OrderLots
#define OrderSymbol      MT4ORDERS::MT4OrderSymbol
#define OrderComment     MT4ORDERS::MT4OrderComment
#define OrderOpenPrice   MT4ORDERS::MT4OrderOpenPrice
#define OrderOpenTime    MT4ORDERS::MT4OrderOpenTime
#define OrderStopLoss    MT4ORDERS::MT4OrderStopLoss
#define OrderTakeProfit  MT4ORDERS::MT4OrderTakeProfit
#define OrderClosePrice  MT4ORDERS::MT4OrderClosePrice
#define OrderCloseTime   MT4ORDERS::MT4OrderCloseTime
#define OrderExpiration  MT4ORDERS::MT4OrderExpiration
#define OrderMagicNumber MT4ORDERS::MT4OrderMagicNumber
#define OrderProfit      MT4ORDERS::MT4OrderProfit
#define OrderCommission  MT4ORDERS::MT4OrderCommission
#define OrderSwap        MT4ORDERS::MT4OrderSwap
#define OrderPrint       MT4ORDERS::MT4OrderPrint
*/
 
Alexey Viktorov:

这个怎么样...文档中没有POSITION_COMISSION 属性,只有DEAL_COMISSION交易属性。

谢谢,我就知道文件中的另一个不准确之处。

而在文档中并没有这样的属性,但它可以编译 )这里是终端帮助中的所有内容。

位置_音量

职位数量

价格

仓位价格

姿势_SL

未结头寸的止损水平

位置_TP

敞口头寸的获利水平

当前位置_价格

符号的当前价格

POSITION_SWAP

累积的互换

盈利

当前利润

 
Alexey Viktorov:
在交易的属性中寻找。HistoryDealGetDouble(ticket, DEAL_COMMISSION)。
那么,只有在平仓 后才能查出佣金?但它是在开盘时采取的,至少在阿尔普和机器人的ECN账户上。这不是好事。