yyqkorea 发表于 2022-2-19 10:47:53

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

该指标基于记录每一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=mspread;      //---      double sum=0.0;      for(int i=0; i<size; i++)         sum+=SpreadBuffer; // Summation for the double      if(size<=4)         SpreadMapBuffer=size>0?(sum/size):SpreadBuffer; // Just divide the sum by the number      else                                                   //--- now, get the highest value itself in the array      {         double terminal=SpreadBuffer+SpreadBuffer;         SpreadMapBuffer=(sum-terminal)/(size-2);      }      ArrayInitialize(SpreadMapBuffer,SpreadMapBuffer);      ObjectMove(SpreadMapName, 0, last_tick.time, SpreadMapBuffer);//修改移动   }
程序包含两个文件,可以分别使用,就是计算方法有些区别。



jaryk 发表于 2022-2-19 11:56:02

感谢楼主分享!!!!

熊啊熊 发表于 2022-2-25 14:22:08

{:1_181:}

沙皮猫 发表于 2022-3-13 12:08:01

两个指标有什么不一样??

太阳神 发表于 2022-3-15 12:13:58

{:1_186:}

大小王 发表于 2022-3-15 22:58:26

顶下

帮主 发表于 2022-3-16 22:37:36

{:1_181:}

廖国张 发表于 2022-3-18 12:55:04

顶下

操你妈妈 发表于 2022-3-18 15:13:05

支持下

饭后一个大苹果 发表于 2022-3-19 16:45:05

{:1_179:}
页: [1] 2 3 4 5 6
查看完整版本: 在副图上显示最近的点差图和其平均值-MT4指标 - MetaTrader 4脚本