zydshool 发表于 2020-12-12 09:45:16

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

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

最新的点差值在右边,价格刷新数据向左推移,黄色线显示的是平均点差。输入的时候,“ExtSize”表示你想显示的最大数量,0代表用当前窗口K线数。
主要代码计算部分:   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; // 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]);//修改移动   }在Wujun Chen的基础上做了一丝丝修改


kosya 发表于 2020-12-12 16:20:46

顶下

肖洪 发表于 2020-12-21 20:01:29

顶下

苏波点金 发表于 2020-12-25 19:08:46

谢谢

道道 发表于 2020-12-30 17:51:24

{:1_181:}

lr兑换 发表于 2021-1-4 11:27:56

支持下

小云图 发表于 2021-1-5 21:31:59

支持下

dser75xcwe 发表于 2021-1-6 20:09:49

支持下

博弈大帝 发表于 2021-1-9 16:19:51

{:1_179:}

laohu999 发表于 2021-1-12 10:00:51

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