一般情况下,一个函数就返回一个值,比如说获取最后下单时间,获取账户盈亏等等。
但在有些时候,我们想通过一个函数中的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++;
}
}
}
}
}
//+------------------------------------------------------------------+
上面是完整的例子,核心知识点,在函数的参数前面多了一个&符号,函数通过修改参数返回需要的数值。
如果要返回更多的值,可以在参数表里面多加几个&符号。