Full Gann Square indicator Code |
Post Reply |
Author | |
cmacdon
BullCharts Guru Joined: 09 Sep 2012 Location: Brisbane Posts: 236 |
Post Options
Quote Reply
Topic: Full Gann Square indicator Code Posted: 12 Oct 2014 at 2:47pm |
{At this point I will include the Full indicator Bullscript code so you can play around with it, if you so wish.
If you have come straight to this particular post, the explanation for most of this Bullscript code and using the indicator and how it might be applied daily or intraday is set out in earlier posts so you will not need to ask too many questions. I will post a Murrey Math Type Version, and also an indicator I developed from Ivan Sargent's approach to identifying historical cycles sometime next week as they both methods may be complimentary to finding the proper vibration for a stock. I will keep them separate indicators as the one below is a fairly large for a Bullscript indicator in its own right} [author=Dr Charles MacDonald] [citation="Bullcharts Forum, Gann subset and Bullscript discussions "] [Target=Price;] TDate:=InputDate("Date of trend", date(2014,3,24)); HD:=BarsSince(OnOrSkipped(TDate)); tme:=input("1=daily,6=hourly,24=15mins 36=10, 72=5, 180=2 minutes", 1, 1, 180); z1:=If(HD,1,0); DwnswingCount:=If (z1,+prev(z1),0); DwnSwing:=barssince(z1=0); {Bot:=input("Input the Low on start day", 35.25, .001, 10000);} Bot:=valuewhen(1,HD=1,L); pdinp:=input("Average Day to calc gradient", 100, 1, 72000); {tme added for intraday conversion} pd:=pdinp; Type:=Input("1 Hist Stats,2 $change per bar,3 Angle Label ",2,0); Type2:=Input("Colour bars 1 Zig Swings ,2 Vibrations ",1,0); VT:=Input("Vibration colour bar Testing Lookback period ",2,0); a:= input("Historical Gradient Vib => 1 X 1", 0.079, 0.00001, 10000); a3:= input("High Vib", 0.079, 0.00001, 10000); a4:= input("Low Vib", 0.079, 0.00001, 10000); a2:= Input("Show other Forecast Gradients",1,0); SA:= Input("Show other Angles",1,0); {---Conversion needed if applying daily angles on an intraday chart---} b:= a/tme; b1:= a3/tme; b2:= a4/tme; {--------This adds single text calc of the daily spread as a %-------} Gradient := b; [Visible=True] {------------Collect some statistics to help do the Gann Square and Angle projections--------} {---We will test Vibrations 2 ways using Merril Filtered Waves and a colour bar by bar test of the adopted vibration---} Vib:=input("Main Vibration", 8, .001, 100); z:=Zig(If(Outside() AND Ref(H,-1)>Ref(H,-2),H,If(Outside() AND Ref(L,-1)<Ref(L,-2),L,If((Outside() OR Inside()) AND C>O,H,If((Outside() OR Inside()) AND O>C,L,If(H>Ref(H,-1),H,If(L<Ref(L,-1),L,If(Ref(H,-1)>Ref(H,-2),H,If(Ref(L,-1)<Ref(L,-2),L,C)))))))),Vib,%); ispeak := z>hist(z,1) and z>future(z,1); istrough := z<hist(z,1) and z<future(z,1); [Nmae=Vib; linestyle=Solid; color=Red] if(Dwnswing <=pd+1,Z,undefined); UPSwing:=barssince(istrough>0); DownSwing:=barssince(ispeak>0); {These are calculation mechanics needed to produced various Time and Volume outputs} UpZig:=Z>ref(z,-1); DownZig:=Z<ref(z,-1); {------------Minor wave vibration test--------} Vib2:=input("Alternative Filtered Wave Vibration test", 4, .001, 100); z2:=Zig(If(Outside() AND Ref(H,-1)>Ref(H,-2),H,If(Outside() AND Ref(L,-1)<Ref(L,-2),L,If((Outside() OR Inside()) AND C>O,H,If((Outside() OR Inside()) AND O>C,L,If(H>Ref(H,-1),H,If(L<Ref(L,-1),L,If(Ref(H,-1)>Ref(H,-2),H,If(Ref(L,-1)<Ref(L,-2),L,C)))))))),Vib2,%); ispeak2 := z2>hist(z2,1) and z2>future(z2,1); istrough2 := z2<hist(z2,1) and z2<future(z2,1); [linestyle=Solid; width=2; color=Blue] Z2; [color=Blue] [name=Peak High; linestyle=Text; textalign=Above,Center; color=Blue] if(isPeak2, " " + z2, undefined); High*1.02; [name=Trough Low; linestyle=Text; textalign=Below,Center;color=Blue] if(isTrough2, "" + z2, undefined); Low*0.98; { Fill } [name=Vibrations Fill; linestyle=fill] [color=Lime Green ] z; [color=Deep Violet] Z2; {------ Historical Statistics--------} [Name=Swing Count; linestyle=Text; fontsize=8; textalign=Above,Right; color=Blue] if(Type=1 AND isPeak, "n=" + Round((Upswing),0),undefined); High*1.01; [Name=Swing Count; linestyle=Text; textalign=Below,Right;color=Blue] if(Type=1 AND isTrough, "n=" + Round((Downswing),0),undefined); Low*0.99; [Name=PerDay; linestyle=Text; textalign=Above,Left; color=Blue] if(Type=1 AND isPeak, "P/day= " + Round((z-valuewhen(1,istrough,L))/Upswing,3), undefined); High*1.01; [Name=PerDay; linestyle=Text; textalign=Below,Left;color=Blue] if(Type=1 AND isTrough, "P/day= " + Round((z-valuewhen(1,ispeak,H))/Downswing,3), undefined); Low*0.99; {------% for minor swing within move and move %--------} [Name=Percent of SwingU; linestyle=Text; fontsize=8; textalign=Above,Center; color=Black] if(Upswing <=pd+1 AND Type=1 AND isPeak, "%Sw " + Round((z-valuewhen(1,istrough>0,z))/valuewhen(1,istrough>0,z)*100,1), undefined); High; [Name=Percent of SwingD; linestyle=Text; textalign=Below,Center;] if(Downswing <=pd+1 AND Type=1 AND isTrough, "%Sw "+Round(-(z-valuewhen(1,ispeak>0,z))/{valuewhen(1,ispeak>0,z)}z*100,1)+"%", undefined); Low; {--------This section takes up price colour bars vibration confirmation test--------} [linestyle=PriceColor;] {--------colour bars per Zig Swing--------} [Color=Blue;] [name=Upswing barsl; Color= Blue;] ub:=If(Type2=1 and UpZig,1,0); ub; [name=DownswingBars; Color=Red;] db:=If(Type2=1 and DownZig,1,0); db; {--------colour bars per Vibrations--------} [name=Upswing barsl; Color= Blue;] ub2:=If(Type2=2 and (Typ()-Hist(Typ(),vt))>=vt*b,1,0); ub2; [name=DownswingBars; Color=Red;] db2:=If(Type2=2 and(Typ()-Hist(Typ(),vt))<=-vt*b,1,0); db2; [color=Lime] true; {--------Some peripheral calculations need later on--------} {Count since start of Move} MoveSwing:=barssince(HD=0); {Trigonometry variables to calc angles Have to apply arcSin (Days/Hypothenuse to get angles as ARCTan function does not work properly so this is more convoluted formula} {Adjacent} Days:=(DwnSwing-1); {Opposite} Price:=Z-Bot; {Hypothenuse} {if not scaled to begin with Hyp:=Sqrt(Days * Days + Price * Price);} {When Properly chart scaled first time} Hyp:=Sqrt((DwnSwing-1) * (DwnSwing-1) + Price * Price); angle:=ASIN(Price/Hyp); {----------------------Now Project the Top and Bottom for a Basic Square--------------------------} [name=O/8; linestyle=Horzline; Width=2; color=Black; visible=yes] bottom:=If ({HD and }Dwnswing <=pd+1,Bot,undefined); bottom; [linestyle=Text; fontsize=6; textalign=Below,center;color=Black;] if(barssince(Z1=0)and Dwnswing <=pd+1, int(Dwnswing-1) + " ", undefined); bottom; [name=8/8; linestyle=Horzline; Width=2; color=Black; visible=yes] Top:=If (HD and Dwnswing <=pd+1,(Bot-b) +(pd+1)*b,undefined); Top; {------add Gann Percentage levels within the square----------------------} [name=1/8; linestyle=Horzline; Width=1; color=Orange; visible=yes] oneeight:=If(HD and Dwnswing <=pd+1,Bottom + (Top-Bottom)*1/8,undefined); oneeight; [name=2/8;color=Black;Width=2;]; twoeight:=If(HD and Dwnswing <=pd+1, Bottom + (Top-Bottom)*2/8,undefined); twoeight; [name=3/8; Width=1; color=Sea Green]; threeeight:=If(HD and Dwnswing <=pd+1, Bottom + (Top-Bottom)*3/8,undefined); threeeight; [name=4/8;color=Black;Width=2;]; foureight:=If(HD and Dwnswing <=pd+1, Bottom + (Top-Bottom)*4/8,undefined); foureight; [name=5/8; Width=1; color=Sea Green]; fiveeight:=If(HD and Dwnswing <=pd+1, Bottom + (Top-Bottom)*5/8,undefined); fiveeight; [name=6/8; color=Black;Width=2;]; sixeight:=If(HD and Dwnswing <=pd+1, Bottom + (Top-Bottom)*6/8,undefined); sixeight; [name=7/8; Width=1; color=Orange;] seveneight:=If(HD and Dwnswing <=pd+1, Bottom + (Top-Bottom)*7/8,undefined); seveneight; [name=8/8; color=Black;Width=2;]; eighteight:=If(HD and Dwnswing <=pd+1,Top,undefined); eighteight; [name=8/8; Width=1; color=Blue;] onethird:=If(HD and Dwnswing <=pd+1, Bottom + (Top-Bottom)*1/3,undefined); onethird; Twothird:=If(HD and Dwnswing <=pd+1, Bottom + (Top-Bottom)*2/3,undefined); Twothird; {------Project the Angles on first Square and a second Square-------} {---Start Angles from Low point chosen as Starting point by dragging indicator start line---} [Width=1;] expr1:= if(HD and Dwnswing <=(pd+1),Bot-b,undefined); expr2:= if(HD and Dwnswing <=((pd+1)/2)+1,Bot-2*b,undefined); expr4:= if(HD and Dwnswing <=((pd+1)/4)+1,Bot-4*b,undefined); expra:= if(HD and Dwnswing <=(2*pd+1),Bot-b/2,undefined); exprc:= if(HD and Dwnswing <=(2*pd+1),Bot-b/4,undefined); {This is effectively scaled 1 X 1 Angle} base1:= if(expr1=Bot-b, prev(expr1)+(b),undefined); {-----------------Other angles realtive to the Adopted 1 X 1 (or the Base Gradient)---------------} base2:= if(a2 AND expr2=Bot-2*b, prev(expr2)+(b*2),undefined); base4:= if(a2 AND expr4=Bot-4*b, prev(expr4)+(b*4),undefined); basea:= if(a2 AND expra=Bot-b/2, prev(expra)+(b/2),undefined); basec:= if(a2 AND exprc=Bot-b/4, prev(exprc)+(b/4),undefined) {-----------------Draw the angles in first Square---------------} [linestyle=Dash; width=1; name=Scaled 1 X 1; Color=Black;] base1; [name=Scaled Base 2 X 1; color=Blue;] base2; [name=Scaled Base 4 X 1; color=Red;] base4; [name=Scaled Base 1 X 2; width=1; color=orange;] basea; [name=Scaled Base 1 X 4; color=orange;] basec; {---- Now add Down Angles---} expr1d:= if(HD and Dwnswing <=pd+1,Top+b,undefined); exprad:= if(HD and Dwnswing <=(2*pd+1),Top+(b/2),undefined); exprbd:= if(HD and Dwnswing <=((pd+1)/2)+1,Top+b*2,undefined); [linestyle=Solid; width=1; name=1 X 1; Color=Black;] base1d:= if( expr1d=Top+b, prev(expr1d)-(b),undefined); base1d; [linestyle=dash; width=1;] [ name=1 X 2; Color=Royal Blue;] basead:= if( exprad=Top+(b/2), prev(exprad)-(b/2),undefined); basead; [ name=1 X 4; Color=Red; width=1;] basebd:= if( exprbd=Top+b*2, prev(exprbd)-(b*2),undefined); basebd; [Visible=True] {gradients on second squares} expr41:= if(HD and Dwnswing >=pd+1 AND Dwnswing <=2*pd+1 ,Bot-b,undefined); expr4a:= if(HD and Dwnswing >=pd+1 AND Dwnswing <=2*pd+1 ,Bot-b/2,undefined); expr4b:= if(HD and Dwnswing >=pd+1 AND Dwnswing <=3*((pd+1)/2),Bot-b*2,undefined); [linestyle=Dash; width=1; name=1 X 1; Color=Black;] base41:= if(SA=1 AND expr41=Bot-b, prev(expr41)+(b),undefined); base41; [name=1 X 2; Color=Royal Blue;] base4a:= if(SA=1 AND expr4a=Bot-b/2, prev(expr4a)+(b/2),undefined); base4a; [name=2 X 1; Color=Red;] base4b:= if(SA=1 AND expr4b=Bot-b*2, prev(expr4b)+(b*2),undefined); base4b; {Down angle to complete first square from mid point} expr6b:= if(HD and Dwnswing >=(pd+1)/2 AND Dwnswing <=(pd+1),Bot-b*2,undefined); [name=3 X 1; Color=Red;] base6b:= if(SA=1 AND expr6b=Bot-b*2, prev(expr6b)+(b*2),undefined); base6b; {Down angle to complete second square from mid point} expr8b:= if(HD and Dwnswing >=(pd)*(3/2)+1 AND Dwnswing <=(pd*2)+1,Bot-b*2,undefined); [name=3 X 1; Color=Red;] base8b:= if(SA=1 AND expr8b=Bot-b*2, prev(expr8b)+(b*2),undefined); base8b; {These are up angles} expr5:=if(HD and Dwnswing >=pd+1 AND Dwnswing <=2*pd+1,(Bot-(pd*-gradient))+b,undefined); expr5a:=if(HD and Dwnswing >=pd+1 AND Dwnswing <=2*pd+1,(Bot-(pd*-gradient))+b/2,undefined); expr5b:=if(HD and Dwnswing >=pd+1 AND Dwnswing <=3*((pd+1)/2),(Bot-(pd*-gradient))+b*2,undefined); [name=1 X 1; Color=Black;] base5:=if(SA=1 AND expr5=(Bot-(pd*-gradient))+b, prev(expr5)-(b),undefined); base5; [name=1 X 2; Color=Royal Blue;] base5a:=if(SA=1 AND expr5a=(Bot-(pd*-gradient))+b/2, prev(expr5a)-(b/2),undefined); base5a; [name=2 X 1; Color=Red;] base5b:=if(SA=1 AND expr5b=(Bot-(pd*-gradient))+b*2, prev(expr5b)-(b*2),undefined); base5b; {Up angle to complete first square from mid point} expr7b:=if(HD and Dwnswing >=(pd+1)/2 AND Dwnswing <=(pd+1),(Bot-(pd*-gradient))+b*2,undefined); [name=3 X 1; Color=Red;] base7b:=if(SA=1 AND expr7b=(Bot-(pd*-gradient))+b*2, prev(expr7b)-(b*2),undefined); base7b; {Up angle to complete second square from mid point} expr9b:=if(HD and Dwnswing >=(pd)*(3/2)+1 AND Dwnswing <=(pd*2)+1,(Bot-(pd*-gradient))+b*2,undefined); [ name=3 X 1; Color=Red;] base9b:= if(SA=1 AND expr9b=(Bot-(pd*-gradient))+b*2, prev(expr9b)-(b*2),undefined); base9b; {---------------Quarter Circle Formula for Gann or Michael Jenkin's Approach -------} x:=barssince(HD); y:=(Top-Bot)/tme; circ4:= if(HD and Dwnswing<=(pd+1),sqrt(((pd)^2)-((Dwnswing-1)^2)),undefined); [name=Quarter Circle; linestyle=Solid; width=3; Color=blue;] If ((circ4+bot)>=Bot,(circ4*b)+bot,undefined); circ5:= if(HD and Dwnswing<=(pd+1),sqrt((((pd)*4/8)^2)-((Dwnswing-1)^2)),undefined); [name=Quarter Circle; linestyle=Solid; width=3; Color=blue;] If ((circ5+bot)>=Bot,(circ5*b)+bot,undefined); circ6:= if(HD and Dwnswing<=(pd+1),sqrt(((pd*6/8)^2)-((Dwnswing-1)^2)),undefined); [name=Quarter Circle; linestyle=Solid; width=2; Color=Red;] circ6a:=If ((circ6+bot)>=Bot,(circ6*b)+bot,undefined); circ6a; circ7:= if(HD and Dwnswing<=(pd+1),sqrt(((pd*2/8)^2)-((Dwnswing-1)^2)),undefined); [name=Quarter Circle; linestyle=Solid; width=2; Color=Red;] If ((circ7+bot)>=Bot,(circ7*b)+bot,undefined); {---------------Set up high and Low Vibration range-------} exprh:= if(HD and Dwnswing <=(pd+1),Bot-b1,undefined); {This is effectively scaled 1 X 1 Angle} baseh:= if(exprh=Bot-b1, prev(exprh)+(b1),undefined); [linestyle=Dash; width=1; name=High Vibration; Color=Black;] baseh; exprl:= if(HD and Dwnswing <=(pd+1),Bot-b2,undefined); {This is effectively scaled 1 X 1 Angle} basel:= if(exprl=Bot-b2, prev(exprl)+(b2),undefined); [linestyle=Dash; width=1; name=High Vibration; Color=Black;] basel; [name=Fill; linestyle=fill;] [color=Lime; ] Baseh;Base1; [color=Red; ] Base1; Basel; {Relative Angle to 1X1} Relang:=Price/(Base1-Bot); {Actual Gradient line Angle to 1X1} Relang2:=(Base1-Bot)/(Base1-Bot); {Draw verticle Line as time elapses within the Square} [name=Start line; Linestyle=Fill Bars; Width=2; color=Black;] if(HD and Dwnswing=1,Top,undefined); if(HD and Dwnswing=1,Bot,undefined); [name=Quarter Time;] If (Dwnswing= round(((pd)/4)+1,0),Top,undefined); If (Dwnswing= round(((pd)/4)+1,0),Bot,undefined); [name=Half Time;] If (Dwnswing= round(((pd)/2)+1,0),Top,undefined); If (Dwnswing= round(((pd)/2)+1,0),Bot,undefined); [name=Three Quarter Time;] If (Dwnswing= round(((pd)*3/4),0)+1,Top,undefined); If (Dwnswing= round(((pd)*3/4),0)+1,Bot,undefined); [name=Price and time sb Square;] If (Dwnswing= round(((pd)),0)+1,Top,undefined); If (Dwnswing= round(((pd)),0)+1,Bot,undefined); Tp1:=If (Dwnswing= round(((pd)/4)+1,0),1,undefined); Tp2:=If (Dwnswing= round(((pd)/2)+1,0),1,undefined); Tp3:=If (Dwnswing= round(((pd)*3/4),0)+1,1,undefined); Tp4:=If (Dwnswing= round(((pd)),0)+1,1,undefined); {--------------Statistics to use to apply Gann's basis of my Forecasting Method------------------} [Visible=False] {Price change per day per swing} [Name=WD Fcst; linestyle=Text; fontsize=8; textalign=Above,Right; color=Blue] if(Downswing <=pd+1 AND Type=2 AND isPeak,"WDSw " + Round((z-valuewhen(1,istrough>0,z)){-valuewhen(1,istrough>0,z)}/Upswing,2), undefined); High*1.01; [Name=WD Fcst; linestyle=Text; textalign=Below,Right; color=Blue] if(Downswing <=pd+1 AND Type=2 AND istrough,"WDSw " + Round((z-valuewhen(1,ispeak>0,z)){-valuewhen(1,istrough>0,z)}/DownSwing,2), undefined); Low*.99; [Visible=True] {Price change per day since start} pcpb:=Round(((Z-Bot)/(Moveswing-1)),3); [Name=WDFcstMve; linestyle=Text; textalign=Above,center; color=Black] if(Dwnswing <=pd+1 AND Type=2 AND isPeak,"WD " + pcpb, undefined); High*1.01; [Name=WDFcstMve; linestyle=Text; textalign=Below,center;color=Black] if(Dwnswing <=pd+1 AND Type=2 AND isTrough,"WD " + pcpb, undefined); Low*.99; {--------------Traditional Gann Angle Nomenclature applied to adopted scale or gradient-----------------} [Name=AngleU; linestyle=Text; fontstyle=Bold; textalign=Above,Center; color=Black] if(HD AND Dwnswing <=pd+1 AND Type=3 AND isPeak,Round(Relang,2)+" X 1", undefined); High*1.01; [Name=AngleD; linestyle=Text; textalign=Below,Center;color=Black] if(HD AND Dwnswing <=pd+1 AND Type=3 AND isTrough, "1 X " + Round(1/Relang,2) , undefined); Low*.99; {------------This part displays the gradient in cents per bar-------------} [linestyle=Text; fontsize=8; fontstyle=Bold; textalign=Above,Left; color=Black;] if(Type=2 AND Tp1, "Grad= "+ Round(Gradient,4) , undefined); base1; if(Type=2 AND Tp2, "Grad= "+ Round(Gradient,4) , undefined); base1; if(Type=2 AND Tp3, "Grad= "+ Round(Gradient,4) , undefined); base1; if(Type=2 AND Tp4, "Grad= "+ Round(Gradient,4) , undefined); base1; if(Type=2 AND Tp1, "Grad=" +Round(Gradient,4)*4, undefined) ; Top; if(Type=2 AND Tp2, "Grad=" +Round(Gradient,4)*2, undefined) ; Top; if(Type=2 AND Tp4, "Grad=" +Round(Gradient/2,4), undefined) ; Foureight; if(Type=2 AND Tp4, "Grad=" +Round(Gradient/4,4), undefined) ; TwoEight; if(Type=3 AND Tp1, "1 X " + Round(Relang2,0), undefined); base1; if(Type=3 AND Tp2, "1 X " + Round(Relang2,0), undefined); base1; if(Type=3 AND Tp3, "1 X " + Round(Relang2,0), undefined); base1; if(Type=3 AND Tp4, "1 X " + Round(Relang2,0), undefined); base1; if(Type=3 AND Tp1, Round(Relang2,0), undefined) + " X 1" ; Top; if(Type=3 AND Tp1, Round(Relang2,0)*4, undefined) + " X 1" ; Top; if(Type=3 AND Tp2, Round(Relang2,0)*2, undefined) + " X 1" ; Top; if(Type=3 AND Tp4, "1 X " +Round(Relang2*2,0), undefined) ; Foureight; if(Type=3 AND Tp4, "1 X " +Round(Relang2*4,0), undefined) ; TwoEight; {---Add Gann text applied to 1/8 and 1/3 Percentages Grid levels---} [linestyle=Text; textalign=Above,Left; color=Blue;] if(HD and Dwnswing <=1 and Bottom, Round(Bottom,2) + " )% ", undefined);Bottom; [linestyle=Text; textalign=Above,Left; color=Orange;] if(HD and Dwnswing <=1 and oneeight, Round(oneeight,2) + " 12.5% ", undefined);oneeight; [linestyle=Text; textalign=Above,Left; color=Magenta; ] if(HD and Dwnswing <=1 and twoeight, Round(twoeight,2) + " 25% ", undefined);twoeight; [linestyle=Text; textalign=Above,Left; color=Black; ] if(HD and Dwnswing <=1 and threeeight, Round(threeeight,2) + " 33.3% ",undefined);onethird; [linestyle=Text; textalign=Above,Left; color=Sea Green; ] if(HD and Dwnswing <=1 and threeeight, Round(threeeight,2) + " 37.5% ",undefined);threeeight; [linestyle=Text; textalign=Above,Left; color=Blue; ] if(HD and Dwnswing <=1 and foureight, Round(foureight,2) + " 50% ",undefined); foureight; [linestyle=Text; textalign=Above,Left; color=Sea Green; ] if(HD and Dwnswing <=1 and fiveeight, Round(fiveeight,2) + " 62.5% ", undefined);fiveeight; [linestyle=Text; textalign=Above,Left; color=Black; ] if(HD and Dwnswing <=1 and threeeight, Round(threeeight,2) + " 66.6% ",undefined);twothird; [linestyle=Text; textalign=Above,Left; color=Magenta; ] if(HD and Dwnswing <=1 and sixeight, Round(sixeight,2) + " 75% ", undefined);sixeight; [linestyle=Text; textalign=Above,Left; color=Orange; ] if(HD and Dwnswing <=1 and seveneight, Round(seveneight,2) + " 87.5% ",undefined);seveneight; [linestyle=Text; textalign=Above,Left; color=Blue; ] if(HD and Dwnswing <=1 and eighteight, Round(eighteight,2) + " 100% ",undefined);eighteight; Edited by cmacdon - 12 Oct 2014 at 2:58pm |
|
BC User since June 2007
|
|
Post Reply |
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |