//+------------------------------------------------------------------+ //| ShadowCandles.mq4 | //| Copyright © 2009, ÏàâåëÈâàíîâè÷ (api) | //| p231970@hotmail.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, ÏàâåëÈâàíîâè÷ (api)" #property link "p231970@hotmail.com" #property indicator_chart_window //---- input parameters extern int iPeriod=60; extern int iNumCandles=100; extern color BullCandle=LightSkyBlue; extern color BearCandle=SandyBrown; extern color BullShadow=Blue; extern color BearShadow=Orange; double data[][6]; //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { for(int i=0;i<iNumCandles;i++) { ObjectDelete("ShadowCandle"+i); ObjectDelete("ShadowCandleShadow"+i); } return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { if(iPeriod<=Period()) return(0); ArrayCopyRates(data,NULL,iPeriod); for(int i=0;i<iNumCandles;i++) { if(i>0) data[i][5] = data[i-1][0]-60*Period(); else data[0][5]= data[0][0]+60*(iPeriod-Period()); DrawCandle(i); } } void DrawCandle(int bar) { string name1 = "ShadowCandleShadow"+bar; string name2 = "ShadowCandle"+bar; if(!ObjectCreate(name1,OBJ_RECTANGLE,0,data[bar][0],data[bar][2],data[bar][5],data[bar][3])) { ObjectSet(name1,OBJPROP_TIME1,data[bar][0]); ObjectSet(name1,OBJPROP_TIME2,data[bar][5]); ObjectSet(name1,OBJPROP_PRICE1,data[bar][2]); ObjectSet(name1,OBJPROP_PRICE2,data[bar][3]); } ObjectSet(name1,OBJPROP_BACK,false); if(!ObjectCreate(name2,OBJ_RECTANGLE,0,data[bar][0],data[bar][1],data[bar][5],data[bar][4])) { ObjectSet(name2,OBJPROP_TIME1,data[bar][0]); ObjectSet(name2,OBJPROP_TIME2,data[bar][5]); ObjectSet(name2,OBJPROP_PRICE1,data[bar][1]); ObjectSet(name2,OBJPROP_PRICE2,data[bar][4]); } ObjectSet(name2,OBJPROP_BACK,true); if(data[bar][1]<data[bar][4]) { ObjectSet(name1,OBJPROP_COLOR, BullShadow); ObjectSet(name2,OBJPROP_COLOR, BullCandle); }else { ObjectSet(name1,OBJPROP_COLOR, BearShadow); ObjectSet(name2,OBJPROP_COLOR, BearCandle); } } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: