//+------------------------------------------------------------------+ //| megandle.mq4 | //+------------------------------------------------------------------+ #property indicator_chart_window int name=0; string nameNewCandle; int Width=2; int CustomCandleTimeShift=2; // int init() {return(0);} // int deinit() { for(int DelOBJ=1; DelOBJ<=name; DelOBJ++){ ObjectDelete(nameNewCandle);} Comment(""); return(0); } // int start() { double megandleOpen; double megandleClose; double normOpen; double normClose; int i; int counted_bars=IndicatorCounted(); i=Bars-IndicatorCounted(); normOpen=iOpen(NULL,0,1); normClose=iClose(NULL,0,1); megandleOpen=normOpen; //datetime StrToTime(string value) //Converts string in the format "yyyy.mm.dd hh:mi" to datetime type datetime normOpenTime = iTime(NULL,0,1); megandleOpen = iOpen(NULL,0, iBarShift(NULL,0,normOpenTime,false)); datetime normCloseTime = iTime(NULL,0,1); // if current candle is bullish and previous candle was bullish, use the market price for megandle close if ((MarketInfo(NULL,Bid)>MarketInfo(NULL,Open)) && (normClose-normOpen>0)) megandleClose=MarketInfo(NULL,Bid); // if current candle is bullish and previous candle was bearish, use the previous candle close for megandle close //if ((MarketInfo(NULL,Bid)>MarketInfo(NULL,Open)) && (normClose-normOpen<0)) megandleClose=MarketInfo(NULL,Bid); // if current candle is bearish and previous candle was bearish, use the market price for megandle close if ((MarketInfo(NULL,Bid)0)) megandleClose=MarketInfo(NULL,Bid); // // if current candle is bullish and previous candle was bullish, draw bullish rectangle from megandle open to MarketInfo(bid) as close if ((MarketInfo(NULL,Bid)>MarketInfo(NULL,Open)) && (normClose-normOpen>0)) { ObjectCreate(nameNewCandle,OBJ_RECTANGLE,0,normOpenTime,megandleOpen,normCloseTime,megandleClose); ObjectSet(nameNewCandle,OBJPROP_STYLE, STYLE_SOLID); ObjectSet(nameNewCandle,OBJPROP_COLOR, Black); ObjectSet(nameNewCandle, OBJPROP_WIDTH, Width); } // if current candle is bearish and previous candle was bearish, draw rectangle from megandle open to close -1 as close if ((MarketInfo(NULL,Bid)0)) { ObjectCreate(nameNewCandle,OBJ_RECTANGLE,0,normOpenTime,megandleOpen,normCloseTime,megandleClose); ObjectSet(nameNewCandle,OBJPROP_STYLE, STYLE_SOLID); ObjectSet(nameNewCandle,OBJPROP_COLOR, White); ObjectSet(nameNewCandle, OBJPROP_WIDTH, Width); } /* if current candle is bullish and previous candle was bearish, draw rectangle from megandle open to close -1 as close if ((MarketInfo(NULL,Bid)>MarketInfo(NULL,Open)) && (normClose-normOpen<0)) { ObjectCreate(nameNewCandle,OBJ_RECTANGLE,0,normOpenTime,megandleOpen,normCloseTime,normClose); ObjectSet(nameNewCandle,OBJPROP_STYLE, STYLE_SOLID); ObjectSet(nameNewCandle,OBJPROP_COLOR, White); ObjectSet(nameNewCandle, OBJPROP_WIDTH, Width); } if current candle is bearish and previous candle was bullish, draw bearish rectangle from megandle open to MarketInfo(bid) as close if ((MarketInfo(NULL,Bid)