在副图上显示最近的点差图和其平均值-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的基础上做了一丝丝修改
顶下 顶下 谢谢 {:1_181:} 支持下 支持下 支持下 {:1_179:} 谢谢