"Swing-ZZ-with-alert" indicator, conversion code mq4 to prorealtime
Forums › ProRealTime English forum › ProBuilder support › "Swing-ZZ-with-alert" indicator, conversion code mq4 to prorealtime
- This topic has 0 replies, 1 voice, and was last updated 5 years ago by Mussu.
-
-
05/01/2019 at 1:51 PM #97463
//+——————————————————————+
//| Swing_ZZ.mq4 |
//+——————————————————————+//—- Alert by FerruFx
#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 Blue
#property indicator_color3 Red//—- indicator parameters
extern int minBars = 2;
extern bool SignalAlert = false;
extern bool SendAlertEmail = false;//—- indicator buffers
double zzL[];
double zzH[];
double zz[];//—- Alert
int up =0;
int down =0;
string Timeframe=””;
double time_frame;//+——————————————————————+
//| 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] && hLastLow[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_mLow[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] && hLastLow[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_mLow[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 (lLasthLast_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
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
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 (hLastLow[i] && fs==2) // Òåíäåíöèÿ íà òåêóùåì áàðå íèñõîäÿùàÿ
{
bi=i; tbi=Time[i]; zz[bi]=Low[bi]; zzL[bi]=Low[bi]; zzH[bi]=0;
}
//===================================================================================================
// Íóëåâîé áàð. Ðàñ÷åò ïåðâîãî ëó÷à ZigZag-aai0=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
-
AuthorPosts
Find exclusive trading pro-tools on