请观看如何免费下载自动交易
请在Twitter上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
指标

在副图上显示最近的点差图和其平均值-MT4指标 - MetaTrader 4脚本

显示:
15711
等级:
(5)
已发布:
2020.04.01 04:52
已更新:
2020.04.01 17:05
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

该指标基于记录每一Tick点差变动而实现的,走势类似于报价图表。



最新的点差值在右边,价格刷新数据向左推移,黄色线显示的是平均点差。

输入的时候,“ExtSize”表示你想显示的最大数量,0代表用当前窗口K线数。

下图是输入ExtSize=100时的黄金点差:


主要代码计算部分:

   static MqlTick last_tick;
   int size = prev_calculated;
   if(iRefreshRates(last_tick))//last_tick.bid!=Bid
     {
      if(size<Showbars && size<rates_total)
         size+=1;
      if(size>1)
         ArrayCopy(SpreadBuffer,SpreadBuffer,1,0,size-1);

      double mspread=MarketInfo(_Symbol,MODE_SPREAD);
      if(mspread<=0)
         mspread=(last_tick.ask-last_tick.bid)/_Point;
      SpreadBuffer[0]=mspread;
      //---
      double sum=0.0;
      for(int i=0; i<size; i++)
         sum+=SpreadBuffer[i]; // Summation for the double
      if(size<=4)
         SpreadMapBuffer[0]=size>0?(sum/size):SpreadBuffer[0]; // Just divide the sum by the number
      else                                                     //--- now, get the highest value itself in the array
        {
         double terminal=SpreadBuffer[ArrayMaximum(SpreadBuffer)]+SpreadBuffer[ArrayMinimum(SpreadBuffer)];
         SpreadMapBuffer[0]=(sum-terminal)/(size-2);
        }
      ArrayInitialize(SpreadMapBuffer,SpreadMapBuffer[0]);
      ObjectMove(SpreadMapName, 0, last_tick.time, SpreadMapBuffer[0]);//修改移动
     }

程序包含两个文件,可以分别使用,就是计算方法有些区别。

在锁仓账户中用单边模式计算多个订单的价格 在锁仓账户中用单边模式计算多个订单的价格

MT4账户一般是双边模式,但如果你采用加仓的话,价格分布在不同位置,就不好知道当前的平均开单价,本脚本采用MT5的单边账户模型显示了一些相应的价格(平均开单价,保本价,中价),并可以计算到达某个价格下的利润。

标识交易时间指标 标识交易时间指标

该指标用于自定义标识交易品种标准的交易时间段,以此来区分分析标准交易时间段与非标准时间段的行情演变。比如看CHINAA50或者SPX500,分别将其在中国或者美国交易时间段标识出来,以便盘后分析。

跨周期均线指标 跨周期均线指标

MT4跨周期均线指标,在当前图表上显示大周期的均线,比如在M30上显示日线的均线。

跨周期布林线指标 跨周期布林线指标

跨周期布林线指标,在当前图表上显示大周期的布林线,比如在M30图表上显示日线的布林线。