找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
首页论坛EAHub 外汇论坛
查看: 11|回复: 0

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

[复制链接]

4万

主题

54

回帖

4万

积分

管理员

积分
45954
发表于 2026-8-23 00:11:00 | 显示全部楼层 |阅读模式
一般情况下,一个函数就返回一个值,比如说获取最后下单时间,获取账户盈亏等等。但在有些时候,我们想通过一个函数中的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++;

              }

           }

        }

     }

  }

//+------------------------------------------------------------------+复制代码

上面是完整的例子,核心知识点,在函数的参数前面多了一个&符号,函数通过修改参数返回需要的数值。如果要返回更多的值,可以在参数表里面多加几个&符号。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|EAHub外汇论坛

GMT+8, 2026-10-12 09:38 , Processed in 0.102274 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表