您现在的位置:外汇网 > 外汇随笔 >

如何分别统计多单和空单的盈利值源码

2020-08-09 09:13来源:kjc外汇网编辑:kjc小编人气:


既这篇文章的扩展思路:如何统计持仓中的总获得利润源码

当我们学会了编写持仓总获得利润,那么我们如何分开的统计多单和空单的获得利润值呢,我们今天就来实现MT4软件里这个编程思路

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
double OrderProfits(int type) //统计持仓获得利润值
  {
   double a=0;          //初始化一个值
   int t=OrdersTotal(); //获取总持仓单数
    for(int i=0;i<t;i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) //统计有效订单
          {
            
             if(OrderType()==OP_BUY || type==0)//获取Buy单数据
               {
                 a+=OrderCommission()+OrderSwap()+OrderProfit();//手续费,隔夜利息,获得利润
               }
             if(OrderType()==OP_SELL || type==1)//获取Sell单
               {
                 a+=OrderCommission()+OrderSwap()+OrderProfit();//手续费,隔夜利息,获得利润
               }
          }
      }
    return(a); //返回统计究竟
  }

这样我们就经由一个参数”type”来让法式自动区分OrderType()的究竟,其中OP_BUY透露Buy多单的类型,OP_SELL透露Sell空单的类型.这样我们不消零丁的造2个函数来实现这个例子,因为多造函数就会造成较量时间更加的累赘,这也是对法式的一种优化手段.

那么,我们如果要获得指定Magic(订单识别码),也就是EA的单子的统计数据,那么我们能够经由以下的例子实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
double MagicProfits(int type,int magic) //统计持仓获得利润值
  {
   double a=0;          //初始化一个值
   int t=OrdersTotal(); //获取总持仓单数
    for(int i=0;i<t;i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) //统计有效订单
          {
            if(OrderMagicNumber()==magic)//统计指定识别码和订单识别码相成家的单子
             {
             if(OrderType()==OP_BUY || type==0)//获取Buy单和Sell单
               {
                 a+=OrderCommission()+OrderSwap()+OrderProfit();//手续费,隔夜利息,获得利润
               }
             if(OrderType()==OP_SELL || type==1)//获取Buy单和Sell单
               {
                 a+=OrderCommission()+OrderSwap()+OrderProfit();//手续费,隔夜利息,获得利润
               }
              }
          }
      }
    return(a); //返回统计究竟
  }

从上面的例子”if(OrderMagicNumber()==magic)“,能够看到只需要我们加这样一个判断的前提即可获取EA中的多单和空单统计数据信息,那么如何使用呢?你能够看以下例子:

1
2
3
4
  double buyprofits=OrderProfits(0);
  double Sellprofits=OrderProfits(1);
  //如果要统计所有持仓就很简洁,如下:
  double Allprofits=buyprofits+Sellprofits;

 

(本文主要讲述:如何分别统计多单和空单的盈利值源码,希望你从中受益)

版权与免责声明

  • 凡本网注明"来源:外汇交流-kjc外汇网的所有作品,版权均属于kjc外汇网,转载请必须注明https://www.kjcwh.com/note/1473.html。违反者本网将追究相关法律责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。