#property copyright "Copyright © 2014, Bredin" #property link "http://insanityindustries.net/viewtopic.php?t=10" #property description "Displays Supply and Demand zones more-or-less in accordance with Sam Seidens teachings." #property version "2.33" //updated from 2.32, ZigZag bug fixes, by Big Be 09/2014 #property indicator_chart_window #property indicator_buffers 6 input ENUM_TIMEFRAMES TimeFrame = PERIOD_CURRENT; input bool DrawZones = true; input bool SolidZones = true; input bool SolidRetouch = false; input bool RecolorRetouch = true; input bool RecolorWeakRetouch = false; input bool ZoneStrength = true; input bool NoWeakZones = true; input bool DrawEdgePrice = true; input int ZoneWidth = 2; input bool ZoneFibs = false; input int FibStyle = 0; input bool HUDOn = true; input bool TimerOn = true; input int LayerZone = 0; input int LayerHUD = 20; input ENUM_BASE_CORNER CornerHUD = 3; input int PosX = 7; input int PosY = 10; input bool AlertOn = true; input bool AlertPopup = true; input string AlertSound = "alert.wav"; input color ColorSupStrong = clrDarkGreen; input color ColorSupWeak = clrSlateBlue; input color ColorSupRetouch = clrSteelBlue; input color ColorDemStrong = clrDarkRed; input color ColorDemWeak = clrLightCoral; input color ColorDemRetouch = clrSaddleBrown; input color ColorFib = clrDodgerBlue; input color ColorHUDTF = clrNavy; input color ColorArrowUp = clrSeaGreen; input color ColorArrowDn = clrCrimson; input color ColorTimerBack = clrDarkGray; input color ColorTimerBar = clrRed; input color ColorShadow = clrDarkSlateGray; input bool LimitZoneVis = false; input bool SameTFVis = true; input bool ShowOnM1 = false; input bool ShowOnM5 = true; input bool ShowOnM15 = false; input bool ShowOnM30 = false; input bool ShowOnH1 = false; input bool ShowOnH4 = false; input bool ShowOnD1 = false; input bool ShowOnW1 = false; input bool ShowOnMN = false; input int PriceWidth = 1; input int TimeOffset = 0; input bool GlobalVars = false; double BufferSupport1[]; double BufferSupport2[]; double BufferSupport3[]; double BufferResistance1[]; double BufferResistance2[]; double BufferResistance3[]; double SupRR[4]; double DemRR[4]; double SupWidth,DemWidth; string lhud,lzone; int HUDx,LayerHUD0,LayerZone0; ENUM_BASE_CORNER CornerHUD0; string FontHUD = "Comic Sans MS"; int FontHUDsize = 20; string FontHUDprice = "Arial Bold"; int FontHUDPriceSize = 12; int ArrowUP = 0x70; int ArrowDN = 0x71; string FontArrow = "WingDings 3"; int FontArrowSize = 40; int FontPairSize = 8; string ArrowGlance; color ColorArrow; int visible; int rotation=270; int lenbase; string s_base="|||||||||||||||||||||||"; string TimerFont="Arial"; int SizeTimerFont=8; double min,max; double iPeriod[4] = {3,8,13,34}; int Dev[4] = {2,5,8,13}; int Step[4] = {2,3,5,8}; datetime h1,h2; double p1,p2; string pair; double point; int digits; ENUM_TIMEFRAMES tf; string TAG; double FibSup,FibDem; int SupCount,DemCount; int SupAlert,DemAlert; double UpCur,DnCur; double FibLevelArray[13]={0,0.236,0.386,0.5,0.618,0.786,1,1.276,1.618,2.058,2.618,3.33,4.236}; string FibLevelDesc[13]={"0","23.6%","38.6%","50%","61.8%","78.6%","100%","127.6%","161.8%","205.8%","261.80%","333%","423.6%"}; int HUDTimerX,HUDTimerY,HUDArrowX,HUDArrowY,HUDTFX,HUDTFY; int HUDsupX,HUDsupY,HUDdemX,HUDdemY; int HUDtimersX,HUDtimersY,HUDarrowsX,HUDarrowsY,HUDtfsX,HUDtfsY; int HUDsupsX,HUDsupsY,HUDdemsX,HUDdemsY; void OnInit() {int t1; t1=0; SetIndexBuffer(t1,BufferResistance1); SetIndexEmptyValue(t1,0.0); SetIndexStyle(t1,DRAW_NONE); t1+=1; SetIndexBuffer(t1,BufferResistance2); SetIndexEmptyValue(t1,0.0); SetIndexStyle(t1,DRAW_NONE); t1+=1; SetIndexBuffer(t1,BufferResistance3); SetIndexEmptyValue(t1,0.0); SetIndexStyle(t1,DRAW_NONE); t1+=1; SetIndexBuffer(t1,BufferSupport1); SetIndexEmptyValue(t1,0.0); SetIndexStyle(t1,DRAW_NONE); t1+=1; SetIndexBuffer(t1,BufferSupport2); SetIndexEmptyValue(t1,0.0); SetIndexStyle(t1,DRAW_NONE); t1+=1; SetIndexBuffer(t1,BufferSupport3); SetIndexEmptyValue(t1,0.0); SetIndexStyle(t1,DRAW_NONE); LayerHUD0=MathMin(LayerHUD,25); lhud = CharToStr(0x61+LayerHUD0); LayerZone0=MathMin(LayerZone,25); lzone = CharToStr(0x61+LayerZone0); CornerHUD0=CornerHUD; pair=Symbol(); if(TimeFrame != 0) tf = TimeFrame; else tf = PERIOD_CURRENT; point = Point; digits = MarketInfo(Symbol(), MODE_DIGITS); //Digits; if(digits == 3 || digits == 5) point*=10; if(HUDOn && !DrawZones) TAG = "II_HUD"+tf; else TAG = "II_SupDem"+tf; lenbase=StringLen(s_base); if(HUDOn) setHUD(); if(LimitZoneVis) setVisibility(); ObDeleteObjectsByPrefix(lhud+TAG); ObDeleteObjectsByPrefix(lzone+TAG); DoLogo();} void OnDeinit(const int reason) { ObDeleteObjectsByPrefix(lhud+TAG); ObDeleteObjectsByPrefix(lzone+TAG); Comment(""); return; } int start() { if (NewBar()) { SupAlert = 1; DemAlert = 1; ObDeleteObjectsByPrefix(lzone+TAG); CountZZ(BufferSupport1,BufferResistance1,iPeriod[0],Dev[0],Step[0]); // Comment("iPeriod[0]",iPeriod[0]); GetValid(BufferSupport1,BufferResistance1); Draw(); if(HUDOn) HUD(); } if(HUDOn && TimerOn) {BarTimer();} if(AlertOn) {CheckAlert();} return(0); } void CheckAlert(){ // SupCount DemCount // SupAlert DemAlert double price = ObjectGet(lzone+TAG+"UPAR"+SupAlert,OBJPROP_PRICE1); if(Close[0] > price && price > point){ if(AlertPopup) Alert(pair+" "+TimeFrameToString(tf)+" Supply Zone Entered at "+DoubleToStr(price,Digits)); PlaySound(AlertSound); SupAlert++; } price = ObjectGet(lzone+TAG+"DNAR"+DemAlert,OBJPROP_PRICE1); if(Close[0] < price){ Alert(pair+" "+TimeFrameToString(tf)+" Demand Zone Entered at "+DoubleToStr(price,Digits)); PlaySound(AlertSound); DemAlert++; } } void Draw() { int FibSupHIT=0; int FibDemHIT=0; int sc=0,dc=0; int i,j,countstrong,countweak; color c; string s; bool exit,draw,fle,fhe,retouch; bool valid; double val; fhe=false; fle=false; SupCount=0; DemCount=0; FibSup=0; FibDem=0; for(i=0;i point){ retouch = false; valid = false; h1 = iTime(pair,tf,i); h2 = Time[0]; p2 = MathMin(iClose(pair,tf,i),iOpen(pair,tf,i)); if(i>0) p2 = MathMax(p2,MathMax(iLow(pair,tf,i-1),iLow(pair,tf,i+1))); if(i>0) p2 = MathMax(p2,MathMin(iOpen(pair,tf,i-1),iClose(pair,tf,i-1))); p2 = MathMax(p2,MathMin(iOpen(pair,tf,i+1),iClose(pair,tf,i+1))); draw=true; if(RecolorRetouch || !SolidRetouch){ exit = false; for(j=i;j>=0;j--){ if(j==0 && !exit) {draw=false; break;} if(!exit && iHigh(pair,tf,j)p2) { retouch = true; if(ZoneFibs && FibSupHIT==0){ FibSup = p2; FibSupHIT = j;} break; } } } if(SupCount != 0) val = ObjectGet(TAG+"UPZONE"+SupCount,OBJPROP_PRICE2); //final sema cull else val=0; if(draw && BufferResistance1[i]!=val) { valid=true; c = ColorSupStrong; if(ZoneStrength && (retouch || !RecolorRetouch)){ countstrong=0; countweak=0; for(j=i;j<1000000;j++){ if(iHigh(pair,tf,j+1)BufferResistance1[i]) countweak++; if(countstrong > 1) break; else if(countweak > 1){ c=ColorSupWeak; if(NoWeakZones) draw = false; break; } } } // if(c == ColorSupWeak && !NoWeakZones) draw = false; BufferResistance2[i]=(BufferResistance1[i]>0)*p2; BufferResistance3[i]=(BufferResistance1[i]>0)*draw; if(DrawZones && draw){ if(RecolorRetouch && retouch && countweak<2) c = ColorSupRetouch; else if(RecolorWeakRetouch && retouch && countweak>1) c = ColorSupRetouch; SupCount++; if(DrawEdgePrice){ s = lzone+TAG+"UPAR"+SupCount; ObjectCreate(s,OBJ_ARROW,0,0,0); ObjectSet(s,OBJPROP_ARROWCODE,SYMBOL_RIGHTPRICE); ObjectSet(s, OBJPROP_TIME1, h2); ObjectSet(s, OBJPROP_PRICE1, p2); ObjectSet(s,OBJPROP_COLOR,c); ObjectSet(s,OBJPROP_WIDTH,PriceWidth); if(LimitZoneVis) ObjectSet(s,OBJPROP_TIMEFRAMES,visible); } s = lzone+TAG+"UPZONE"+SupCount; ObjectCreate(s,OBJ_RECTANGLE,0,0,0,0,0); ObjectSet(s,OBJPROP_TIME1,h1); ObjectSet(s,OBJPROP_PRICE1,BufferResistance1[i]); ObjectSet(s,OBJPROP_TIME2,h2); ObjectSet(s,OBJPROP_PRICE2,p2); ObjectSet(s,OBJPROP_COLOR,c); ObjectSet(s,OBJPROP_BACK,true); if(LimitZoneVis) ObjectSet(s,OBJPROP_TIMEFRAMES,visible); if(!SolidZones) {ObjectSet(s,OBJPROP_BACK,false);ObjectSet(s,OBJPROP_WIDTH,ZoneWidth);} if(!SolidRetouch && retouch) {ObjectSet(s,OBJPROP_BACK,false);ObjectSet(s,OBJPROP_WIDTH,ZoneWidth);} if(GlobalVars){ GlobalVariableSet(TAG+"S.PH"+SupCount,BufferResistance1[i]); GlobalVariableSet(TAG+"S.PL"+SupCount,p2); GlobalVariableSet(TAG+"S.T"+SupCount,iTime(pair,tf,i)); } if(!fhe && c!=ColorDemRetouch){fhe=true; GlobalVariableSet(TAG+"GOSHORT",p2);} } } if(draw && sc<4 && HUDOn && valid){ if(sc==0) SupWidth = BufferResistance1[i] - p2; SupRR[sc] = p2; sc++; } } if(BufferSupport1[i] > point){ retouch = false; valid=false; h1 = iTime(pair,tf,i); h2 = Time[0]; p2 = MathMax(iClose(pair,tf,i),iOpen(pair,tf,i)); if(i>0) p2 = MathMin(p2,MathMin(iHigh(pair,tf,i+1),iHigh(pair,tf,i-1))); if(i>0) p2 = MathMin(p2,MathMax(iOpen(pair,tf,i-1),iClose(pair,tf,i-1))); p2 = MathMin(p2,MathMax(iOpen(pair,tf,i+1),iClose(pair,tf,i+1))); c = ColorDemStrong; draw=true; if(RecolorRetouch || !SolidRetouch){ exit = false; for(j=i;j>=0;j--) { if(j==0 && !exit) {draw=false;break;} if(!exit && iLow(pair,tf,j)>p2) {exit=true;continue;} if(exit && iLow(pair,tf,j)p2) countstrong++; if(iLow(pair,tf,j+1) 1) break; else if(countweak > 1){ if(NoWeakZones) draw = false; c=ColorDemWeak; break; } } } BufferSupport2[i]=(BufferSupport1[i]>0)*p2; BufferSupport3[i]=(BufferSupport1[i]>0)*draw; if(DrawZones && draw){ if(RecolorRetouch && retouch && countweak<2) c = ColorDemRetouch; else if(RecolorWeakRetouch && retouch && countweak>1) c = ColorDemRetouch; DemCount++; if(DrawEdgePrice){ s = lzone+TAG+"DNAR"+DemCount; ObjectCreate(s,OBJ_ARROW,0,0,0); ObjectSet(s,OBJPROP_ARROWCODE,SYMBOL_RIGHTPRICE); ObjectSet(s, OBJPROP_TIME1, h2); ObjectSet(s, OBJPROP_PRICE1, p2); ObjectSet(s,OBJPROP_COLOR,c); ObjectSet(s,OBJPROP_WIDTH,PriceWidth); if(LimitZoneVis) ObjectSet(s,OBJPROP_TIMEFRAMES,visible); } s = lzone+TAG+"DNZONE"+DemCount; ObjectCreate(s,OBJ_RECTANGLE,0,0,0,0,0); ObjectSet(s,OBJPROP_TIME1,h1); ObjectSet(s,OBJPROP_PRICE1,p2); ObjectSet(s,OBJPROP_TIME2,h2); ObjectSet(s,OBJPROP_PRICE2,BufferSupport1[i]); ObjectSet(s,OBJPROP_COLOR,c); ObjectSet(s,OBJPROP_BACK,true); if(LimitZoneVis) ObjectSet(s,OBJPROP_TIMEFRAMES,visible); if(!SolidZones) {ObjectSet(s,OBJPROP_BACK,false);ObjectSet(s,OBJPROP_WIDTH,ZoneWidth);} if(!SolidRetouch && retouch) {ObjectSet(s,OBJPROP_BACK,false);ObjectSet(s,OBJPROP_WIDTH,ZoneWidth);} if(GlobalVars){ GlobalVariableSet(TAG+"D.PL"+DemCount,BufferSupport1[i]); GlobalVariableSet(TAG+"D.PH"+DemCount,p2); GlobalVariableSet(TAG+"D.T"+DemCount,iTime(pair,tf,i)); } if(!fle && c!=ColorDemRetouch){fle=true;GlobalVariableSet(TAG+"GOLONG",p2);} } } if(draw && dc<4 && HUDOn && valid){ if(dc==0) DemWidth = p2-BufferSupport1[i]; DemRR[dc] = p2; dc++; } } } if(ZoneFibs || HUDOn){ double a,b; int dr=0; int sr=0; int d1=0; int s1=0; for(i=0;i<100000;i++){ if(iHigh(pair,tf,i)>FibSup && sr==0) sr = i; if(iHigh(pair,tf,i)>SupRR[0] && s1==0) s1 = i; if(iLow(pair,tf,i)=0; t1--){ val = iLow(pair,tf,iLowest(pair,tf,MODE_LOW,ExtDepth,t1)); if(val==lastlow) val=0.0; else { lastlow=val; if((iLow(pair,tf,t1)-val)>(ExtDeviation*point)) val=0.0; else{ for(back=1; back<=ExtBackstep; back++){ res=ExtMapBuffer[t1+back]; if((res!=0)&&(res>val)) ExtMapBuffer[t1+back]=0.0; } } } ExtMapBuffer[t1]=val; //--- high val=iHigh(pair,tf,iHighest(pair,tf,MODE_HIGH,ExtDepth,t1)); if(val==lasthigh) val=0.0; else { lasthigh=val; if((val-iHigh(pair,tf,t1))>(ExtDeviation*point)) val=0.0; else{ for(back=1; back<=ExtBackstep; back++){ res=ExtMapBuffer2[t1+back]; if((res!=0)&&(res=0; t1--){ curlow=ExtMapBuffer[t1]; curhigh=ExtMapBuffer2[t1]; if((curlow==0)&&(curhigh==0)) continue; //--- if(curhigh!=0){ if(lasthigh>0) { if(lasthigh0){ if(lastlow>curlow) ExtMapBuffer[lastlowpos]=0; else ExtMapBuffer[t1]=0; } //--- if((curlow=0; shift--){ if(shift>=count) ExtMapBuffer[shift]=0.0; else { res=ExtMapBuffer2[shift]; if(res!=0.0) ExtMapBuffer2[shift]=res; } } */ } void GetValid(double& ExtMapBuffer[], double& ExtMapBuffer2[]){ UpCur = 0; int upbar = 0; DnCur = 0; int dnbar = 0; double CurHi = 0; double CurLo = 0; double LastUp = 0; double LastDn = 0; double LowDn = 0; double HiUp = 0; int i; for(i=0;i 0){ UpCur = ExtMapBuffer[i]; CurLo = ExtMapBuffer[i]; LastUp = CurLo; break; } for(i=0;i 0){ DnCur = ExtMapBuffer2[i]; CurHi = ExtMapBuffer2[i]; LastDn = CurHi; break; } for(i=0;i= LastDn) { LastDn = ExtMapBuffer2[i]; dnbar = i; } else ExtMapBuffer2[i] = 0.0; if(ExtMapBuffer2[i] <= DnCur && ExtMapBuffer[i] > 0.0) ExtMapBuffer2[i] = 0.0; if(ExtMapBuffer[i] <= LastUp && ExtMapBuffer[i] > 0) { LastUp = ExtMapBuffer[i]; upbar = i; } else ExtMapBuffer[i] = 0.0; if(ExtMapBuffer[i] > UpCur) ExtMapBuffer[i] = 0.0; } LowDn = MathMin(iOpen(pair,tf,dnbar),iClose(pair,tf,dnbar)); HiUp = MathMax(iOpen(pair,tf,upbar),iClose(pair,tf,upbar)); for(i=MathMax(upbar,dnbar);i>=0;i--) {// work back to zero and remove reentries into s/d if(ExtMapBuffer2[i] > LowDn && ExtMapBuffer2[i] != LastDn) ExtMapBuffer2[i] = 0.0; else if(ExtMapBuffer2[i] > 0) { LastDn = ExtMapBuffer2[i]; LowDn = MathMin(iClose(pair,tf,i),iOpen(pair,tf,i)); if(i>0) LowDn = MathMax(LowDn,MathMax(iLow(pair,tf,i-1),iLow(pair,tf,i+1))); if(i>0) LowDn = MathMax(LowDn,MathMin(iOpen(pair,tf,i-1),iClose(pair,tf,i-1))); LowDn = MathMax(LowDn,MathMin(iOpen(pair,tf,i+1),iClose(pair,tf,i+1))); } if(ExtMapBuffer[i] <= HiUp && ExtMapBuffer[i] > 0 && ExtMapBuffer[i] != LastUp) ExtMapBuffer[i] = 0.0; else if(ExtMapBuffer[i] > 0){ LastUp = ExtMapBuffer[i]; HiUp = MathMax(iClose(pair,tf,i),iOpen(pair,tf,i)); if(i>0) HiUp = MathMin(HiUp,MathMin(iHigh(pair,tf,i+1),iHigh(pair,tf,i-1))); if(i>0) HiUp = MathMin(HiUp,MathMax(iOpen(pair,tf,i-1),iClose(pair,tf,i-1))); HiUp = MathMin(HiUp,MathMax(iOpen(pair,tf,i+1),iClose(pair,tf,i+1))); } } } void HUD() { string s = TimeFrameToString(tf); string u = DoubleToStr(ObjectGet(lzone+TAG+"UPAR"+1,OBJPROP_PRICE1),Digits); string d = DoubleToStr(ObjectGet(lzone+TAG+"DNAR"+1,OBJPROP_PRICE1),Digits); string l = "b"; DrawText(l,s,HUDTFX,HUDTFY,ColorHUDTF,FontHUD,FontHUDsize,CornerHUD0); DrawText(l,ArrowGlance,HUDArrowX,HUDArrowY,ColorArrow,FontArrow,FontArrowSize,CornerHUD0,0,true); DrawText(l,u,HUDsupX,HUDsupY,ColorSupStrong,FontHUDprice,FontHUDPriceSize,CornerHUD0); DrawText(l,d,HUDdemX,HUDdemY,ColorDemStrong,FontHUDprice,FontHUDPriceSize,CornerHUD0); l = "a"; DrawText(l,s,HUDtfsX,HUDtfsY,ColorShadow,FontHUD,FontHUDsize,CornerHUD0); DrawText(l,ArrowGlance,HUDarrowsX,HUDarrowsY,ColorShadow,FontArrow,FontArrowSize,CornerHUD0,0,true); DrawText(l,u,HUDsupsX,HUDsupsY,ColorShadow,FontHUDprice,FontHUDPriceSize,CornerHUD0); DrawText(l,d,HUDdemsX,HUDdemsY,ColorShadow,FontHUDprice,FontHUDPriceSize,CornerHUD0); } void BarTimer() // Original Code by Vasyl Gumenyak { /* int i=0,sec=0; double pc=0.0; string time="",s_end="",s; s = lhud+TAG+"btimerback"; if (ObjectFind(s) == -1) { ObjectCreate(s , OBJ_LABEL,0,0,0); ObjectSet(s, OBJPROP_XDISTANCE, HUDTimerX); ObjectSet(s, OBJPROP_YDISTANCE, HUDTimerY); ObjectSet(s, OBJPROP_CORNER, CornerHUD0); ObjectSet(s, OBJPROP_ANGLE, rotation); ObjectSetText(s, s_base, SizeTimerFont, TimerFont, ColorTimerBack); } /* sec=TimeCurrent()-iTime(pair,tf,0); i=(lenbase-1)*sec/(tf*60); pc=100-(100.0*sec/(tf*60)); if(i>lenbase-1) i=lenbase-1; if(i 3) {CornerHUD0=0;} if(CornerHUD0 == 0 || CornerHUD0 == 2) rotation = 90; switch(CornerHUD0){ case 0 : HUDTFX = PosX-HUDx+10; HUDTFY = PosY+18; HUDArrowX = PosX-2; HUDArrowY = PosY+7; HUDsupX = PosX; HUDsupY = PosY; HUDdemX = PosX; HUDdemY = PosY+56; HUDTimerX = PosX+50; HUDTimerY = PosY+72; HUDtfsX = HUDTFX+1; HUDtfsY = HUDTFY+1; HUDarrowsX = HUDArrowX+1; HUDarrowsY = HUDArrowY+1; HUDsupsX = HUDsupX+1; HUDsupsY = HUDsupY+1; HUDdemsX = HUDdemX+1; HUDdemsY = HUDdemY+1; break; case 1 : HUDTFX = PosX+HUDx; HUDTFY = PosY+18; HUDArrowX = PosX+2; HUDArrowY = PosY+7; HUDsupX = PosX; HUDsupY = PosY; HUDdemX = PosX; HUDdemY = PosY+56; HUDTimerX = PosX-15; HUDTimerY = PosY+71; HUDtfsX = HUDTFX-1; HUDtfsY = HUDTFY+1; HUDarrowsX = HUDArrowX-1; HUDarrowsY = HUDArrowY+1; HUDsupsX = HUDsupX-1; HUDsupsY = HUDsupY+1; HUDdemsX = HUDdemX-1; HUDdemsY = HUDdemY+1; break; case 2 : HUDTFX = PosX-HUDx; HUDTFY = PosY+20; HUDArrowX = PosX-2; HUDArrowY = PosY+7; HUDsupX = PosX; HUDsupY = PosY+56; HUDdemX = PosX; HUDdemY = PosY; HUDTimerX = PosX+62; HUDTimerY = PosY+3; HUDtfsX = HUDTFX+1; HUDtfsY = HUDTFY-1; HUDarrowsX = HUDArrowX+1; HUDarrowsY = HUDArrowY-1; HUDsupsX = HUDsupX+1; HUDsupsY = HUDsupY-1; HUDdemsX = HUDdemX+1; HUDdemsY = HUDdemY-1; break; case 3 : HUDTFX = PosX+HUDx; HUDTFY = PosY+20; HUDArrowX = PosX+2; HUDArrowY = PosY+7; HUDsupX = PosX; HUDsupY = PosY+56; HUDdemX = PosX; HUDdemY = PosY; HUDTimerX = PosX-2; HUDTimerY = PosY+3; HUDtfsX = HUDTFX-1; HUDtfsY = HUDTFY-1; HUDarrowsX = HUDArrowX-1; HUDarrowsY = HUDArrowY-1; HUDsupsX = HUDsupX-1; HUDsupsY = HUDsupY-1; HUDdemsX = HUDdemX-1; HUDdemsY = HUDdemY-1; break; } } void DoLogo(){ /* string s7 = CharToStr(0x61+27)+"II_Logo"; if( ObjectFind(s7+"ZZ"+0) >= 0 && ObjectFind(s7+"ZZ"+1) >= 0 && ObjectFind(s7+"ZZ"+2) >= 0 && ObjectFind(s7+"AZ"+0) >= 0 && ObjectFind(s7+"AZ"+1) >= 0 && ObjectFind(s7+"AZ"+2) >= 0 ) return; string str[3] = {".","."}; int Size[3] = {0,0,0}; int PositionX[3] = {0,0,0}; int PositionY[3] = {0,0,0}; int PosXs[3] = {0,0,0}; int PosYs[3] = {0,0,0}; for(int i=0;i<3;i++){ string n = s7+"ZZ"+i; ObjectDelete(n); ObjectCreate(n,OBJ_LABEL,0,0,0); ObjectSetText(n,str[i],Size[i],"Pieces Of Eight",AliceBlue); ObjectSet(n,OBJPROP_XDISTANCE,PositionX[i]); ObjectSet(n,OBJPROP_YDISTANCE,PositionY[i]); ObjectSet(n,OBJPROP_CORNER,3); n = s7+"AZ"+i; ObjectDelete(n); ObjectCreate(n,OBJ_LABEL,0,0,0); ObjectSetText(n,str[i],Size[i],"Pieces Of Eight",Black); ObjectSet(n,OBJPROP_XDISTANCE,PosXs[i]); ObjectSet(n,OBJPROP_YDISTANCE,PosYs[i]); ObjectSet(n,OBJPROP_CORNER,3);*/ // } } void setVisibility() { int per = Period(); visible=0; if(SameTFVis){ if(TimeFrame == per || TimeFrame == 0){ switch(per){ case PERIOD_M1: visible= 0x0001 ; break; case PERIOD_M5: visible= 0x0002 ; break; case PERIOD_M15: visible= 0x0004 ; break; case PERIOD_M30: visible= 0x0008 ; break; case PERIOD_H1: visible= 0x0010 ; break; case PERIOD_H4: visible= 0x0020 ; break; case PERIOD_D1: visible= 0x0040 ; break; case PERIOD_W1: visible= 0x0080 ; break; case PERIOD_MN1: visible= 0x0100 ; } } } else { if(ShowOnM1) visible += 0x0001; if(ShowOnM5) visible += 0x0002; if(ShowOnM15) visible += 0x0004; if(ShowOnM30) visible += 0x0008; if(ShowOnH1) visible += 0x0010; if(ShowOnH4) visible += 0x0020; if(ShowOnD1) visible += 0x0040; if(ShowOnW1) visible += 0x0080; if(ShowOnMN) visible += 0x0100; } }