设为首页 收藏本站 切换语言

函数如何返回两个或更多值?

| 发表于 2022-11-14 13:17:20 | 显示全部楼层 |复制链接

一般情况下,一个函数就返回一个值,比如说获取最后下单时间,获取账户盈亏等等。

但在有些时候,我们想通过一个函数中的for计算,同时获取多单持仓数量和空单持仓数量,应该怎么做呢?

直接上例子:

  1. //+------------------------------------------------------------------+
  2. //|                                               函数返回两个值.mq4 |
  3. //|                                                           漆学军 |
  4. //|                                           http://www.forexmt4.cn |
  5. //+------------------------------------------------------------------+
  6. #property copyright "漆学军"
  7. #property link      "http://www.forexmt4.cn"
  8. #property version   "1.00"
  9. #property strict
  10. int magic=555666;
  11. //+------------------------------------------------------------------+
  12. //| Script program start function                                    |
  13. //+------------------------------------------------------------------+
  14. void OnStart()
  15.   {
  16. //---
  17.    int b;
  18.    int s;
  19.    aaa(b,s);
  20.    Print(b,"-",s);
  21.   }
  22. //+------------------------------------------------------------------+
  23. void aaa(int &x,int &y)
  24.   {
  25.    x=0;
  26.    y=0;
  27.    for(int i=0; i<OrdersTotal(); i++)
  28.      {
  29.       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
  30.         {
  31.          int cmd=OrderType();
  32.          if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
  33.            {
  34.             if(cmd==OP_BUY)
  35.               {
  36.                x++;
  37.               }
  38.             if(cmd==OP_SELL)
  39.               {
  40.                y++;
  41.               }
  42.            }
  43.         }
  44.      }
  45.   }
  46. //+------------------------------------------------------------------+
复制代码

上面是完整的例子,核心知识点,在函数的参数前面多了一个&符号,函数通过修改参数返回需要的数值。

如果要返回更多的值,可以在参数表里面多加几个&符号。

如果有帮助,就支持一下我呗
举报

评论 使用道具

精彩评论2

kingvia
DD
| 发表于 2022-11-14 13:28:03 | 显示全部楼层
好像是在形参前面加&符号
举报

点赞 评论 使用道具

pxyhub
C
| 发表于 2022-11-16 17:41:10 | 显示全部楼层
正确~~~~~
举报

点赞 评论 使用道具

发新帖
EA交易
您需要登录后才可以评论 登录 | 立即注册

简体中文
繁體中文
English(英语)
日本語(日语)
Deutsch(德语)
Русский язык(俄语)
بالعربية(阿拉伯语)
Türkçe(土耳其语)
Português(葡萄牙语)
ภาษาไทย(泰国语)
한어(朝鲜语/韩语)
Français(法语)