cm-ind-TRIANGLE_2

Author: Copyright � 2012, Vladimir Hlystov
Price Data Components
Series array that contains open time of each bar
0 Views
0 Downloads
0 Favorites
cm-ind-TRIANGLE_2
//+------------------------------------------------------------------+
//|                               Copyright © 2012, Vladimir Hlystov |
//|                                         http://cmillion.narod.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, Vladimir Hlystov"
#property link      "http://cmillion.narod.ru"

#property indicator_chart_window
extern int PERIOD=PERIOD_H1;
//+------------------------------------------------------------------+
int init()
  {
   return(0);
  }
//+------------------------------------------------------------------+
int deinit()
  {
   ObjectsDeleteAll(0,OBJ_TRIANGLE);
   Comment("");
   return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
   if(Period()>=PERIOD) {Comment("Ñìåíèòå ÒÔ èëè èçìåíèòå PERIOD");return;}

   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
   if(counted_bars==0) limit--;

   if(limit*Period()<PERIOD) limit=PERIOD;

   int n=iBarShift(NULL,PERIOD,Time[limit],false);
   datetime TimeMin=Time[limit],TimeMax=Time[limit];
   double Min=Low[limit],Max=High[limit],OpenC=Open[limit];
   for(int i=limit; i>0; i--)
     {
      if(Min>Low[i])  {Min=Low[i];TimeMin=Time[i];}
      if(Max<High[i]) {Max=High[i];TimeMax=Time[i];}
      if(n!=iBarShift(NULL,PERIOD,Time[i-1],false))
        {
         if(ObjectFind(StringConcatenate(PERIOD," ",Time[i]))==-1)
           {
            DrawTRIANGLE(StringConcatenate(PERIOD," ",Time[i]),iTime(NULL,PERIOD,n),OpenC,TimeMin,Min,TimeMax,Max,Color(OpenC>Close[i],Red,Lime));
            DrawTRIANGLE(StringConcatenate(PERIOD,"1",Time[i]),TimeMin,Min,TimeMax,Max,Time[i],Close[i],Color(OpenC>Close[i],Red,Lime));
           }
         TimeMin=Time[i];TimeMax=Time[i];
         Min=Low[i];Max=High[i];
         OpenC=Open[i];Max=High[i];
         n=iBarShift(NULL,PERIOD,Time[i-1],false);
        }
     }
   return(0);
  }
//--------------------------------------------------------------------
void DrawTRIANGLE(string Name,datetime T1,double P1,datetime T2,double P2,datetime T3,double P3,color C)
  {
   ObjectDelete(Name);
   ObjectCreate(Name,OBJ_TRIANGLE,0,T1,P1,T2,P2,T3,P3);
   ObjectSet(Name,OBJPROP_COLOR,C);
   ObjectSet(Name,OBJPROP_BACK,true);
  }
//--------------------------------------------------------------------
color Color(bool P,color a,color b)
  {
   if(P) return(a);
   else return(b);
  }
//------------------------------------------------------------------

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