Miscellaneous
0
Views
0
Downloads
0
Favorites
wlxFractals
//+------------------------------------------------------------------+
//| wlxFractals.mq4 |
//| Copyright © 2004, by konKop, GOODMAN, Mstera, af + wellx |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, by wellx"
#property link "http://www.metaquotes.net"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
//---- input parameters
extern int Equals = 5;
extern int nLeftUp = 2;
extern int nRightUp = 2;
extern int nLeftDown = 2;
extern int nRightDown = 2;
//---- buffers
double FractalsUp[];
double FractalsDown[];
//----
int pos = 0, cntup = 0, cntdown = 0, cnt = 0;
int r = 0, l = 0, e = 0;
int fup = 0, fdown = 0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexBuffer(0, FractalsUp);
SetIndexBuffer(1, FractalsDown);
//----
SetIndexStyle(0, DRAW_ARROW, 0, 0);
SetIndexArrow(0, 217);
//----
SetIndexStyle(1, DRAW_ARROW, 0, 0);
SetIndexArrow(1, 218);
//----
cntup = nLeftUp + nRightUp + Equals + 1;
cntdown = nLeftDown + Equals + 1;
if(cntup >= cntdown)
cnt = cntup;
if(cntup < cntdown)
cnt = cntdown;
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i=0, j=0;
int cbars = IndicatorCounted();
//----
if(cbars < 0)
return(-1);
//----
if(cbars > 0)
cbars--;
pos = 0;
//----
if(cbars > (Bars - cnt - 1))
pos =(Bars - cnt - 1);
else
pos = Bars - (cbars + nRightUp);
//----
while(pos >= nRightUp)
{
FractalsUp[pos] = NULL;
FractalsDown[pos] = NULL;
//ôÐÀÊÒÀË ÂÂÅÐÕ
r = nRightUp; //ïðîâåðÿåì ïðàâóþ ñòîðîíó ôðàêòàëà
//----
for(i = 1; i <= r; i++)
{
if(High[pos] <= High[pos-i])
break;
}
//åñëè ñïðàâà âñå ÎÊ òî i äîëæíî áûòü ðàâíî r+1
if(i == r + 1) //FractalsUp[pos]=High[pos];
{
l = nLeftUp; //ïðîâåðÿåì ëåâóþ ñòîðîíó ôðàêòàëà
e = Equals;
//----
for(j = 1; j <= l + Equals; j++)
{
if(High[pos] < High[pos+j])
break;
//----
if(High[pos] > High[pos+j])
l--;
//----
if(High[pos] == High[pos+j])
e--;
//----
if(l == 0)
{
FractalsUp[pos] = High[pos];
break;
}
//----
if(e < 0)
break;
}
}
//ÔÐÀÊÒÀË ÂÍÈÇ
r = nRightDown; //ïðîâåðÿåì ïðàâóþ ñòîðîíó ôðàêòàëà
//----
for(i = 1; i <= r; i++)
{
if(Low[pos] >= Low[pos-i])
break;
}
//----
if(i == r + 1) //FractalsUp[pos]=High[pos];
{
l = nLeftDown; //ïðîâåðÿåì ëåâóþ ñòîðîíó ôðàêòàëà
e = Equals;
//----
for(j = 1; j <= l + Equals; j++)
{
if(Low[pos] > Low[pos+j])
break;
//----
if(Low[pos] < Low[pos+j])
l--;
//----
if(Low[pos] == Low[pos+j])
e--;
//----
if(l == 0)
{
FractalsDown[pos] = Low[pos];
break;
}
if(e < 0)
break;
}
}
pos--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---