MT4平台大字详细设置方法(2)

2020-02-21 18:35

extern int ExtDepth=12; extern int ExtDeviation=5; extern int ExtBackstep=3; //---- indicator buffers double ZigzagBuffer[]; double HighMapBuffer[]; double LowMapBuffer[];

int level=3; // recounting's depth bool downloadhistory=false;

//+------------------------------------------------------------------+

//| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() {

IndicatorBuffers(3); //---- drawing settings

SetIndexStyle(0,DRAW_SECTION); //---- indicator buffers mapping

SetIndexBuffer(0,ZigzagBuffer); SetIndexBuffer(1,HighMapBuffer); SetIndexBuffer(2,LowMapBuffer); SetIndexEmptyValue(0,0.0);

//---- indicator short name

IndicatorShortName(\//---- initialization done return(0); }

//+------------------------------------------------------------------+

//| | //+------------------------------------------------------------------+ int start() {

int i, counted_bars = IndicatorCounted(); int limit,counterZ,whatlookfor;

int shift,back,lasthighpos,lastlowpos; double val,res;

double curlow,curhigh,lasthigh,lastlow;

if (counted_bars==0 && downloadhistory) // history was downloaded {

ArrayInitialize(ZigzagBuffer,0.0); ArrayInitialize(HighMapBuffer,0.0); ArrayInitialize(LowMapBuffer,0.0);

}

if (counted_bars==0) {

limit=Bars-ExtDepth; downloadhistory=true; }

if (counted_bars>0) {

while (counterZ

res=ZigzagBuffer[i]; if (res!=0) counterZ++; i++; } i--; limit=i;

if (LowMapBuffer[i]!=0) {

curlow=LowMapBuffer[i]; whatlookfor=1; } else {

curhigh=HighMapBuffer[i]; whatlookfor=-1; }

for (i=limit-1;i>=0;i--) {

ZigzagBuffer[i]=0.0; LowMapBuffer[i]=0.0; HighMapBuffer[i]=0.0; } }

for(shift=limit; shift>=0; shift--) {

val=Low[iLowest(NULL,0,MODE_LOW,ExtDepth,shift)]; if(val==lastlow) val=0.0; else {

lastlow=val;

if((Low[shift]-val)>(ExtDeviation*Point)) val=0.0; else {

for(back=1; back<=ExtBackstep; back++) {

res=LowMapBuffer[shift+back];

if((res!=0)&&(res>val)) LowMapBuffer[shift+back]=0.0; } } }

if (Low[shift]==val) LowMapBuffer[shift]=val; else LowMapBuffer[shift]=0.0; //--- high

val=High[iHighest(NULL,0,MODE_HIGH,ExtDepth,shift)]; if(val==lasthigh) val=0.0; else {

lasthigh=val;

if((val-High[shift])>(ExtDeviation*Point)) val=0.0; else {

for(back=1; back<=ExtBackstep; back++) {

res=HighMapBuffer[shift+back];

if((res!=0)&&(res

if (High[shift]==val) HighMapBuffer[shift]=val; else HighMapBuffer[shift]=0.0; }

// final cutting if (whatlookfor==0) {

lastlow=0; lasthigh=0; } else {

lastlow=curlow; lasthigh=curhigh; }

for (shift=limit;shift>=0;shift--) {

res=0.0;

switch(whatlookfor) {

case 0: // look for peak or lawn

if (lastlow==0 && lasthigh==0) {

if (HighMapBuffer[shift]!=0) {

lasthigh=High[shift]; lasthighpos=shift; whatlookfor=-1;

ZigzagBuffer[shift]=lasthigh; res=1; }

if (LowMapBuffer[shift]!=0) {

lastlow=Low[shift]; lastlowpos=shift; whatlookfor=1;

ZigzagBuffer[shift]=lastlow; res=1; } }

break;

case 1: // look for peak

if (LowMapBuffer[shift]!=0.0 && LowMapBuffer[shift]

ZigzagBuffer[lastlowpos]=0.0; lastlowpos=shift;

lastlow=LowMapBuffer[shift]; ZigzagBuffer[shift]=lastlow; res=1; }

if (HighMapBuffer[shift]!=0.0 && LowMapBuffer[shift]==0.0) {

lasthigh=HighMapBuffer[shift]; lasthighpos=shift;

ZigzagBuffer[shift]=lasthigh; whatlookfor=-1; res=1; }

break; case -1: // look for lawn

if (HighMapBuffer[shift]!=0.0 && HighMapBuffer[shift]>lasthigh LowMapBuffer[shift]==0.0) {

ZigzagBuffer[lasthighpos]=0.0;

&&

&&

lasthighpos=shift;

lasthigh=HighMapBuffer[shift]; ZigzagBuffer[shift]=lasthigh; }

if (LowMapBuffer[shift]!=0.0 && HighMapBuffer[shift]==0.0) {

lastlow=LowMapBuffer[shift]; lastlowpos=shift;

ZigzagBuffer[shift]=lastlow; whatlookfor=1; }

break; default: return; } }

return(0); }

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| Stochastic.mq4 | //| Copyright ?2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+

#property copyright \#property link \

#property indicator_separate_window #property indicator_minimum 0 #property indicator_maximum 100 #property indicator_buffers 2


MT4平台大字详细设置方法(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:操作系统进程管理实验报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: