一般情况下,一个函数就返回一个值,比如说获取最后下单时间,获取账户盈亏等等。 但在有些时候,我们想通过一个函数中的for计算,同时获取多单持仓数量和空单持仓数量,应该怎么做呢? 直接上例子:
- //+------------------------------------------------------------------+
-
- //| 函数返回两个值.mq4 |
-
- //| 漆学军 |
-
- //| http://www.forexmt4.cn |
-
- //+------------------------------------------------------------------+
-
- #property copyright "漆学军"
-
- #property link "http://www.forexmt4.cn"
-
- #property version "1.00"
-
- #property strict
-
-
- int magic=555666;
-
- //+------------------------------------------------------------------+
-
- //| Script program start function |
-
- //+------------------------------------------------------------------+
-
- void OnStart()
-
- {
-
- //---
-
- int b;
-
- int s;
-
- aaa(b,s);
-
- Print(b,"-",s);
-
- }
-
- //+------------------------------------------------------------------+
-
- void aaa(int &x,int &y)
-
- {
-
- x=0;
-
- y=0;
-
- for(int i=0; i<OrdersTotal(); i++)
-
- {
-
- if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
-
- {
-
- int cmd=OrderType();
-
- if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
-
- {
-
- if(cmd==OP_BUY)
-
- {
-
- x++;
-
- }
-
- if(cmd==OP_SELL)
-
- {
-
- y++;
-
- }
-
- }
-
- }
-
- }
-
- }
-
- //+------------------------------------------------------------------+
复制代码
上面是完整的例子,核心知识点,在函数的参数前面多了一个&符号,函数通过修改参数返回需要的数值。 如果要返回更多的值,可以在参数表里面多加几个&符号。 |