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

jayMetaTrader 4 指标4年前 (2021-07-11)364
最近由于各种因素浮动点差有些扩大,该指标可以显示当前价格最近的点差变化,你可以在点差较小的时候进行交易以减少交易成本。 - 在MQL5代码库免费下载MetaTrader 4的'在副图上显示最近的点差图和其平均值-MT4指标' ('meridian28')指标, 2020.04.01...

该指标基于记录每一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 doubleif(size<=4) SpreadMapBuffer[0]=size>0?(sum/size):SpreadBuffer[0]; // Just divide the sum by the numberelse //--- 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]);//修改移动 }

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

----------------------

打包下載:ZIP下載

----------------------

扫描二维码推送至手机访问。

本文转载自互联网,如有侵权,联系删除。

本文链接:https://www.fxajax.com/MT4indicators/128833.html

您暂未设置收款码

请在主题配置——文章设置里上传

扫描二维码手机访问