hikkake





//Hikkake Pattern Indicator
#property copyright "Copyright © 2007, modulatum."
#property indicator_chart_window
int buy = 0, sell = 0, i = 0;
extern int minutes;
int init()
  {

   return(0);
  }
  
  int deinit(){
  ObjectsDeleteAll(0,0);
  return(0);
  }

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
  double bar0H = iHigh(NULL,minutes,2);
  double bar1H = iHigh(NULL,minutes,1);
  double bar2H = iHigh(NULL,minutes,0);
  double bar0L = iLow(NULL,minutes,2);
  double bar1L = iLow(NULL,minutes,1);
  double bar2L = iLow(NULL,minutes,0);
  double bar0C = iClose(NULL,minutes,2);
  double bar1C = iClose(NULL,minutes,1);
  double bar2C = iClose(NULL,minutes,0);
  double bar1R = MathAbs(bar1H - bar1L);
  double bar0R = MathAbs(bar0H - bar0L);
  
  if(bar1L >= bar0L && bar1H <= bar0H){
   if(bar2H > bar1H && bar2L > bar1L && sell == 0){
      sell = 1;
      buy = 0;
      i = i + 1;
      ObjectCreate("H Sell " + minutes + " " +i,0,0,TimeCurrent(),Close[0]);
      ObjectSet("H Sell" + minutes + " " +i,OBJPROP_COLOR,Red);
      ObjectSet("H Sell" + minutes + " " +i,OBJPROP_WIDTH,1); 
      ObjectSet("H Sell" + minutes + " " +i,OBJPROP_STYLE,STYLE_SOLID);
      Alert("Sell " + Symbol() + " ("+minutes+") (Hikkake)");
		//bear;
	}
	if(bar2H < bar1H && bar2L < bar1L && buy == 0){
	sell = 0;
      buy = 1;
      i = i + 1;
            ObjectCreate("H Buy" + minutes + " " +i,0,0,TimeCurrent(),Close[0]);
      ObjectSet("H Buy" + minutes + " " +i,OBJPROP_COLOR,YellowGreen);
      ObjectSet("H Buy" + minutes + " " +i,OBJPROP_WIDTH,1); 
      ObjectSet("H Buy" + minutes + " " +i,OBJPROP_STYLE,STYLE_SOLID);
      Alert("Buy " + Symbol() + " ("+minutes+") (Hikkake)");
		//bull;
	}
	
	
		if(bar2H < bar1H && bar2L < bar1L && buy == 0 && bar1C == bar1L && bar1R < bar0R){
	sell = 0;
      buy = 1;
      i = i + 1;
            ObjectCreate("H Buy" + minutes + " " +i,0,0,TimeCurrent(),Close[0]);
      ObjectSet("H Buy" + minutes + " " +i,OBJPROP_COLOR,YellowGreen);
      ObjectSet("H Buy" + minutes + " " +i,OBJPROP_WIDTH,1); 
      ObjectSet("H Buy" + minutes + " " +i,OBJPROP_STYLE,STYLE_SOLID);
      Alert("Reversal Buy " + Symbol() + " ("+minutes+") (Hikkake)");
		//bull;
	}
	if(bar2H > bar1H && bar2L > bar1L && sell == 0 && bar1C == bar1H && bar1R < bar0R){
      sell = 1;
      buy = 0;
      i = i + 1;
      ObjectCreate("H Sell " + minutes + " " +i,0,0,TimeCurrent(),Close[0]);
      ObjectSet("H Sell" + minutes + " " +i,OBJPROP_COLOR,Red);
      ObjectSet("H Sell" + minutes + " " +i,OBJPROP_WIDTH,1); 
      ObjectSet("H Sell" + minutes + " " +i,OBJPROP_STYLE,STYLE_SOLID);
      Alert("Reversal Sell " + Symbol() + " ("+minutes+") (Hikkake)");
		//bear;
	}
	
  }
           
//---- done
   return(0);
  }
//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:

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


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features:

It issuies visual alerts to the screen