文章 "编写"EA 交易"时,MQL5 标准交易类库的使用" - 页 3 1234 新评论 Yedelkin 2011.02.26 18:24 #21 COrderInfo 类中也有几行字return(FormatType(str,Type())); ... FormatType(type,Type()) ... if(m_type==Type() && m_state==State() && 但该类中没有 Type() 函数。 Yedelkin 2011.02.26 19:10 #22 文章第 1.4 节介绍了COrderInfo 类的功能,从描述来看,该类旨在处理活动挂单。建议如下:"要使用该类获取挂单的属性,我们首先要请求订单总数,然后按订单票号选择订单"。//选择指定时间段内的所有历史订单 if (HistorySelect(0,TimeCurrent())) // 所有订单 { // 获得订单总数 int o_total = OrdersTotal(); } 但如果HistorySelect() 函数是用来查询"交易和订单历史记录",即查询历史订单,为什么在查询有效挂单总数时要使用该函数呢? Yedelkin 2011.02.26 19:26 #23 Yedelkin: 在 COrderInfo 类中 ... 但该类中没有 Type() 函数。CDealInfo 和 CPositionInfo类 的情况也一样 Yedelkin 2011.02.26 21:42 #24 谁能解释一下?下面是 CDealInfo 类的一段代码://+------------------------------------------------------------------+ //|DealInfo.mqh | | //+------------------------------------------------------------------+ #include <Object.mqh> #include "SymbolInfo.mqh" //+------------------------------------------------------------------+ //| 类 CDealInfo。| //| 预约:用于访问历史交易信息的类。 //| 从 CObject 类派生。| //+------------------------------------------------------------------+ class CDealInfo : public CObject { ... public: ... //--- 快速访问字符串位置属性的方法 string Symbol() const; ... }; ... //+------------------------------------------------------------------+ //| 获取属性值 "DEAL_SYMBOL"。 //| INPUT: no.| //| 输出:属性值 "DEAL_SYMBOL"。 //|| 备注:没有。| //+------------------------------------------------------------------+ string CDealInfo::Symbol() const { return(HistoryDealGetString(m_ticket,DEAL_SYMBOL)); //愚蠢地返回 } ... //+------------------------------------------------------------------+ //| 将交易参数转换为文本。 //| INPUT:str - 接收字符串、| //| deal - 类实例指针。 //| 输出:格式化字符串。| //|| 备注:没有。| //+------------------------------------------------------------------+ string CDealInfo::FormatDeal(string& str) const { string type,volume,price,date; CSymbolInfo symbol; //--- 设置 symbol.Name(Symbol()); int digits=symbol.Digits(); //--- 形成交易说明 switch(Type()) { ... } //--- 返回结果 return(str); } ... //+------------------------------------------------------------------+这里的函数 CDealInfo::FormatDeal(string& str) 包含这一行: symbol.Name(Symbol()); 反过来,Symbol() 函数既定义在 CDealInfo 类本身中,也定义在客户端的标准函数 中。哪个函数作为参数传递给 symbol.Name() 函数?根据什么规则? Mykola Demko 2011.02.26 22:37 #25 Yedelkin:谁能解释一下?下面是 CDealInfo 类的一段代码:这里的函数 CDealInfo::FormatDeal(string& str) 包含这一行: 反过来,Symbol() 函数既定义在 CDealInfo 类本身中,也定义在客户端的标准函数 中。哪个函数作为参数传递给 symbol.Name() 函数?根据什么规则?与变量作用域的规则相同。如果一个变量在全局和局部范围内以同一个名称声明,那么在局部范围内,名称将指向局部变量,而在全局范围外,名称将指向全局变量。事实证明,如果在类中重载了一个标准函数,重载的主体将在类本身中调用,而标准函数的主体将在全局级别调用。重载函数的主体可以通过类指针在全局级别调用。 Yedelkin 2011.02.26 22:49 #26 Urain:这里的规则与变量作用域的 规则相同。如果一个变量在全局和局部范围内以相同的名称声明,那么在局部范围内,该名称将指向局部变量,而在全局范围外,则指向全局变量。事实证明,如果在类中重载了一个标准函数,重载的主体将在类本身中调用,而标准函数的主体将在全局级别调用。重载函数的主体可以通过类指针在全局级别调用。 非常感谢!非常清晰易懂! investeo 2012.01.01 15:12 #27 感谢塞缪尔撰写如此深入的文章。非常感谢。 Tonny Obare 2013.01.16 07:22 #28 漂亮易懂 [删除] 2016.01.17 17:57 #29 非常好的文章!我将以此为参考。 Amy Liu 2017.01.04 07:52 #30 第 1.4 章使用订单历史记录来描述COrderInfo,对吗? 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
COrderInfo 类中也有几行字
return(FormatType(str,Type())); ... FormatType(type,Type()) ... if(m_type==Type() && m_state==State() &&但该类中没有 Type() 函数。
文章第 1.4 节介绍了COrderInfo 类的功能,从描述来看,该类旨在处理活动挂单。建议如下:"要使用该类获取挂单的属性,我们首先要请求订单总数,然后按订单票号选择订单"。
但如果HistorySelect() 函数是用来查询"交易和订单历史记录",即查询历史订单,为什么在查询有效挂单总数时要使用该函数呢?在 COrderInfo 类中 ...
但该类中没有 Type() 函数。
谁能解释一下?下面是 CDealInfo 类的一段代码:
这里的函数 CDealInfo::FormatDeal(string& str) 包含这一行:
symbol.Name(Symbol());反过来,Symbol() 函数既定义在 CDealInfo 类本身中,也定义在客户端的标准函数 中。哪个函数作为参数传递给 symbol.Name() 函数?根据什么规则?谁能解释一下?下面是 CDealInfo 类的一段代码:
这里的函数 CDealInfo::FormatDeal(string& str) 包含这一行:
反过来,Symbol() 函数既定义在 CDealInfo 类本身中,也定义在客户端的标准函数 中。哪个函数作为参数传递给 symbol.Name() 函数?根据什么规则?与变量作用域的规则相同。如果一个变量在全局和局部范围内以同一个名称声明,那么在局部范围内,名称将指向局部变量,而在全局范围外,名称将指向全局变量。
事实证明,如果在类中重载了一个标准函数,重载的主体将在类本身中调用,而标准函数的主体将在全局级别调用。重载函数的主体可以通过类指针在全局级别调用。
这里的规则与变量作用域的 规则相同。如果一个变量在全局和局部范围内以相同的名称声明,那么在局部范围内,该名称将指向局部变量,而在全局范围外,则指向全局变量。
事实证明,如果在类中重载了一个标准函数,重载的主体将在类本身中调用,而标准函数的主体将在全局级别调用。重载函数的主体可以通过类指针在全局级别调用。