CandleBreaker






#property  indicator_chart_window
#property  indicator_buffers 4
#property  indicator_color1  Red
#property  indicator_color2  GreenYellow
#property  indicator_color3  Red
#property  indicator_color4  GreenYellow


extern int    viewableBars = 300;
double var_80;
double var_88;
double var_96;
double var_104;
double var_112;
double var_120, var_128, var_136;
string var_144;
int    var_152;
int    var_156;
int    var_160;
int    var_164;
int    var_168;
int    var_172;
int    end_day;
int    end_month;
int    end_year;
int    begin_day;
int    begin_month;
int    begin_year;
string begin_date;
string end_date;
string end_day_s;
string end_month_s;
string begin_day_s;
string begin_month_s;
bool   expired = False;
double ind_buffer0[];
double ind_buffer1[];
double ind_buffer2[];
double ind_buffer3[];


//+------------------------------------------------------------------+

int init()
{
begin_day = 30;
begin_month = 10;
begin_year = 2005;
end_day = 2;
end_month = 12;
end_year = 2008;
if (Bars < viewableBars) viewableBars = Bars;

if (end_day < 10)     end_day_s = "0" + end_day; else end_day_s = end_day;
if (end_month < 10)   end_month_s = "0" + end_month; else end_month_s = end_month;
if (begin_day < 10)   begin_day_s = "0" + begin_day; else begin_day_s = begin_day;
if (begin_month < 10) begin_month_s = "0" + begin_month; else begin_month_s = begin_month;
begin_date = begin_year + "." + begin_month_s + "." + begin_day_s;
end_date = end_year + "." + end_month_s + "." + end_day_s;

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexBuffer(0,ind_buffer0);
SetIndexBuffer(1,ind_buffer1);
SetIndexBuffer(2,ind_buffer2);
SetIndexBuffer(3,ind_buffer3);
SetIndexLabel(0,"MP - HookBreak Downtrend");
SetIndexLabel(1,"MP - HookBreak Uptrend");
SetIndexLabel(2,"MP - HookBreak Downtrend");
SetIndexLabel(3,"MP - HookBreak Uptrend");

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
IndicatorShortName("MP - HookBreak");
return(0);
}

//+------------------------------------------------------------------+

int deinit()
{
return(0);
}

//+------------------------------------------------------------------+

int start()
{
int vbars;
int counted_bars;
int cnt;

counted_bars = IndicatorCounted();
if (counted_bars < 0) return(EMPTY);
if (counted_bars > 0) counted_bars--;

if ((viewableBars <= 0) || (Bars < viewableBars)) vbars = Bars - 10; else vbars = viewableBars;

for (cnt = vbars; cnt >= 0; cnt--)
   {
   if (expired)
      {
      ObjectsDeleteAll();
      break;
      }
   while (var_168 == 0)
      {
      var_164++;
      if (iFractals(NULL,0,MODE_LOWER,cnt + var_164) != 0.0)
         {
         var_80 = iFractals(NULL,0,MODE_LOWER,cnt + var_164);
         var_120 = iFractals(NULL,0,MODE_LOWER,cnt + var_164);
         GlobalVariableSet(Symbol() + "-LFL",var_80);
         GlobalVariableSet(Symbol() + "-LL",var_120);
         var_164 = 0;
         break;
         }
      }
   while (var_172 == 0)
      {
      var_164++;
      if (iFractals(NULL,0,MODE_UPPER,cnt + var_164) != 0.0)
         {
         var_88 = iFractals(NULL,0,MODE_UPPER,cnt + var_164);
         var_96 = iFractals(NULL,0,MODE_UPPER,cnt + var_164);
         GlobalVariableSet(Symbol() + "-LFH",var_88);
         GlobalVariableSet(Symbol() + "-LH",var_96);
         var_164 = 0;
         break;
         }
      }
   if (High[cnt] > var_96)
      {
      var_104 = var_96;
      var_96 = High[cnt];
      GlobalVariableSet(Symbol() + "-LH",var_96);
      var_144 = "H";
      var_156 = Time[cnt];
      var_152 = 1;
      GlobalVariableSet(Symbol() + "-HBT",var_152);
      }
   if (Low[cnt] < var_120)
      {
      var_112 = var_120;
      var_120 = Low[cnt];
      GlobalVariableSet(Symbol() + "-LL",var_96);
      var_144 = "L";
      var_160 = Time[cnt];
      var_152 = -1;
      GlobalVariableSet(Symbol() + "-HBT",var_152);
      }
   if ((var_160 == var_156) && (Time[cnt] == var_160))
      {
      if (Close[cnt] > var_88)
         {
         var_104 = var_96;
         var_96 = High[cnt];
         GlobalVariableSet(Symbol() + "-LH",var_96);
         var_144 = "H";
         var_152 = 1;
         GlobalVariableSet(Symbol() + "-HBT",var_152);
         }
      if (Close[cnt] < var_80)
         {
         var_112 = var_120;
         var_120 = Low[cnt];
         GlobalVariableSet(Symbol() + "-LL",var_96);
         var_144 = "L";
         var_152 = -1;
         GlobalVariableSet(Symbol() + "-HBT",var_152);
         }
      }
   if (var_152 == -1)
      {
      ind_buffer0[cnt] = High[cnt];
      ind_buffer1[cnt] = Low[cnt];
      if (Open[cnt] > Close[cnt])
         {
         ind_buffer2[cnt] = Open[cnt];
         ind_buffer3[cnt] = Close[cnt];
         }
            else
         {
         ind_buffer3[cnt] = Open[cnt];
         ind_buffer2[cnt] = Close[cnt];
         }
      }
         else
      {
      ind_buffer1[cnt] = High[cnt];
      ind_buffer0[cnt] = Low[cnt];
      if (Open[cnt] < Close[cnt])
         {
         ind_buffer2[cnt] = Open[cnt];
         ind_buffer3[cnt] = Close[cnt];
         }
            else
         {
         ind_buffer3[cnt] = Open[cnt];
         ind_buffer2[cnt] = Close[cnt];
         }
      }
   }
return(0);
}



Sample





Analysis



Market Information Used:

Series array that contains the highest prices of each bar
Series array that contains open time of each bar
Series array that contains the lowest prices of each bar
Series array that contains close prices for each bar
Series array that contains open prices of each bar


Indicator Curves created:

Implements a curve of type DRAW_HISTOGRAM


Indicators Used:

Fractals


Custom Indicators Used:

Order Management characteristics:

Other Features: