在副图上显示最近的点差图和其平均值-MT4指标
最近由于各种因素浮动点差有些扩大,该指标可以显示当前价格最近的点差变化,你可以在点差较小的时候进行交易以减少交易成本。 - 在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下載
----------------------
下一篇:外汇买日元可以吗?
相关文章