您现在的位置:外汇网 > 外汇学习 >

MT4如何统计指定周期的盈利值

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


在MT4软件中如何来获取指定周期的数据,我们就要分析一下你指定的周期的规则,好比:鲁班外汇如今想获取今天的获得利润值情况,那么我们的一定要从一个起始时间,在这里我们假设时间为今天的0点00分00秒作为今天的统计时间范围.

在这里我们能够使用iTime(…)来获取指定的时间,我们先来看下这个函数的构造:

1
datetime  iTime(string symbol,int timeframe,int shift);

symbol透露指定的泉币兑,好比”EURUSD”,透露欧元兑美元
timeframe透露你要获取的时间周期,好比是日,照样周,照样小时等等.
shift 透露获取第几个汗青周期的数据节点.

弄懂iTime()函数的构造后我们来实现这个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//+------------------------------------------------------------------+
//|                                                         blog.mq4 |
//|                                          Copyright 2016, EA欧米伽教程 |
//|                                              http://www.mql2.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, 鲁班外汇"
#property link      "http://www.lubanea.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
    double yingli = today();//执行代码
    printf("统计究竟:"+DoubleToStr(yingli,2));
  
  }
double today() //今天的获得利润
  {
    datetime time0=iTime(Symbol(),PERIOD_D1,0);
    int t=OrdersHistoryTotal(); double a=0.0;
    for(int i=0;i<t;i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
          {
             if(OrderType()==OP_BUY || OrderType()==OP_SELL)
               {
                 if(OrderOpenTime()>=time0)
                   {
                     a+=OrderCommission()+OrderSwap()+OrderProfit();
                   }
               }
          }
      }
    return(a);
  }

那么我们知道了如何编写今天的获得利润值代码,我们能够扩展一下思路来时间最近一周的获得利润情况

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
double jinzhou() //最近一周
  {
    datetime timezhou=iTime(Symbol(),PERIOD_W1,0);
    int t=OrdersHistoryTotal(); double a=0.0;
    for(int i=0;i<t;i++)
      {
        if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true)
          {
             if(OrderType()==OP_BUY || OrderType()==OP_SELL)
               {
                 if(OrderOpenTime()>=timezhou)
                   {
                     a+=OrderCommission()+OrderSwap()+OrderProfit();
                   }
               }
          }
      }
    return(a);
  }

 

(本文主要讲述:MT4如何统计指定周期的盈利值,希望你从中受益)

版权与免责声明

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