Indicators Used
0
Views
0
Downloads
0
Favorites
ElliotsTarget3
//+------------------------------------------------------------------+
//| ElliotsTarget.mq4 |
//| Copyright © 2011, Vladimir Hlystov |
//| cmillion@narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, Vladimir Hlystov"
#property link "http://cmillion.narod.ru"
#property indicator_chart_window
//+------------------------------------------------------------------+
extern int before = 7; //ñêîëüêî ñâå÷åé äî ôðàêòàëà
extern int after = 2; //ñêîëüêî ñâå÷åé ïîñëå ôðàêòàëà
double Buffer[];
datetime TimeOld,TimeOldÂoëíà2;
//+------------------------------------------------------------------+
int init()
{
Comment("ElliotsTarget","\n","Copyright © 2011, Vladimir Hlystov","\n","http://cmillion.narod.ru",
"\n","before",before,
"\n","after",after);
return(0);
}
//+------------------------------------------------------------------+
int deinit()
{
ObjectDelete("W1 ");
ObjectDelete("W2 ");
ObjectDelete("W3 ");
ObjectDelete("W3 _");
return(0);
}
//+------------------------------------------------------------------+
int start()
{
double fr,PricednBar1,PriceupBar1,PriceÂîëíà2;
string Name;
datetime TimednBar1,TimeupBar1,TimeÂoëíà2;
int Bar0,j;
for (int i=after; i<500; i++)
{
if (PricednBar1!=0 && PriceupBar1!=0) break;
if (PricednBar1==0)
{
fr = Fractal(MODE_LOWER,i);
if (fr!=0)
{
TimednBar1=Time[i];PricednBar1=fr;
if (Bar0==0)
{
Bar0=i;
for (j=0; j<Bar0; j++)
{
if (PriceÂîëíà2<High[j]) {PriceÂîëíà2=High[j];TimeÂoëíà2=Time[j];} //íàõîäèì ìàêñèìóì
}
}
}
}
if (PriceupBar1==0)
{
fr = Fractal(MODE_UPPER,i);
if (fr!=0)
{
TimeupBar1=Time[i];PriceupBar1=fr;
if (Bar0==0)
{
Bar0=i;
for (j=0; j<Bar0; j++)
{
if (PriceÂîëíà2>Low[j] || PriceÂîëíà2==0) {PriceÂîëíà2=Low[j];TimeÂoëíà2=Time[j];} //íàõîäèì ìèíèìóì
}
}
}
}
}
double Price0,Price1;
datetime Time0,Time1;
if (TimeupBar1>TimednBar1)
{
Time0 = TimeupBar1;
Time1 = TimednBar1;
Price0 = PriceupBar1;
Price1 = PricednBar1;
}
else
{
Time0 = TimednBar1;
Time1 = TimeupBar1;
Price0 = PricednBar1;
Price1 = PriceupBar1;
}
if ((Time0!=TimeOld)||(TimeÂoëíà2!=TimeOldÂoëíà2))
{
TimeOld=Time0;
TimeOldÂoëíà2 = TimeÂoëíà2;
datetime TimeEnd1 = TimeÂoëíà2+MathAbs(TimeupBar1-TimednBar1)*0.38;
datetime TimeEnd2 = TimeÂoëíà2+MathAbs(TimeupBar1-TimednBar1)*0.62;
double Wawes1 = MathAbs(Price0-Price1);
if (Wawes1*0.38<MathAbs(PriceÂîëíà2-Price0) && Wawes1*0.62>MathAbs(PriceÂîëíà2-Price0))
{
double PriceEnd1,PriceEnd2;
if (TimeupBar1>TimednBar1)
{
PriceEnd1 = PriceÂîëíà2+Wawes1*1.00;
PriceEnd2 = PriceÂîëíà2+Wawes1*1.62;
}
else
{
PriceEnd1 = PriceÂîëíà2-Wawes1*1.0;
PriceEnd2 = PriceÂîëíà2-Wawes1*1.62;
}
Name = "W1 ";
ObjectDelete(Name);
ObjectCreate(Name, OBJ_TREND, 0,Time1,Price1,Time0,Price0);
ObjectSet (Name, OBJPROP_COLOR, Green);
ObjectSet (Name, OBJPROP_STYLE, 0);
ObjectSet (Name, OBJPROP_WIDTH, 2);
ObjectSet (Name, OBJPROP_BACK, true);
ObjectSet (Name, OBJPROP_RAY, false);
Name = "W2 ";
ObjectDelete(Name);
ObjectCreate(Name, OBJ_TREND, 0,Time0,Price0,TimeÂoëíà2,PriceÂîëíà2);
ObjectSet (Name, OBJPROP_COLOR, Green);
ObjectSet (Name, OBJPROP_STYLE, 0);
ObjectSet (Name, OBJPROP_WIDTH, 0);
ObjectSet (Name, OBJPROP_BACK, true);
ObjectSet (Name, OBJPROP_RAY, false);
Name = "W3 ";
ObjectDelete(Name);
ObjectCreate(Name, OBJ_TREND, 0,TimeÂoëíà2,PriceÂîëíà2,TimeEnd1,PriceEnd1);
ObjectSet (Name, OBJPROP_COLOR, Gray);
ObjectSet (Name, OBJPROP_STYLE, STYLE_DASH);
ObjectSet (Name, OBJPROP_WIDTH, 0);
ObjectSet (Name, OBJPROP_BACK, true);
ObjectSet (Name, OBJPROP_RAY, false);
Name=StringConcatenate(Name,"_");
ObjectDelete(Name);
ObjectCreate(Name, OBJ_RECTANGLE,0,0,0,0,0);
ObjectSet (Name, OBJPROP_STYLE, STYLE_DASH);
ObjectSet (Name, OBJPROP_COLOR, Gray);
ObjectSet (Name, OBJPROP_BACK, false);
ObjectSet (Name, OBJPROP_TIME1 ,TimeEnd1);
ObjectSet (Name, OBJPROP_PRICE1,PriceEnd1);
ObjectSet (Name, OBJPROP_TIME2 ,TimeEnd2);
ObjectSet (Name, OBJPROP_PRICE2,PriceEnd2);
}
}
return(0);
}
//+------------------------------------------------------------------+
double Fractal(int tip,int bar)
{
int i,n;
double fr,fr1;
if (tip==MODE_UPPER)
{
fr1 = iFractals(NULL,0,MODE_UPPER,bar);
if (fr1==0) return(0);
i=bar;n=0;
while (true)
{
i++;
if (i>Bars) return(0);
fr = High[i];
if (fr==0) continue; else n++;
if (n>=before) break;
if (fr>fr1) return(0);
}
i=bar;n=0;
while (true)
{
i--;
if (i==0) return(0);
fr = High[i];
if (fr==0) continue; else n++;
if (n>=after) break;
if (fr>fr1) return(0);
}
return(fr1);
}
if (tip==MODE_LOWER)
{
fr1 = iFractals(NULL,0,MODE_LOWER,bar);
if (fr1==0) return(0);
i=bar;n=0;
while (true)
{
i++;
if (i>Bars) return(0);
fr = Low[i];
if (fr==0) continue; else n++;
if (n>=before) break;
if (fr<fr1) return(0);
}
i=bar;n=0;
while (true)
{
i--;
if (i==0) return(0);
fr = Low[i];
if (fr==0) continue; else n++;
if (n>=after) break;
if (fr<fr1) return(0);
}
return(fr1);
}
}
//+------------------------------------------------------------------+
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
---