X_O_serg153_Test

Author: Copyright � 2005, Serg153
X_O_serg153_Test
Miscellaneous
Implements a curve of type %1It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
X_O_serg153_Test
//+------------------------------------------------------------------+
//|                                                X_O_serg153xo.mq4 |
//|                                        Copyright © 2005, Serg153 |
//|                                                               "" |
//|  ïåðåäåëêà 04_2008 ver1 Aleksandr Pak, Alma-Ata, 03.2008         |
//|                                            ekr-ap@mail.ru        |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Serg153" 
#property link      ""
//----
#property indicator_chart_window

#property indicator_buffers 2
#property indicator_color1 Aqua
#property indicator_color2 Red

extern color ColorUp   = Aqua;      // Öâåò "êðåñòèêà"
extern color ColorDown = DarkGoldenrod;   // Öâåò "íîëèêà" 
//---- input parameters 
extern int RazmBox = 20;
extern int count_Alert=3; //÷èñëî ïîâòîðåíèé Àëåðò


//----
int i, p, Lt, Lt1, Tb; 
double RazmBoXO, Cnac; 
int VsegoBarov; 
double up[],down[];
int first=0,count_a=0;
double ftime;
string s;
//+------------------------------------------------------------------+ 
//| Custom indicator deinitialization function                       | 
//+------------------------------------------------------------------+ 
int init()
{
  
  SetIndexBuffer(0,up);          
  SetIndexStyle(0,DRAW_ARROW);
  SetIndexArrow(0,217);     
  SetIndexBuffer(1,down);          
  SetIndexStyle(1,DRAW_ARROW);   
  SetIndexArrow(1,218);
   int tf=Period();
   if(tf>30) s=Symbol()+" H"+tf/60; else s=Symbol()+" M"+tf;
  return (0);
}

int deinit() 
  { 
   for(i = 0; i <= Lt1; i++) 
     {
       ObjectDelete("BodyXO" + i);
       ObjectDelete("BodyX" + i);
     }
//----
   return(0); 
  } 
//+------------------------------------------------------------------+ 
//| Êðåñòèêè Íîëèêè                                                  | 
//+------------------------------------------------------------------+ 
int start() 
  { 
   if(ftime!=Time[0]) count_a=0;
   RazmBoXO = RazmBox*Point; 
   VsegoBarov = Bars - 1 ;  
   Lt = 0; 
   Cnac = Open[VsegoBarov]; 
   Tb = 0; 
   p = 0; 
// 1 ïðîãîí ïîäñ÷¸ò âñåõ áàðîâ
   for(i = VsegoBarov; i >= 1; i--)
     { 
       p = 0; 
       while(High[i] >= Cnac + RazmBoXO) 
         { 
           if(Tb == 0) 
               Lt++; 
           Cnac += RazmBoXO; 
           p++; 
           Tb = 1; 
         } 
       if(p > 0) 
           continue; 
       while(Low[i] <= Cnac - RazmBoXO) 
         { 
           if(Tb == 1) 
               Lt++; 
           Cnac -= RazmBoXO; Tb=0;  
         } 
     } 
   Lt = 10 + Lt*2;
// ñäâèãàåì âñå áàðû âïðàâî
// 2 ïðîãîí ðàçðèñîâêà ãðàôèêà
   Cnac = Open[VsegoBarov]; 
   Lt1 = 0;
   for(i = VsegoBarov; i >= 1; i--)
     { 
       p = 0; 
       while (High[i] >= Cnac + RazmBoXO) 
         { 
           if(Tb == 0) 
               Lt -= 2; 
           Lt1++; 
           
           ObjectCreate("BodyXO" + Lt1, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
           ObjectSet("BodyXO" + Lt1, OBJPROP_TIME1, Time[Lt]);
           ObjectSet("BodyXO" + Lt1, OBJPROP_PRICE1, Cnac);
           ObjectSet("BodyXO" + Lt1, OBJPROP_TIME2, Time[Lt-2]);
           ObjectSet("BodyXO" + Lt1, OBJPROP_PRICE2, Cnac + RazmBoXO);
           ObjectSet("BodyXO" + Lt1, OBJPROP_STYLE, STYLE_SOLID);
           ObjectSet("BodyXO" + Lt1, OBJPROP_BACK, False);
           ObjectSet("BodyXO" + Lt1, OBJPROP_COLOR, ColorUp);
           ObjectCreate("BodyX" + Lt1, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
           ObjectSet("BodyX" + Lt1, OBJPROP_TIME1, Time[Lt]);
           ObjectSet("BodyX" + Lt1, OBJPROP_PRICE1, Cnac);
           ObjectSet("BodyX" + Lt1, OBJPROP_TIME2, Time[Lt-2]);
           ObjectSet("BodyX" + Lt1, OBJPROP_PRICE2, Cnac + RazmBoXO);
           ObjectSet("BodyX" + Lt1, OBJPROP_STYLE, STYLE_SOLID);
           ObjectSet("BodyX" + Lt1, OBJPROP_BACK, False);
           ObjectSet("BodyX" + Lt1, OBJPROP_COLOR, Blue);
           Cnac += RazmBoXO; 
           Tb = 1; 
           p++; 
         } 
       if(p > 0) 
           continue; 
        
       while(Low[i] <= Cnac - RazmBoXO) 
         { 
           if(Tb == 1) 
               Lt -= 2; 
           Lt1++;
         
           ObjectCreate("BodyXO" + Lt1, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
           ObjectSet("BodyXO" + Lt1, OBJPROP_TIME1, Time[Lt]);
           ObjectSet("BodyXO" + Lt1, OBJPROP_PRICE1, Cnac);
           ObjectSet("BodyXO" + Lt1, OBJPROP_TIME2, Time[Lt-2]);
           ObjectSet("BodyXO" + Lt1, OBJPROP_PRICE2, Cnac - RazmBoXO);
           ObjectSet("BodyXO" + Lt1, OBJPROP_STYLE, STYLE_SOLID);
           ObjectSet("BodyXO" + Lt1, OBJPROP_BACK, True);
           ObjectSet("BodyXO" + Lt1, OBJPROP_COLOR, ColorDown);
           ObjectCreate("BodyX" + Lt1, OBJ_RECTANGLE, 0, 0, 0, 0, 0);
           ObjectSet("BodyX" + Lt1, OBJPROP_TIME1, Time[Lt]);
           ObjectSet("BodyX" + Lt1, OBJPROP_PRICE1, Cnac);
           ObjectSet("BodyX" + Lt1, OBJPROP_TIME2, Time[Lt-2]);
           ObjectSet("BodyX" + Lt1, OBJPROP_PRICE2, Cnac - RazmBoXO);
           ObjectSet("BodyX" + Lt1, OBJPROP_STYLE, STYLE_SOLID);
           ObjectSet("BodyX" + Lt1, OBJPROP_BACK, False);
           ObjectSet("BodyX" + Lt1, OBJPROP_COLOR, Yellow);
           Cnac -= RazmBoXO; 
           Tb = 0; 
         } 
    }
   
   //*******************************Îïðåäåëåíèå òîðãîâûõ ñèãíàëîâ********************************************
        int Lbd=Lt1;  //last restanle
        double last=ObjectGet("BodyX" + Lbd, OBJPROP_TIME2);
        
        for(i=Lt1; i>0;i--)
        {if(last!=ObjectGet("BodyX" + i, OBJPROP_TIME2)) break;
        }
        int Lbd2=i+1;
        int Pbd=i;
        last=ObjectGet("BodyX" + Pbd, OBJPROP_TIME2);
        for(i=Pbd; i>0;i--)
        {if(last!=ObjectGet("BodyX" + i, OBJPROP_TIME2)) break;
        }
        int Pbd2=i+1;
        int z;   
        int ik2=iBarShift(NULL,0,ObjectGet("BodyX" + Lbd,OBJPROP_TIME2),FALSE);
        
        double price_L0=ObjectGet("BodyX" + Lbd, OBJPROP_PRICE2);
        double price_L1=ObjectGet("BodyX" + Lbd2, OBJPROP_PRICE1);
        double price_P0=ObjectGet("BodyX" + Pbd, OBJPROP_PRICE2);
        double price_P1=ObjectGet("BodyX" + Pbd2, OBJPROP_PRICE1);
        int cL,cP;
        if(price_L0>price_L1) cL=0; else cL=1;
        if(price_P0>price_P1) cP=0; else cP=1;
        
         if(cL==1&&cP==1){down[0]=High[0]+ 25*Point; c_alert(1);}
         if(cL==1&&cP==0&&price_L0<price_P1){down[0]=High[0]+ 25*Point;c_alert(1);}
         
         if(cL==0&&cP==0){up[0]=Low[0]- 25*Point; c_alert(0);}
         if(cL==0&&cP==1&&price_L0>price_P1){up[0]=Low[0]- 25*Point; c_alert(0);}
         
   return(0); 
  }
//+------------------------------------------------------------------+ 

 void c_alert(int w)
 {
 ftime=Time[0];
 if(count_a<count_Alert)
 {count_a+=1;
 if(w==0)  Alert(s,"    Õ-Î BUY"); else Alert( s,"    X-O SELL");
 }
 }

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---