Madeleine_v2.0

Madeleine_v2.0
Price Data Components
Series array that contains open prices of each barSeries array that contains close prices for each bar
0 Views
0 Downloads
0 Favorites
Madeleine_v2.0
//+------------------------------------------------------------------+
//|                                               Madeleine_v2.0.mq4 |
//|                                                                  |
//|                                                                  |
//+------------------------------------------------------------------+
#property indicator_chart_window
//----
string str="Madeleine_v2.0";
extern string _Bars="Êîëè÷åñòâî áàðîâ äëÿ îòðèñîâêè";
extern int cfg_Bars=18; //êîëè÷åñòâî áàðîâ äëÿ îòðèñîâêè
extern string Ray="Îòðèñîâêà ëó÷åé";
extern bool cfg_Ray=false; //îòðèñîâêà ëó÷åé
extern string HL1="High (315), Low (45)";
extern bool cfg_HL1=true; //îòðèñîâêà òîëüêî ïî High (315), Low (45)
extern string OC1="Open (315), Close (45)";
extern bool cfg_OC1=false; //îòðèñîâêà òîëüêî ïî Open (315), Close (45)
extern string HL2="High (45), Low (315)";
extern bool cfg_HL2=false; //îòðèñîâêà òîëüêî ïî High (45), Low (315)
extern string OC2="Open (45), Close (315)";
extern bool cfg_OC2=false; //îòðèñîâêà òîëüêî ïî Open (45), Close (315)
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   DrawLine45();
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
   //àâòî-óäàëåíèå âñåõ ëèíèé
     for(int i=1;i<Bars;i++){
      string ss=TimeToStr(Time[i]);
        for(int j=0;j<StringLen(ss);j++){
         if(StringGetChar(ss,j)=='.' || StringGetChar(ss,j)==':' || StringGetChar(ss,j)==' ')
            ss=StringSetChar(ss,j,'_');
        }
      string n45L="trend45L_"+ss;
      string n45H="trend45H_"+ss;
      string n315L="trend315L_"+ss;
      string n315H="trend315H_"+ss;
      string n45O="trend45O_"+ss;
      string n45C="trend45C_"+ss;
      string n315O="trend315O_"+ss;
      string n315C="trend315C_"+ss;
      if(ObjectFind(n45L)==0) ObjectDelete(n45L);
      if(ObjectFind(n315L)==0) ObjectDelete(n315L);
      if(ObjectFind(n45H)==0) ObjectDelete(n45H);
      if(ObjectFind(n315H)==0) ObjectDelete(n315H);
      if(ObjectFind(n45O)==0) ObjectDelete(n45O);
      if(ObjectFind(n315O)==0) ObjectDelete(n315O);
      if(ObjectFind(n45C)==0) ObjectDelete(n45C);
      if(ObjectFind(n315C)==0) ObjectDelete(n315C);
     }
   // Print("Deinit");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   DrawLine45();
//----
   return(0);
  }
//+------------------------------------------------------------------+
  void DrawLine45()
  {
     for(int i=1;i<=cfg_Bars;i++)
     {
      string ss=TimeToStr(Time[i]);
        for(int j=0;j<StringLen(ss);j++)
        {
         if(StringGetChar(ss,j)=='.' || StringGetChar(ss,j)==':' || StringGetChar(ss,j)==' ')
            ss=StringSetChar(ss,j,'_');
        }
      string n45L="trend45L_"+ss;
      string n45H="trend45H_"+ss;
      string n315L="trend315L_"+ss;
      string n315H="trend315H_"+ss;
//----
      string n45O="trend45O_"+ss;
      string n45C="trend45C_"+ss;
      string n315O="trend315O_"+ss;
      string n315C="trend315C_"+ss;
      // Print(n45);
      // Print(n315);
      //High 45 - Low 315
        if(ObjectFind(n315L)==-1)
        {
         if (cfg_HL2)
            ObjectCreate(n315L,OBJ_TRENDBYANGLE,0,Time[i],Low[i]);
         ObjectSet (n315L,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n315L,OBJPROP_ANGLE,315);
         ObjectSet (n315L,OBJPROP_TIME2,Time[0]);
         ObjectSet (n315L,OBJPROP_COLOR,Blue);
        }
        if(ObjectFind(n45H)==-1)
        {
         if (cfg_HL2)
            ObjectCreate(n45H,OBJ_TRENDBYANGLE,0,Time[i],High[i]);
         ObjectSet (n45H,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n45H,OBJPROP_ANGLE,45);
         ObjectSet (n45H,OBJPROP_TIME2,Time[0]);
         ObjectSet (n45H,OBJPROP_COLOR,Lime);
        }
      //Open-Close 
        if(ObjectFind(n45O)==-1)
        {
         if (cfg_OC2)
            if (iOpen(NULL,0,i)>iClose(NULL,0,i))
               ObjectCreate(n45O,OBJ_TRENDBYANGLE,0,Time[i],Open[i]);
         ObjectSet (n45O,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n45O,OBJPROP_ANGLE,45);
         ObjectSet (n45O,OBJPROP_TIME2,Time[0]);
         ObjectSet (n45O,OBJPROP_COLOR,White);
        }
        if(ObjectFind(n315O)==-1)
        {
         if (cfg_OC2)
            if (iOpen(NULL,0,i)<iClose(NULL,0,i))
               ObjectCreate(n315O,OBJ_TRENDBYANGLE,0,Time[i],Open[i]);
         ObjectSet (n315O,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n315O,OBJPROP_ANGLE,315);
         ObjectSet (n315O,OBJPROP_TIME2,Time[0]);
         ObjectSet (n315O,OBJPROP_COLOR,White);
        }
        if(ObjectFind(n45C)==-1)
        {
         if (cfg_OC2)
            if (iClose(NULL,0,i)>iOpen(NULL,0,i))
               ObjectCreate(n45C,OBJ_TRENDBYANGLE,0,Time[i],Close[i]);
         ObjectSet (n45C,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n45C,OBJPROP_ANGLE,45);
         ObjectSet (n45C,OBJPROP_TIME2,Time[0]);
         ObjectSet (n45C,OBJPROP_COLOR,Red);
        }
        if(ObjectFind(n315C)==-1)
        {
         if (cfg_OC2)
            if (iClose(NULL,0,i)<iOpen(NULL,0,i))
               ObjectCreate(n315C,OBJ_TRENDBYANGLE,0,Time[i],Close[i]);
         ObjectSet (n315C,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n315C,OBJPROP_ANGLE,315);
         ObjectSet (n315C,OBJPROP_TIME2,Time[0]);
         ObjectSet (n315C,OBJPROP_COLOR,Red);
        }
      //High 315 - Low 45
        if(ObjectFind(n45L)==-1)
        {
         if (cfg_HL1)
            ObjectCreate(n45L,OBJ_TRENDBYANGLE,0,Time[i],Low[i]);
         ObjectSet (n45L,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n45L,OBJPROP_ANGLE,45);
         ObjectSet (n45L,OBJPROP_TIME2,Time[0]);
         ObjectSet (n45L,OBJPROP_COLOR,Blue);
        }
        if(ObjectFind(n315H)==-1)
        {
         if (cfg_HL1)
            ObjectCreate(n315H,OBJ_TRENDBYANGLE,0,Time[i],High[i]);
         ObjectSet (n315H,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n315H,OBJPROP_ANGLE,315);
         ObjectSet (n315H,OBJPROP_TIME2,Time[0]);
         ObjectSet (n315H,OBJPROP_COLOR,Lime);
        }
      //Open 315 or 45 - Close 315 or 45 (if Close>Open or Close<Open)
        if(ObjectFind(n45O)==-1)
        {
         if (cfg_OC1)
            if (iOpen(NULL,0,i)<iClose(NULL,0,i))
               ObjectCreate(n45O,OBJ_TRENDBYANGLE,0,Time[i],Open[i]);
         ObjectSet (n45O,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n45O,OBJPROP_ANGLE,45);
         ObjectSet (n45O,OBJPROP_TIME2,Time[0]);
         ObjectSet (n45O,OBJPROP_COLOR,White);
        }
        if(ObjectFind(n315O)==-1)
        {
         if (cfg_OC1)
            if (iOpen(NULL,0,i)>iClose(NULL,0,i))
               ObjectCreate(n315O,OBJ_TRENDBYANGLE,0,Time[i],Open[i]);
         ObjectSet (n315O,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n315O,OBJPROP_ANGLE,315);
         ObjectSet (n315O,OBJPROP_TIME2,Time[0]);
         ObjectSet (n315O,OBJPROP_COLOR,White);
        }
        if(ObjectFind(n45C)==-1)
        {
         if (cfg_OC1)
            if (iClose(NULL,0,i)<iOpen(NULL,0,i))
               ObjectCreate(n45C,OBJ_TRENDBYANGLE,0,Time[i],Close[i]);
         ObjectSet (n45C,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n45C,OBJPROP_ANGLE,45);
         ObjectSet (n45C,OBJPROP_TIME2,Time[0]);
         ObjectSet (n45C,OBJPROP_COLOR,Red);
        }
        if(ObjectFind(n315C)==-1)
        {
         if (cfg_OC1)
            if (iClose(NULL,0,i)>iOpen(NULL,0,i))
               ObjectCreate(n315C,OBJ_TRENDBYANGLE,0,Time[i],Close[i]);
         ObjectSet (n315C,OBJPROP_RAY,cfg_Ray);
         ObjectSet (n315C,OBJPROP_ANGLE,315);
         ObjectSet (n315C,OBJPROP_TIME2,Time[0]);
         ObjectSet (n315C,OBJPROP_COLOR,Red);
        }
     }
  }
//+------------------------------------------------------------------+

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 ---