Indicators Used
0
Views
0
Downloads
0
Favorites
Divination__MA
//+------------------------------------------------------------------+
//| Divination _MA |
//| vorese |
//| vorese@yandex.ru |
//+------------------------------------------------------------------+
#property indicator_chart_window
extern string s1="-----Ïåðèîä ÌÀ-----";
extern int Period_MA1=5;
extern int Period_MA2=34;
extern int Period_MA3=45;
extern string s2="-----Ìåòîä ðàñ÷åòà ÌÀ-----";
extern int metod_MA1=0;
extern int metod_MA2=0;
extern int metod_MA3=0;
extern string s3="-----Öåíîâàÿ êîíñòàíòà ÌÀ-----";
extern int price_MA1=5;
extern int price_MA2=5;
extern int price_MA3=5;
extern string s4="===========================================";
extern string s5="---êîëè÷åñòâî áàðîâ-----";
extern int Max_bar = 6000;
extern string s6="öåíîâàÿ êîíñòàíòà áàðà";
extern int price_const=5;
extern string s7="äîïóñò. îòêëîíåíèå öåíû %-----";
extern double deviation_perc=15;
extern string s8="===========================================";
extern string s9="-----öâåò ëèíèé-----";
extern color Line1_color=Red;
extern color Line2_color=Gold;
extern string s10="N äëÿ íåñê. èíäèêàòîðîâ â îêíå";
extern int indicator_num=0;
extern string s11="ïå÷àòàòü ñîîáùåíèÿ";
extern bool active_Print=false;
extern string s12="êîììåíòàðèè";
extern bool active_Comment=true;
//+--------------------------------------------------------------------
int count_bar;
int limit;
int process;
int shift;
//===================================================================
int init()
{
if(Max_bar>=Bars)limit=Bars;
else
limit=Max_bar;
//-------------------------------------------------------------------
ObjectCreate(indicator_num+"1_line_bar", OBJ_VLINE, 0,Time[shift],0,0);
ObjectSet(indicator_num+"1_line_bar",OBJPROP_COLOR,Line1_color);
//-------------------------------------------------------------------
return(0);
}
//====================================================================
int deinit()
{
for(int i=0;i<count_bar;i++)
{ ObjectDelete(indicator_num+"2_line_bar"+i); }
ObjectDelete(indicator_num+"1_line_bar");
return(0);
}
//====================================================================
int start()
{
int i,g,m,bar_num;
int tilt1,tilt2,tilt3,tilt1i,tilt2i,tilt3i; // íàêëîí ÌÀ
int sign1,sign2,sign3,sign1i,sign2i,sign3i; //çíàê öåíû
int position1,position2,position3,position1i,position2i,position3i; //ðàñïîë.ÌÀ ìåæäó ñîáîé
double pips1,pips2,pips3,pips1i,pips2i,pips3i; //ðàçíîñòü ìåæäó öåíîé ÌÀ è öåíîé áàðà
double ma1,ma2,ma3,ma11,ma22,ma33,ma1i,ma2i,ma3i,ma11i,ma22i,ma33i; //öåíà ÌÀ
//-------------------------------------------------------------------
shift=iBarShift(NULL,0,ObjectGet(indicator_num+"1_line_bar", OBJPROP_TIME1),true);
for( m=0;m<count_bar;m++)
{ ObjectDelete(indicator_num+"2_line_bar"+m); }
//==========================
count_bar=0;
process=0;
//==========================
ma1=iMA(NULL,0,Period_MA1,0,metod_MA1,price_MA1,shift);
ma2=iMA(NULL,0,Period_MA2,0,metod_MA2,price_MA2,shift);
ma3=iMA(NULL,0,Period_MA3,0,metod_MA3,price_MA3,shift);
ma11=iMA(NULL,0,Period_MA1,0,metod_MA1,price_MA1,shift+1);
ma22=iMA(NULL,0,Period_MA2,0,metod_MA2,price_MA2,shift+1);
ma33=iMA(NULL,0,Period_MA3,0,metod_MA3,price_MA3,shift+1);
//--------------------------------------------------------------------
pips1=ma1-f_Price_bar( price_const,shift);
pips2=ma2-f_Price_bar( price_const,shift);
pips3=ma3-f_Price_bar( price_const,shift);
//--------------------------------------------------------------------
sign1=f_Comparison(pips1,0);
sign2=f_Comparison(pips2,0);
sign3=f_Comparison(pips3,0);
//--------------------------------------------------------------------
position1=f_Comparison(ma1,ma2);
position2=f_Comparison(ma1,ma3);
position3=f_Comparison(ma2,ma3);
//--------------------------------------------------------------------
tilt1=f_Comparison(ma1,ma11);
tilt2=f_Comparison(ma2,ma22);
tilt3=f_Comparison(ma3,ma33);
//====================================================================
//--------------------------------------------------------------------
for( i=0;i<limit;i++)
{
process++;
ma1i=iMA(NULL,0,Period_MA1,0,metod_MA1,price_MA1,i);
ma2i=iMA(NULL,0,Period_MA2,0,metod_MA2,price_MA2,i);
ma3i=iMA(NULL,0,Period_MA3,0,metod_MA3,price_MA3,i);
ma11i=iMA(NULL,0,Period_MA1,0,metod_MA1,price_MA1,i+1);
ma22i=iMA(NULL,0,Period_MA2,0,metod_MA2,price_MA2,i+1);
ma33i=iMA(NULL,0,Period_MA3,0,metod_MA3,price_MA3,i+1);
//--------------------------------------------------------------------
pips1i=ma1i-f_Price_bar( price_const,i);
pips2i=ma2i-f_Price_bar( price_const,i);
pips3i=ma3i-f_Price_bar( price_const,i);
//--------------------------------------------------------------------
sign1i=f_Comparison(pips1i,0);
sign2i=f_Comparison(pips2i,0);
sign3i=f_Comparison(pips3i,0);
//--------------------------------------------------------------------
position1i=f_Comparison(ma1i,ma2i);
position2i=f_Comparison(ma1i,ma3i);
position3i=f_Comparison(ma2i,ma3i);
//--------------------------------------------------------------------
tilt1i=f_Comparison(ma1i,ma11i);
tilt2i=f_Comparison(ma2i,ma22i);
tilt3i=f_Comparison(ma3i,ma33i);
//--------------------------------------------------------------------
//óñëîâèÿ äëÿ îòðèñîâêè ëèíèé
if( tilt1==tilt1i && tilt2==tilt2i && tilt3==tilt3i
&& position1==position1i && position2==position2i && position3==position3i
&& sign1==sign1i && sign2==sign2i && sign3==sign3i
&& MathAbs(pips1)<=MathAbs(pips1i)+MathAbs(pips1i)*deviation_perc/100
&& MathAbs(pips1)>=MathAbs(pips1i)-MathAbs(pips1i)*deviation_perc/100
&& MathAbs(pips2)<=MathAbs(pips2i)+MathAbs(pips2i)*deviation_perc/100
&& MathAbs(pips2)>=MathAbs(pips2i)-MathAbs(pips2i)*deviation_perc/100
&& MathAbs(pips3)<=MathAbs(pips3i)+MathAbs(pips3i)*deviation_perc/100
&& MathAbs(pips3)>=MathAbs(pips3i)-MathAbs(pips3i)*deviation_perc/100 )
{ //îòðèñîâêà ëèíèé
if( shift!=i)
{ ObjectCreate(indicator_num+"2_line_bar"+count_bar, OBJ_VLINE, 0,Time[i],0,0);
ObjectSet(indicator_num+"2_line_bar"+count_bar,OBJPROP_COLOR,Line2_color);
count_bar++; }
}
}
//------------------------------------------------------------------
if(active_Print) Print(" áàð N ",shift," ; ñîâïàäåíèé ",count_bar,
" ; ëèíèé íà ãðàôèêå ",ObjectsTotal(OBJ_VLINE),
" ; áàðîâ â èñòîðèè ",Bars, " ; îáðàáîòàíî áàðîâ ",process);
if(active_Comment)
Comment(" áàð N ",shift,
"\n"," ñîâïàäåíèé ",count_bar,
"\n"," ëèíèé íà ãðàôèêå ",ObjectsTotal(OBJ_VLINE),
"\n"," áàðîâ â èñòîðèè ",Bars,
"\n"," îáðàáîòàíî áàðîâ ",process);
return(0);
}
//+------------------------------------------------------------------+
double f_Price_bar(int constant,int bar)// öåíà áàðà
{
double price;
switch(constant)
{ case 0:price=Close[bar]; break;
case 1:price=Open[bar]; break;
case 2:price=High[bar]; break;
case 3:price=Low[bar]; break;
case 4:price=(High[bar]+Low[bar])/2; break;
case 5:price=(Close[bar]+High[bar]+Low[bar])/3; break;
case 6:price=(Close[bar]+Close[bar]+High[bar]+Low[bar])/4; break; }
return(NormalizeDouble(price,Digits));
}
//====================================================================
int f_Comparison (double variable_1,double variable_2)
{
int results;
if(variable_1==variable_2)results=0;
else {
if(variable_1<variable_2)results=(-1);
else
results=1; }
return(results);
}
//====================================================================
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
---