52评论

4收藏

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

avatar yyqkorea | 9136 人阅读 | 52 人评论 | 2022-02-19

指标基于记录每一Tick点差变动而实现的,走势类似于报价图表。
1.png
最新的点差值在右边,价格刷新数据向左推移,黄色线显示的是平均点差。
输入的时候,“ExtSize”表示你想显示的最大数量,0代表用当前窗口K线数。
下图是输入ExtSize=100时的黄金点差:
2.png
主要代码计算部分:
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]);//修改移动     }
程序包含两个文件,可以分别使用,就是计算方法有些区别。



""
还没有人打赏,支持一下

评论|共 52 个

jaryk

发表于 2022-2-19 11:56:02 | 显示全部楼层

感谢楼主分享!!!!

熊啊熊

发表于 2022-2-25 14:22:08 | 显示全部楼层

沙皮猫

发表于 2022-3-13 12:08:01 | 显示全部楼层

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

太阳神

发表于 2022-3-15 12:13:58 | 显示全部楼层

大小王

发表于 2022-3-15 22:58:26 | 显示全部楼层

顶下

帮主

发表于 2022-3-16 22:37:36 | 显示全部楼层

廖国张

发表于 2022-3-18 12:55:04 | 显示全部楼层

顶下

操你妈妈

发表于 2022-3-18 15:13:05 | 显示全部楼层

支持下

饭后一个大苹果

发表于 2022-3-19 16:45:05 | 显示全部楼层

您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则