Swing Zigzag MT4 Indicator

Swing Zigzag MT4 Indicator

更新日期:2022-11-15分类标签: 语言:中文平台:没限制

19 人已下载 手机查看

Swing Zigzag MT4 Indicator

//+——————————————————————+
//| Swing_ZZ.mq4 |
//+——————————————————————+
#property copyright “onix”
#property link “http://onix-trade.net/forum/index.php?s=&showtopic=118&view=findpost&p=131476”

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Aqua
#property indicator_color2 Red
#property indicator_color3 Blue

//—- indicator parameters
extern int minBars = 2;

//—- indicator buffers
double zzL[];
double zzH[];
double zz[];

//+——————————————————————+
//| Custom indicator initialization function |
//+——————————————————————+
int init()
{
// IndicatorBuffers(3);
//—- drawing settings
SetIndexStyle(2,DRAW_ARROW);
SetIndexStyle(1,DRAW_ARROW);
SetIndexStyle(0,DRAW_SECTION);
SetIndexArrow(2,159);
SetIndexArrow(1,159);
//—- indicator buffers mapping
SetIndexBuffer(0,zz);
SetIndexBuffer(1,zzH);
SetIndexBuffer(2,zzL);
SetIndexEmptyValue(0,0.0);
SetIndexEmptyValue(1,0.0);
SetIndexEmptyValue(2,0.0);

//—- indicator short name
IndicatorShortName(“Swing_ZZ(“+minBars+”)”);
//—- initialization done
return(0);
}
//+——————————————————————+
//| |
//+——————————————————————+
int start()
{
int cbi;
double lLast=0,hLast=0;
int fs=0;
int ai,bi,ai0,aip0,bi0,bip0;
datetime tai,tbi,taip,tbip,ti;

// 襄疱戾眄 潆 砚桧泐?绵眄?
double lLast_m=0, hLast_m=0;
int countBarExt; // 聍弪麒?忭屮龛?徉痤?
int countBarl,countBarh;
int i,n;

ArrayInitialize(zz,0.0);
ArrayInitialize(zzL,0.0);
ArrayInitialize(zzH,0.0);

 

// lLast, hLast – 扈龛祗??爨犟桁箪 嚓蜩忭钽?徉疣
// lLast_m, hLast_m – 扈龛祗??爨犟桁箪 “镳铎彐篁铟睇? 徉痤?

// cbi=Bars-IndicatorCounted()-1;
cbi=Bars-1;
//———————————
for (i=cbi; i>=0; i–)
{
//————————————————-
// 玉蜞磬怆桠噱?磬鬣朦睇?珥圜屙? 扈龛祗爨 ?爨犟桁箪?徉疣
if (lLast==0) {lLast=Low[i]; hLast=High[i]; ai=i; bi=i;}
if (ti!=Time[i])
{
ti=Time[i];
if (lLast_m==0 && hLast_m==0)
{
if (lLast>Low[i] && hLast<High[i]) // 马屮龛?徉?
{
lLast=Low[i];hLast=High[i];lLast_m=Low[i];hLast_m=High[i];countBarExt++;
if (fs==1) {countBarl=countBarExt; ai=i; tai=Time[i];}
else if (fs==2) {countBarh=countBarExt; bi=i; tbi=Time[i];}
else {countBarl++;countBarh++;}
}
else if (lLast<=Low[i] && hLast<High[i]) // 义礓屙鲨 磬 蝈牦?徉疱 忸聃钿
{
lLast_m=0;hLast_m=High[i];countBarl=0;countBarExt=0;
if (fs!=1) countBarh++;
else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; ai=i; tai=Time[i];}
}
else if (lLast>Low[i] && hLast>=High[i]) // 义礓屙鲨 磬 蝈牦?徉疱 龛聃钿
{
lLast_m=Low[i];hLast_m=0;countBarh=0;countBarExt=0;
if (fs!=2) countBarl++;
else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; bi=i; tbi=Time[i];}
}
}
else if (lLast_m>0 && hLast_m>0) // 马屮龛?徉?(镳邃簌栝)
{
if (lLast_m>Low[i] && hLast_m<High[i]) // 马屮龛?徉?
{
lLast=Low[i];hLast=High[i];lLast_m=Low[i];hLast_m=High[i];countBarExt++;
if (fs==1) {countBarl=countBarExt; ai=i; tai=Time[i];}
else if (fs==2) {countBarh=countBarExt; bi=i; tbi=Time[i];}
else {countBarl++;countBarh++;}
}
else if (lLast_m<=Low[i] && hLast_m<High[i]) // 义礓屙鲨 磬 蝈牦?徉疱 忸聃钿
{
lLast_m=0;hLast_m=High[i];countBarl=0;countBarExt=0;
if (fs!=1) countBarh++;
else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; ai=i; tai=Time[i];}
}
else if (lLast_m>Low[i] && hLast_m>=High[i]) // 义礓屙鲨 磬 蝈牦?徉疱 龛聃钿
{
lLast_m=Low[i];hLast_m=0;countBarh=0;countBarExt=0;
if (fs!=2) countBarl++;
else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; bi=i; tbi=Time[i];}
}
}
else if (lLast_m>0)
{
if (lLast_m>Low[i] && hLast<High[i]) // 马屮龛?徉?
{
lLast=Low[i];hLast=High[i];lLast_m=Low[i];hLast_m=High[i];countBarExt++;
if (fs==1) {countBarl=countBarExt; ai=i; tai=Time[i];}
else if (fs==2) {countBarh=countBarExt; bi=i; tbi=Time[i];}
else {countBarl++;countBarh++;}
}
else if (lLast_m<=Low[i] && hLast<High[i]) // 义礓屙鲨 磬 蝈牦?徉疱 忸聃钿
{
lLast_m=0;hLast_m=High[i];countBarl=0;countBarExt=0;
if (fs!=1) countBarh++;
else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; ai=i; tai=Time[i];}
}
else if (lLast_m>Low[i] && hLast>=High[i]) // 义礓屙鲨 磬 蝈牦?徉疱 龛聃钿
{
lLast_m=Low[i];hLast_m=0;countBarh=0;countBarExt=0;
if (fs!=2) countBarl++;
else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; bi=i; tbi=Time[i];}
}
}
else if (hLast_m>0)
{
if (lLast>Low[i] && hLast_m<High[i]) // 马屮龛?徉?
{
lLast=Low[i];hLast=High[i];lLast_m=Low[i];hLast_m=High[i];countBarExt++;
if (fs==1) {countBarl=countBarExt; ai=i; tai=Time[i];}
else if (fs==2) {countBarh=countBarExt; bi=i; tbi=Time[i];}
else {countBarl++;countBarh++;}
}
else if (lLast<=Low[i] && hLast_m<High[i]) // 义礓屙鲨 磬 蝈牦?徉疱 忸聃钿
{
lLast_m=0;hLast_m=High[i];countBarl=0;countBarExt=0;
if (fs!=1) countBarh++;
else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; ai=i; tai=Time[i];}
}
else if (lLast>Low[i] && hLast_m>=High[i]) // 义礓屙鲨 磬 蝈牦?徉疱 龛聃钿
{
lLast_m=Low[i];hLast_m=0;countBarh=0;countBarExt=0;
if (fs!=2) countBarl++;
else {lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0; bi=i; tbi=Time[i];}
}
}

// 物疱溴?屐 磬镳噔脲龛?蝠屙溧.
if (fs==0)
{
if (lLast<lLast_m && hLast>hLast_m) // 忭篁疱眄栝 徉?
{
lLast=Low[i]; hLast=High[i]; ai=i; bi=i; countBarl=0;countBarh=0;countBarExt=0;
}

if (countBarh>countBarl && countBarh>countBarExt && countBarh>minBars)
{
lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0;
fs=1;countBarh=0;countBarl=0;countBarExt=0;
zz[bi]=Low[bi];
zzL[bi]=Low[bi];
zzH[bi]=0;
ai=i;
tai=Time[i];
}
else if (countBarl>countBarh && countBarl>countBarExt && countBarl>minBars)
{
lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0;
fs=2;countBarl=0;countBarh=0;countBarExt=0;
zz[ai]=High[ai];
zzH[ai]=High[ai];
zzL[ai]=0;
bi=i;
tbi=Time[i];
}
}
else
{
if (lLast_m==0 && hLast_m==0)
{
countBarl=0;countBarh=0;countBarExt=0;
}

// 义礓屙鲨 忸聃钿
if (fs==1)
{
if (countBarl>countBarh && countBarl>countBarExt && countBarl>minBars) // 物疱溴?屐 蝾麝?耢屙?蝈礓屙鲨?
{
// 玎镱扈磬屐 珥圜屙桢 磬镳噔脲龛 蝠屙溧 fs 磬 镳邃簌屐 徉疱
ai0=iBarShift(Symbol(),0,tai);
bi0=iBarShift(Symbol(),0,tbi);
fs=2;
countBarl=0;

zz[ai]=High[ai];
zzH[ai]=High[ai];
zzL[ai]=0;
bi=i;
tbi=Time[i];

lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0;

for (n=0;countBarExt<minBars;n++)
{
if (lLast<Low[i+n+1] && hLast>High[i+n+1]) {countBarExt++; countBarh++; lLast=Low[i+n+1]; hLast=High[i+n+1]; hLast_m=High[i];}
else break;
}

lLast=Low[i]; hLast=High[i];

}
}

// 义礓屙鲨 龛聃钿
if (fs==2)
{
if (countBarh>countBarl && countBarh>countBarExt && countBarh>minBars) // 物疱溴?屐 蝾麝?耢屙?蝈礓屙鲨?
{
// 玎镱扈磬屐 珥圜屙桢 磬镳噔脲龛 蝠屙溧 fs 磬 镳邃簌屐 徉疱
ai0=iBarShift(Symbol(),0,tai);
bi0=iBarShift(Symbol(),0,tbi);
fs=1;
countBarh=0;

zz[bi]=Low[bi];
zzL[bi]=Low[bi];
zzH[bi]=0;
ai=i;
tai=Time[i];

lLast=Low[i]; hLast=High[i]; lLast_m=0; hLast_m=0;

for (n=0;countBarExt<minBars;n++)
{
if (lLast<Low[i+n+1] && hLast>High[i+n+1]) {countBarExt++; countBarl++; lLast=Low[i+n+1]; hLast=High[i+n+1]; lLast_m=Low[i];}
else break;
}

lLast=Low[i]; hLast=High[i];

}
}
}
}
if (i==0)
{
if (hLast<High[i] && fs==1) // 义礓屙鲨 磬 蝈牦?徉疱 忸聃钿
{
ai=i; tai=Time[i]; zz[ai]=High[ai]; zzH[ai]=High[ai]; zzL[ai]=0;
}
else if (lLast>Low[i] && fs==2) // 义礓屙鲨 磬 蝈牦?徉疱 龛聃钿
{
bi=i; tbi=Time[i]; zz[bi]=Low[bi]; zzL[bi]=Low[bi]; zzH[bi]=0;
}
//===================================================================================================
// 腕脲忸?徉? 朽聍弪 镥疴钽?塍鬣 ZigZag-a

ai0=iBarShift(Symbol(),0,tai);
bi0=iBarShift(Symbol(),0,tbi);

if (bi0>1) if (fs==1) {for (n=bi0-1; n>=0; n–) {zzH[n]=0.0; zz[n]=0.0;} zz[ai0]=High[ai0]; zzH[ai0]=High[ai0]; zzL[ai0]=0.0;}
if (ai0>1) if (fs==2) {for (n=ai0-1; n>=0; n–) {zzL[n]=0.0; zz[n]=0.0;} zz[bi0]=Low[bi0]; zzL[bi0]=Low[bi0]; zzH[bi0]=0.0;}

if (ti<Time[1]) i=2;

}
//====================================================================================================

}
//——————————————–

return(0);
}
//+——————————————————————+

如果你对文件有了解,请帮助投票!

If you are familiar with the file, please help vote!

平均评分 0 / 5. 投票数: 0

到目前为止还没有投票!成为第一位投票人。

相关资源

暂无评论

暂无评论...