//+------------------------------------------------------------------+ //| SBVolumeAvg.mq4 | //| Copyright 2014, Roy Philips Jacobs ~ 30/12/2015 | //| https://www.mql5.com/en/users/3rjfx | //+------------------------------------------------------------------+ #property copyright "https://www.mql5.com/en/users/3rjfx. ~ By 3rjfx ~ Created: 2015/12/30" #property link "http://www.mql5.com" #property link "https://www.mql5.com/en/users/3rjfx" #property version "1.00" //-- #property description "SBVolumeAvg is the Forex Indicator (MT4) for calculate Average Volume on the Swing Bars," #property description "by a zigzag trend line that is bounded by two vertical lines." #property description "This indicator may be useful for traders who use the average daily trading volume strategy." //--- #property indicator_chart_window //-- extern int SwingBarsCalculation = 26; // Count of bars for calculation Highest/Lowest price extern int MultiplicationDepthBars = 5; extern int TuningScanBars = 7; extern int TuningStep = 12; extern int DigitsAfterDecimalPoint = 2; extern color TrendLineDowntoUpColor = clrBlue; extern color TrendLineUptoDownColor = clrRed; extern color VerticalLineColor = clrGold; extern color TextColor = clrSnow; extern ENUM_LINE_STYLE LineStyle = STYLE_SOLID; extern ENUM_ANCHOR_POINT TextPosition = ANCHOR_RIGHT; extern int TextFontSize = 8; extern string TextFontName = "Arial Black"; //"Courier" //"Calibri" //"Cambria" //"Bodoni MT Black" extern int LineWidthSize = 1; extern int TopBottomDotSize = 15; //-- //--- the Main arrays buffers double Vol[]; datetime Times[]; //-- double tpb0p1; double tpt0p1; double tpb0p2; double tpt0p2; double avgV1; double avgV2; //-- int prvup; int prvdn; int vpos1; int vpos2; //-- datetime fb0p1; datetime ft0p1; datetime fb0p2; datetime ft0p2; //-- int digs; int bars; int hilo; int limit; int xlimit; int window; //-- bool res; bool VolUp; bool VolDn; long chart_ID; //-- string shortname; //--- //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- shortname=StringConcatenate("SBVA,",_Symbol,",TF:",strTF(_Period)); chart_ID=ChartID(); bars=171; xlimit=(int)bars/2; digs=DigitsAfterDecimalPoint; //-- hilo=SwingBarsCalculation; //-- IndicatorDigits(digs); IndicatorShortName(shortname); //-- if(hilo>=xlimit) { Print("-----"," ",shortname," Warning: SwingBarsCalculation is more than Bars calculation."); window=ChartWindowFind(); res=ChartIndicatorDelete(0,window,shortname); return(REASON_INITFAILED); } //-- if(MultiplicationDepthBars*TuningScanBars>xlimit) { Print("-----"," ",shortname," Warning: TuningScanBars multiplied by MultiplicationDepth value is too large."); window=ChartWindowFind(); res=ChartIndicatorDelete(0,window,shortname); return(REASON_INITFAILED); } //-- if(MultiplicationDepthBars*TuningStep>xlimit) { Print("-----"," ",shortname," Warning: TuningStep multiplied by MultiplicationDepth value is too large."); window=ChartWindowFind(); res=ChartIndicatorDelete(0,window,shortname); return(REASON_INITFAILED); } //-- limit=Bars_Calculate(); //-- //--- initialization done.! return(INIT_SUCCEEDED); } //--- //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //---- PrintFormat("%s: Deinitialization reason code: %d",__FUNCTION__,reason); if(reason==REASON_REMOVE) { PrintFormat("An indicator %s has deleted from the chart..!!",shortname,__FILE__); //-- } //-- ObjectsDeleteAll(); GlobalVariablesDeleteAll(); //---- return; } //--- //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- //--- check for rates total limit=rates_total-prev_calculated; if(rates_total<=bars) return(0); if(prev_calculated>0) {limit=Bars_Calculate();} //-- ResetLastError(); ChartRedraw(0); RefreshRates(); //--- //--- //-- int v,x; int vbar0; int stbar=0; int xhilo=hilo; int tunstep=TuningStep; int scan=TuningScanBars; int tunebar=MultiplicationDepthBars; //-- double sumVol=0.0; double avgVol=0.0; //-- //--- //---- //--- //-- if(!IsStopped()) { for(x=0; x=iHigh(_Symbol,0,iHighest(_Symbol,0,MODE_HIGH,scan,ft0+1))) && (tpbtest<=iLow(_Symbol,0,iLowest(_Symbol,0,MODE_LOW,scan,fb0+1)))) { double tpt0=iHigh(_Symbol,0,ft0); double tpb0=iLow(_Symbol,0,fb0); break; } else {xhilo=hilo+(tunebar*x);} //-- } } //-- if(ft0=ft0; v--) {sumVol+=Vol[v];} avgVol=NormalizeDouble(sumVol/vbar0,digs); avgV1=avgVol; VolDn=true; VolUp=false; fb0p1=Times[fb0]; tpb0p1=tpb0; ft0p1=Times[ft0]; tpt0p1=tpt0; vpos1=Times[ft0+1]; prvdn=1; //-- string objnameDn10_=shortname+": VerticalLineSwingBarsUp1_"; string objnameDn20_=shortname+": VerticalLineSwingBarsUp2_"; string objname10=shortname+": TrendSwingBarsUp"; string objname20=shortname+": SwingBarsPosTop0"; string objname30=shortname+": SwingBarsPosBottom0"; string objname40=shortname+": AverageVolumeSwingBarsUp"; ObjectDelete(objname10); ObjectDelete(objname20); ObjectDelete(objname30); ObjectDelete(objname40); ObjectDelete(objnameDn10_); ObjectDelete(objnameDn20_); //-- ObjectCreate(chart_ID,objnameDn10_,OBJ_VLINE,0,Times[fb0],0); ObjectSetInteger(chart_ID,objnameDn10_,OBJPROP_COLOR,VerticalLineColor); ObjectSetInteger(chart_ID,objnameDn10_,OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(chart_ID,objnameDn10_,OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objnameDn10_,OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objnameDn20_,OBJ_VLINE,0,Times[ft0],0); ObjectSetInteger(chart_ID,objnameDn20_,OBJPROP_COLOR,VerticalLineColor); ObjectSetInteger(chart_ID,objnameDn20_,OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(chart_ID,objnameDn20_,OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objnameDn20_,OBJPROP_HIDDEN,true); //--- ObjectCreate(chart_ID,objname10,OBJ_TREND,0,Times[fb0],tpb0,Times[ft0],tpt0); ObjectSetInteger(chart_ID,objname10,OBJPROP_COLOR,TrendLineDowntoUpColor); ObjectSetInteger(chart_ID,objname10,OBJPROP_RAY_RIGHT,false); ObjectSetInteger(chart_ID,objname10,OBJPROP_STYLE,STYLE_SOLID); ObjectSetInteger(chart_ID,objname10,OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objname10,OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname20,OBJ_TEXT,0,Times[ft0],tpt0); ObjectSetString(chart_ID,objname20,OBJPROP_TEXT,CharToStr(119)); ObjectSetString(chart_ID,objname20,OBJPROP_FONT,"Wingdings"); ObjectSetInteger(chart_ID,objname20,OBJPROP_FONTSIZE,TopBottomDotSize); ObjectSetInteger(chart_ID,objname20,OBJPROP_COLOR,TrendLineUptoDownColor); ObjectSetInteger(chart_ID,objname20,OBJPROP_ANCHOR,ANCHOR_CENTER); ObjectSetInteger(chart_ID,objname20,OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname30,OBJ_TEXT,0,Times[fb0],tpb0); ObjectSetString(chart_ID,objname30,OBJPROP_TEXT,CharToStr(119)); ObjectSetString(chart_ID,objname30,OBJPROP_FONT,"Wingdings"); ObjectSetInteger(chart_ID,objname30,OBJPROP_FONTSIZE,TopBottomDotSize); ObjectSetInteger(chart_ID,objname30,OBJPROP_COLOR,TrendLineDowntoUpColor); ObjectSetInteger(chart_ID,objname30,OBJPROP_ANCHOR,ANCHOR_CENTER); ObjectSetInteger(chart_ID,objname30,OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname40,OBJ_TEXT,0,Times[ft0+1],tpt0); ObjectSetInteger(chart_ID,objname40,OBJPROP_COLOR,TextColor); ObjectSetString(chart_ID,objname40,OBJPROP_TEXT,DoubleToString(avgVol,digs)); ObjectSetString(chart_ID,objname40,OBJPROP_FONT,TextFontName); ObjectSetInteger(chart_ID,objname40,OBJPROP_FONTSIZE,TextFontSize); ObjectSetInteger(chart_ID,objname40,OBJPROP_ANCHOR,TextPosition); ObjectSetInteger(chart_ID,objname40,OBJPROP_HIDDEN,true); //-- //--- if((VolDn) && (prvup==1)) { prvup=0; //-- string objnameUp10p=shortname+": VerticalLineSwingBarsDn1-"; string objnameUp20p=shortname+": VerticalLineSwingBarsDn2-"; string objname10p=shortname+": TrendSwingBarsDown2"; string objname20p=shortname+": SwingBarsPosTop0p"; string objname30p=shortname+": SwingBarsPosBottom0p"; string objname40p=shortname+": AverageVolumeSwingBarsDown0p"; //-- ObjectCreate(chart_ID,objnameUp10p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJ_VLINE,0,fb0p2,0); ObjectSetInteger(chart_ID,objnameUp10p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,VerticalLineColor); ObjectSetInteger(chart_ID,objnameUp10p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_STYLE,LineStyle); ObjectSetInteger(chart_ID,objnameUp10p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objnameUp10p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objnameUp20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJ_VLINE,0,ft0p2,0); ObjectSetInteger(chart_ID,objnameUp20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,VerticalLineColor); ObjectSetInteger(chart_ID,objnameUp20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_STYLE,LineStyle); ObjectSetInteger(chart_ID,objnameUp20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objnameUp20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //--- ObjectCreate(chart_ID,objname10p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJ_TREND,0,ft0p2,tpt0p2,fb0p2,tpb0p2); ObjectSetInteger(chart_ID,objname10p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,TrendLineUptoDownColor); ObjectSetInteger(chart_ID,objname10p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_RAY_RIGHT,false); ObjectSetInteger(chart_ID,objname10p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_STYLE,LineStyle); ObjectSetInteger(chart_ID,objname10p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objname10p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJ_TEXT,0,ft0p2,tpt0p2); ObjectSetString(chart_ID,objname20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_TEXT,CharToStr(119)); ObjectSetString(chart_ID,objname20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_FONT,"Wingdings"); ObjectSetInteger(chart_ID,objname20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_FONTSIZE,TopBottomDotSize); ObjectSetInteger(chart_ID,objname20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,TrendLineUptoDownColor); ObjectSetInteger(chart_ID,objname20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_ANCHOR,ANCHOR_CENTER); ObjectSetInteger(chart_ID,objname20p+string(TimeToString(ft0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname30p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJ_TEXT,0,fb0p2,tpb0p2); ObjectSetString(chart_ID,objname30p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_TEXT,CharToStr(119)); ObjectSetString(chart_ID,objname30p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_FONT,"Wingdings"); ObjectSetInteger(chart_ID,objname30p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_FONTSIZE,TopBottomDotSize); ObjectSetInteger(chart_ID,objname30p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,TrendLineDowntoUpColor); ObjectSetInteger(chart_ID,objname30p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_ANCHOR,ANCHOR_CENTER); ObjectSetInteger(chart_ID,objname30p+string(TimeToString(fb0p2,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname40p+string(TimeToString(vpos2,TIME_DATE|TIME_MINUTES)),OBJ_TEXT,0,vpos2,tpb0p2); ObjectSetInteger(chart_ID,objname40p+string(TimeToString(vpos2,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,TextColor); ObjectSetString(chart_ID,objname40p+string(TimeToString(vpos2,TIME_DATE|TIME_MINUTES)),OBJPROP_TEXT,DoubleToString(avgV2,digs)); ObjectSetString(chart_ID,objname40p+string(TimeToString(vpos2,TIME_DATE|TIME_MINUTES)),OBJPROP_FONT,TextFontName); ObjectSetInteger(chart_ID,objname40p+string(TimeToString(vpos2,TIME_DATE|TIME_MINUTES)),OBJPROP_FONTSIZE,TextFontSize); ObjectSetInteger(chart_ID,objname40p+string(TimeToString(vpos2,TIME_DATE|TIME_MINUTES)),OBJPROP_ANCHOR,TextPosition); ObjectSetInteger(chart_ID,objname40p+string(TimeToString(vpos2,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //-- } //--- } //--- //--- if(ft0>fb0) { //-- vbar0=ft0-fb0+1; //-- for(v=ft0; v>=fb0; v--) {sumVol+=Vol[v];} avgVol=NormalizeDouble(sumVol/vbar0,digs); avgV2=avgVol; VolUp=true; VolDn=false; fb0p2=Times[fb0]; tpb0p2=tpb0; ft0p2=Times[ft0]; tpt0p2=tpt0; vpos2=Times[fb0+1]; prvup=1; //-- string objnameUp10_=shortname+": VerticalLineSwingBarsDn1_"; string objnameUp20_=shortname+": VerticalLineSwingBarsDn2_"; string objname11=shortname+": TrendSwingBarsDown"; string objname21=shortname+": SwingBarsPosTop1"; string objname31=shortname+": SwingBarsPosBottom1"; string objname41=shortname+": AverageVolumeSwingBarsDown"; ObjectDelete(objname11); ObjectDelete(objname21); ObjectDelete(objname31); ObjectDelete(objname41); ObjectDelete(objnameUp10_); ObjectDelete(objnameUp20_); //-- ObjectCreate(chart_ID,objnameUp10_,OBJ_VLINE,0,Times[ft0],0); ObjectSetInteger(chart_ID,objnameUp10_,OBJPROP_COLOR,VerticalLineColor); ObjectSetInteger(chart_ID,objnameUp10_,OBJPROP_STYLE,LineStyle); ObjectSetInteger(chart_ID,objnameUp10_,OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objnameUp10_,OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objnameUp20_,OBJ_VLINE,0,Times[fb0],0); ObjectSetInteger(chart_ID,objnameUp20_,OBJPROP_COLOR,VerticalLineColor); ObjectSetInteger(chart_ID,objnameUp20_,OBJPROP_STYLE,LineStyle); ObjectSetInteger(chart_ID,objnameUp20_,OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objnameUp20_,OBJPROP_HIDDEN,true); //--- ObjectCreate(chart_ID,objname11,OBJ_TREND,0,Times[ft0],tpt0,Times[fb0],tpb0); ObjectSetInteger(chart_ID,objname11,OBJPROP_COLOR,TrendLineUptoDownColor); ObjectSetInteger(chart_ID,objname11,OBJPROP_RAY_RIGHT,false); ObjectSetInteger(chart_ID,objname11,OBJPROP_STYLE,LineStyle); ObjectSetInteger(chart_ID,objname11,OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objname11,OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname21,OBJ_TEXT,0,Times[ft0],tpt0); ObjectSetString(chart_ID,objname21,OBJPROP_TEXT,CharToStr(119)); ObjectSetString(chart_ID,objname21,OBJPROP_FONT,"Wingdings"); ObjectSetInteger(chart_ID,objname21,OBJPROP_FONTSIZE,TopBottomDotSize); ObjectSetInteger(chart_ID,objname21,OBJPROP_COLOR,TrendLineUptoDownColor); ObjectSetInteger(chart_ID,objname21,OBJPROP_ANCHOR,ANCHOR_CENTER); ObjectSetInteger(chart_ID,objname21,OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname31,OBJ_TEXT,0,Times[fb0],tpb0); ObjectSetString(chart_ID,objname31,OBJPROP_TEXT,CharToStr(119)); ObjectSetString(chart_ID,objname31,OBJPROP_FONT,"Wingdings"); ObjectSetInteger(chart_ID,objname31,OBJPROP_FONTSIZE,TopBottomDotSize); ObjectSetInteger(chart_ID,objname31,OBJPROP_COLOR,TrendLineDowntoUpColor); ObjectSetInteger(chart_ID,objname31,OBJPROP_ANCHOR,ANCHOR_CENTER); ObjectSetInteger(chart_ID,objname31,OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname41,OBJ_TEXT,0,Times[fb0+1],tpb0); ObjectSetInteger(chart_ID,objname41,OBJPROP_COLOR,TextColor); ObjectSetString(chart_ID,objname41,OBJPROP_TEXT,DoubleToString(avgVol,digs)); ObjectSetString(chart_ID,objname41,OBJPROP_FONT,TextFontName); ObjectSetInteger(chart_ID,objname41,OBJPROP_FONTSIZE,TextFontSize); ObjectSetInteger(chart_ID,objname41,OBJPROP_ANCHOR,TextPosition); ObjectSetInteger(chart_ID,objname41,OBJPROP_HIDDEN,true); //-- //--- if((VolUp) && (prvdn==1)) { //-- prvdn=0; //-- string objnameDn1p=shortname+": VerticalLineSwingBarsUp1-"; string objnameDn2p=shortname+": VerticalLineSwingBarsUp2-"; string objname11p=shortname+": TrendSwingBarsUp1"; string objname21p=shortname+": SwingBarsPosTop1p"; string objname31p=shortname+": SwingBarsPosBottom1p"; string objname41p=shortname+": AverageVolumeSwingBarsUp1p"; //-- ObjectCreate(chart_ID,objnameDn1p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJ_VLINE,0,fb0p1,0); ObjectSetInteger(chart_ID,objnameDn1p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,VerticalLineColor); ObjectSetInteger(chart_ID,objnameDn1p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_STYLE,LineStyle); ObjectSetInteger(chart_ID,objnameDn1p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objnameDn1p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objnameDn2p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJ_VLINE,0,ft0p1,0); ObjectSetInteger(chart_ID,objnameDn2p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,VerticalLineColor); ObjectSetInteger(chart_ID,objnameDn2p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_STYLE,LineStyle); ObjectSetInteger(chart_ID,objnameDn2p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objnameDn2p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //--- ObjectCreate(chart_ID,objname11p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJ_TREND,0,fb0p1,tpb0p1,ft0p1,tpt0p1); ObjectSetInteger(chart_ID,objname11p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,TrendLineDowntoUpColor); ObjectSetInteger(chart_ID,objname11p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_RAY_RIGHT,false); ObjectSetInteger(chart_ID,objname11p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_STYLE,LineStyle); ObjectSetInteger(chart_ID,objname11p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_WIDTH,LineWidthSize); ObjectSetInteger(chart_ID,objname11p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname21p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJ_TEXT,0,ft0p1,tpt0p1); ObjectSetString(chart_ID,objname21p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_TEXT,CharToStr(119)); ObjectSetString(chart_ID,objname21p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_FONT,"Wingdings"); ObjectSetInteger(chart_ID,objname21p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_FONTSIZE,TopBottomDotSize); ObjectSetInteger(chart_ID,objname21p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,TrendLineUptoDownColor); ObjectSetInteger(chart_ID,objname21p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_ANCHOR,ANCHOR_CENTER); ObjectSetInteger(chart_ID,objname21p+string(TimeToString(ft0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname31p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJ_TEXT,0,fb0p1,tpb0p1); ObjectSetString(chart_ID,objname31p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_TEXT,CharToStr(119)); ObjectSetString(chart_ID,objname31p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_FONT,"Wingdings"); ObjectSetInteger(chart_ID,objname31p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_FONTSIZE,TopBottomDotSize); ObjectSetInteger(chart_ID,objname31p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,TrendLineDowntoUpColor); ObjectSetInteger(chart_ID,objname31p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_ANCHOR,ANCHOR_CENTER); ObjectSetInteger(chart_ID,objname31p+string(TimeToString(fb0p1,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //-- ObjectCreate(chart_ID,objname41p+string(TimeToString(vpos1,TIME_DATE|TIME_MINUTES)),OBJ_TEXT,0,vpos1,tpt0p1); ObjectSetInteger(chart_ID,objname41p+string(TimeToString(vpos1,TIME_DATE|TIME_MINUTES)),OBJPROP_COLOR,TextColor); ObjectSetString(chart_ID,objname41p+string(TimeToString(vpos1,TIME_DATE|TIME_MINUTES)),OBJPROP_TEXT,DoubleToString(avgV1,digs)); ObjectSetString(chart_ID,objname41p+string(TimeToString(vpos1,TIME_DATE|TIME_MINUTES)),OBJPROP_FONT,TextFontName); ObjectSetInteger(chart_ID,objname41p+string(TimeToString(vpos1,TIME_DATE|TIME_MINUTES)),OBJPROP_FONTSIZE,TextFontSize); ObjectSetInteger(chart_ID,objname41p+string(TimeToString(vpos1,TIME_DATE|TIME_MINUTES)),OBJPROP_ANCHOR,TextPosition); ObjectSetInteger(chart_ID,objname41p+string(TimeToString(vpos1,TIME_DATE|TIME_MINUTES)),OBJPROP_HIDDEN,true); //-- } //--- } //--- //--- return(rates_total); } //---// //---// string strTF(int period) { switch(period) { //-- case PERIOD_M1: return("M1"); case PERIOD_M5: return("M5"); case PERIOD_M15: return("M15"); case PERIOD_M30: return("M30"); case PERIOD_H1: return("H1"); case PERIOD_H4: return("H4"); case PERIOD_D1: return("D1"); case PERIOD_W1: return("W1"); case PERIOD_MN1: return("MN"); //-- } return(period); } //---/ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int Bars_Calculate() { //-- bars=171; //-- int b; ArrayResize(Vol,bars); ArrayResize(Times,bars); ArraySetAsSeries(Vol,true); ArraySetAsSeries(Times,true); //-- //--- last bar counting position for(b=bars-1,limit=0; b>=0; b--,limit++) { Vol[b]=iVolume(_Symbol,0,b); Times[b]=iTime(_Symbol,0,b); } //--- //---) return(limit); //-- } //----// //+------------------------------------------------------------------+