0
Views
0
Downloads
0
Favorites
1-3-6
//+------------------------------------------------------------------+
//| maloma 4 vicont 1-2-3.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, maloma."
#property indicator_chart_window
extern double level_1=1.2971;//1.2937;//1.2937;
extern double level_2=1.2694;//1.2725;//1.2630;
extern double level_3=1.2978;//1.2874;//1.2829;
/*
extern double level_1=1.2764;//1.2483;//1.2937;
extern double level_2=1.2668;//1.2641;//1.2630;
extern double level_3=1.2714;//1.2524;//1.2829;
*/
extern bool Show_etalon=true;
extern bool Show_target=true;
extern bool Show_true=true;
double level_4=0; double level_5=0; double level_6=0; double level_t=0;
double etalon_4=0; double etalon_5=0; double etalon_6=0;
double true_4=0; double true_5=0; double true_6=0;
int index_1=0; int index_2=0; int index_3=0; int index_4=0; int index_5=0; int index_6=0;
int p2d=0; int p3d=0;
bool get_4=false; bool get_5=false; bool get_6=false;
int init() {
int i=0;
if (level_3>level_2 && level_1>level_2) {p3d=1; p2d=-1;}
if (level_3<level_2 && level_1<level_2) {p3d=-1; p2d=1;}
if (p3d==1) {
while (index_3==0 && i<Bars){
if (High[i] == level_3) index_3=Time[i];
i++;}
while (index_2==0 && i<Bars){
if (Low[i] == level_2) index_2=Time[i];
i++;}
while (index_1==0 && i<Bars){
if (High[i] == level_1) index_1=Time[i];
i++;}
} else
if (p3d==-1) {
while (index_3==0 && i<Bars){
if (Low[i] == level_3) index_3=Time[i];
i++;}
while (index_2==0 && i<Bars){
if (High[i] == level_2) index_2=Time[i];
i++;}
while (index_1==0 && i<Bars){
if (Low[i] == level_1) index_1=Time[i];
i++;}
}
CreateText("Point_3","3",index_3,level_3+50*Point*p3d,FireBrick);
CreateText("Point_2","2",index_2,level_2+50*Point*p2d,FireBrick);
CreateText("Point_1","1",index_1,level_1+50*Point*p3d,FireBrick);
etalon_4=(level_3-(level_3-level_2)*1.62);
etalon_5=((level_3-(level_3-(level_3-(level_3-level_2)*1.62))/2)-(level_2-(level_3-(level_3-(level_3-(level_3-level_2)*1.62))/2)));
etalon_6=(((level_3-(level_3-level_2)*1.62)-((level_3-(level_3-level_2)*1.62)-((level_3-(level_3-(level_3-(level_3-level_2)*1.62))/2)-(level_2-(level_3-(level_3-(level_3-(level_3-level_2)*1.62))/2))))/2)-(level_1-((level_3-(level_3-level_2)*1.62)-((level_3-(level_3-level_2)*1.62)-((level_3-(level_3-(level_3-(level_3-level_2)*1.62))/2)-(level_2-(level_3-(level_3-(level_3-(level_3-level_2)*1.62))/2))))/2)));
if (Show_etalon) CreateObj("Etalon_4",OBJ_HLINE,Time[0],etalon_4,SaddleBrown,STYLE_DASHDOT);
if (Show_etalon) CreateObj("Etalon_5",OBJ_HLINE,Time[0],etalon_5,Teal,STYLE_DASHDOT);
if (Show_etalon) CreateObj("Etalon_6",OBJ_HLINE,Time[0],etalon_6,Purple,STYLE_DASHDOT);
}
int deinit(){
if (ObjectFind("Point_1")==0) ObjectDelete("Point_1");
if (ObjectFind("Point_2")==0) ObjectDelete("Point_2");
if (ObjectFind("Point_3")==0) ObjectDelete("Point_3");
if (ObjectFind("Point_4")==0) ObjectDelete("Point_4");
if (ObjectFind("Point_5")==0) ObjectDelete("Point_5");
if (ObjectFind("Point_6")==0) ObjectDelete("Point_6");
if (ObjectFind("Etalon_4")==0) ObjectDelete("Etalon_4");
if (ObjectFind("Etalon_5")==0) ObjectDelete("Etalon_5");
if (ObjectFind("Etalon_6")==0) ObjectDelete("Etalon_6");
if (ObjectFind("Level_4")==0) ObjectDelete("Level_4");
if (ObjectFind("Level_5")==0) ObjectDelete("Level_5");
if (ObjectFind("Level_6")==0) ObjectDelete("Level_6");
if (ObjectFind("True_4")==0) ObjectDelete("True_4");
if (ObjectFind("True_5")==0) ObjectDelete("True_5");
if (ObjectFind("True_6")==0) ObjectDelete("True_6");
Comment ("");
}
void find_4(int index, int dir) {
int tBar=iBarShift(Symbol(),0,index,false)-1;
if (tBar<0) return(0);
level_4=(level_3-(level_3-level_2)*1.62);
if (Show_target) CreateObj("Level_4",OBJ_HLINE,Time[0],level_4,Gold,STYLE_DOT);
for (int cb=tBar;cb>=0;cb--) {
if (dir==-1) {
if (true_4==0) double level=level_4; else level=true_4;
if (Low[cb]<=level && get_4==false) {
true_4=Low[cb];
index_4=Time[cb];
if (Show_true) CreateObj("True_4",OBJ_HLINE,Time[0],true_4,Gold,STYLE_DASH);
CreateText("Point_4","4",index_4,true_4+50*Point*p2d,Gold);
level_5=(level_3-(level_3-true_4)/2)-(level_2-(level_3-(level_3-true_4)/2));
if (Show_target) CreateObj("Level_5",OBJ_HLINE,Time[0],level_5,Aqua,STYLE_DOT); }
if (true_4!=0 && cb>0)
if (level_5<=High[cb-1]) {
get_4=true;
find_5(index_4,p3d);
}
}
if (dir==1) {
if (true_4==0) level=level_4; else level=true_4;
if (High[cb]>=level && get_4==false) {
true_4=High[cb];
index_4=Time[cb];
if (Show_true) CreateObj("True_4",OBJ_HLINE,Time[0],true_4,Gold,STYLE_DASH);
CreateText("Point_4","4",index_4,true_4+50*Point*p2d,Gold);
level_5=(level_3-(level_3-true_4)/2)-(level_2-(level_3-(level_3-true_4)/2));
if (Show_target) CreateObj("Level_5",OBJ_HLINE,Time[0],level_5,Aqua,STYLE_DOT); }
if (true_4!=0 && cb>0)
if (level_5>=Low[cb-1]) {
get_4=true;
find_5(index_4,p3d);
}
}
}
}
void find_5(int index, int dir) {
int tBar=iBarShift(Symbol(),0,index,false)-1;
if (tBar<0) return(0);
for (int cb=tBar;cb>=0;cb--) {
if (dir==-1) {
if (true_5==0) double level=level_5; else level=true_5;
if (Low[cb]<=level && get_5==false) {
true_5=Low[cb];
index_5=Time[cb];
if (Show_true) CreateObj("True_5",OBJ_HLINE,Time[0],true_5,Aqua,STYLE_DASH);
CreateText("Point_5","5",index_5,true_5+50*Point*p3d,Aqua);
level_6=(true_4-(true_4-true_5)/2)-(level_1-(true_4-(true_4-true_5)/2));
if (Show_target) CreateObj("Level_6",OBJ_HLINE,Time[0],level_6,Magenta,STYLE_DOT); }
if (true_5!=0 && cb>0)
if (level_6<=High[cb-1]) {
get_5=true;
find_6(index_5,p2d);
}
}
if (dir==1) {
if (true_5==0) level=level_5; else level=true_5;
if (High[cb]>=level && get_5==false) {
true_5=High[cb];
index_5=Time[cb];
if (Show_true) CreateObj("True_5",OBJ_HLINE,Time[0],true_5,Aqua,STYLE_DASH);
CreateText("Point_5","5",index_5,true_5+50*Point*p3d,Aqua);
level_6=(true_4-(true_4-true_5)/2)-(level_1-(true_4-(true_4-true_5)/2));
if (Show_target) CreateObj("Level_6",OBJ_HLINE,Time[0],level_6,Magenta,STYLE_DOT); }
if (true_5!=0 && cb>0)
if (level_6>=Low[cb-1]) {
get_5=true;
find_6(index_5,p2d);
}
}
}
}
void find_6(int index, int dir) {
int tBar=iBarShift(Symbol(),0,index,false)-1;
if (tBar<0) return(0);
for (int cb=tBar;cb>=0;cb--) {
if (dir==-1) {
if (true_6==0) double level=level_6; else level=true_6;
if (Low[cb]<=level && get_6==false) {
true_6=Low[cb];
index_6=Time[cb];
if (Show_true) CreateObj("True_6",OBJ_HLINE,Time[0],true_6,Magenta,STYLE_DASH);
CreateText("Point_6","6",index_6,true_6+50*Point*p2d,Magenta);
}
}
if (dir==1) {
if (true_6==0) level=level_6; else level=true_6;
if (High[cb]>=level && get_6==false) {
true_6=High[cb];
index_6=Time[cb];
if (Show_true) CreateObj("True_6",OBJ_HLINE,Time[0],true_6,Magenta,STYLE_DASH);
CreateText("Point_6","6",index_6,true_6+50*Point*p2d,Magenta);
}
}
}
}
void CreateText(string name, string text, int index, double level, color col) {
if (ObjectFind(name)==-1){
ObjectCreate (name,OBJ_TEXT,0,index,level,0,0,0,0);
ObjectSetText(name, text, 14, "Times New Roman", col);}
else {
ObjectMove(name, 0, index,level);}
}
void CreateObj(string name, int type, int index, double level, color col, int style) {
if (ObjectFind(name)==-1){
ObjectCreate (name,type,0,index,level,0,0,0,0);
ObjectSet (name, OBJPROP_COLOR, col);
ObjectSet (name, OBJPROP_STYLE, style);}
else {
ObjectMove(name, 0, index,level);}
}
int start() {
int i=0; int j=0; int k=0;
find_4(index_3,p2d);
Comment("1: óðîâåíü=",level_1,"; äàòà=",TimeToStr(index_1,TIME_DATE),"\n",
"2: óðîâåíü=",level_2,"; äàòà=",TimeToStr(index_2,TIME_DATE),"\n",
"3: óðîâåíü=",level_3,"; äàòà=",TimeToStr(index_3,TIME_DATE),"\n",
"4: ýòàëîí=",etalon_4,"; öåëåâîé=",level_4,"; äîñòèãëè=",true_4,"; äàòà=",TimeToStr(index_4,TIME_DATE),"\n",
"5: ýòàëîí=",etalon_5,"; öåëåâîé=",level_5,"; äîñòèãëè=",true_5,"; äàòà=",TimeToStr(index_5,TIME_DATE),"\n",
"6: ýòàëîí=",etalon_6,"; öåëåâîé=",level_6,"; äîñòèãëè=",true_6,"; äàòà=",TimeToStr(index_6,TIME_DATE));
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
---