Hi Visshvesh This is a Google doc for an ANZ chart - sometimes a picture helps! I am still working on an annotation above and below each swing with the range of the swing and the bars in it.
http://docs.google.com/leaf?id=0By34fw59bL30MmQxNmE4MGEtMjk0YS00NGJjLWI2\ ZDgtNTEwOGFlZWRlMTMz&hl=en I like to trade swings in price and I read the Gann chart to clearly see if there is a higher swing bottom when I want to go long or when a lower swing top tells me to exit as there is a strong possibility of a change of the main trend. This is a simple gann chart - it would be great to have a param so that a 3 day or 5 day chart could be seen. Also point swing charts are very good - the chart will not swing until the a certain number of points is exceeded for instance (much like range bars) . However I have no idea how to code such a thing - maybe one day:) Cheers Raine --- In [email protected], Vishvesh <vishvesh.chau...@...> wrote: > > Hi, > > I really liked the code, but based on ur experience can you explain me how > do u read this swing charts? > > Thanks & Regards > Vishvesh > > On Wed, May 12, 2010 at 2:26 AM, possum51au raine.temp...@... wrote: > > > > > > > Hi > > I am a fan of Gann swing charts and use the formulas kindly provided by > > Thomasz in 2001. > > I have 2 questions for anyone able to help. > > 1. How can I change this formula so that it overlays a bar chart > > > > 2. I wonder if it is possible to code AFL to show (above and below each > > swing) the Date, price, range above and below each swing and number of > > bars/days ? > > > > | | > > | | > > |__| > > 1 May > > 1.16 > > R .30 > > 5 d > > > > I'd be grateful for any suggestions/help on this > > Thanks > > Raine > > > > This is the formula I use now. > > _SECTION_BEGIN("Gann 1 bar Swing new "); > > /* Gann Swing chart v4 */ > > /* Last modified 24 Feb 2001 */ > > /* AFL implementation by */ > > /* (C)2001 Tomasz Janeczko */ > > /* one and two - bar reversal version */ > > > > /* Change this to 1 for two-bar mode */ > > twobarmode = 0; > > > > outsidebar = Outside(); > > insidebar = H <= Ref( H, -1 ) AND L >= Ref( L, -1 ); // built-in inside() > > works with < > instead of <= >= > > > > upbar = H > Ref( H, -1 ) AND L >= Ref( L, -1 ); > > downbar = L < Ref( L, -1 ) AND H <= Ref( H, -1 ); > > > > upbar2 = upbar OR ( outsidebar AND Ref( downbar, 1 ) ) ; > > downbar2 = downbar OR ( outsidebar AND Ref( upbar, 1 ) ); > > > > Poi = outsidebar AND Ref( insidebar, 1 ); > > Poo = outsidebar AND Ref( outsidebar, 1 ); > > Pooi = Poo AND Ref( insidebar, 2 ); > > Poio = Poi AND Ref( outsidebar, 2 ); > > Poii = Poi AND Ref( insidebar, 2 ); > > Pooo = Poo AND Ref( outsidebar, 2 ); > > Poooi = Pooo AND Ref( insidebar, 3 ); > > Pooio = Pooi AND Ref( outsidebar, 3 ); > > Poioo = Poio AND Ref( outsidebar, 3 ); > > > > upbar3 = upbar2 OR ( Poi AND Ref( downbar, 2 ) ); > > downbar3 = downbar2 OR ( Poi AND Ref( upbar, 2 ) ); > > > > upbar4 = upbar3 OR ( Poo AND Ref( upbar, 2 ) ); > > downbar4 = downbar3 OR ( Poo AND Ref( downbar, 2 ) ); > > > > upbar5 = upbar4 OR ( Pooi AND Ref( upbar, 3 ) ); > > downbar5 = downbar4 OR ( Pooi AND Ref( downbar, 3 ) ); > > > > upbar6 = upbar5 OR ( Poio AND Ref( upbar, 3 ) ); > > downbar6 = downbar5 OR ( Poio AND Ref( downbar, 3 ) ); > > > > upbar7 = upbar6 OR ( Poii AND Ref( downbar, 3 ) ); > > downbar7 = downbar6 OR ( Poii AND Ref( upbar, 3 ) ); > > > > upbar8 = upbar7 OR ( Pooo AND Ref( downbar, 3 ) ); > > downbar8 = downbar7 OR ( Pooo AND Ref( upbar, 3 ) ); > > > > upbar9 = upbar8 OR ( Poooi AND Ref( downbar, 4 ) ); > > downbar9 = downbar8 OR (Poooi AND Ref( upbar, 4 ) ); > > > > upbar10 = upbar9 OR ( Pooio AND Ref( downbar, 4 ) ); > > downbar10 = downbar9 OR ( Pooio AND Ref( upbar, 4 ) ); > > > > upbar11 = upbar10 OR ( Poioo AND Ref( downbar, 4 ) ); > > downbar11 = downbar10 OR ( Poioo AND Ref( upbar, 4 ) ); > > > > fupbar = upbar11; > > fdownbar = downbar11; > > > > // Two-bar mode handling > > fupbar = IIf( twobarmode, fupbar AND Ref( fupbar, 1 ), fupbar ); > > fdownbar = IIf( twobarmode, fdownbar AND Ref( fdownbar, 1 ), fdownbar ); > > > > /* Barcount since most recent up and down swings */ > > Us = BarsSince( fupbar ); > > Ds = BarsSince( fdownbar ) ; > > > > Sd1 =IIf( Us==0, 1, IIf( Ds==0, -1, 0) ); > > > > Sd2 = IIf( Sd1 == 1, IIf( Ref( BarsSince(Sd1==1), -1) > Ref( BarsSince( Sd1 > > == -1), -1), 1, 0), > > IIf( Sd1 == -1, IIf( Ref( BarsSince(Sd1==1),-1) < Ref( BarsSince( Sd1 == > > -1),-1), -1, 0), 0 ) ); > > > > g0 = ValueWhen( Sd2, Sd2 ); /* sample and hold non-zero values */ > > > > /* shift back one bar, add one dummy swing at the end and shift forward */ > > /* to ensure proper handling of the last swing */ > > lastbar = Cum(1) == LastValue( Cum(1) ); > > swinglevel = IIf( g0 == -1, HighestSince( Sd2 == 1, H ), LowestSince( Sd2 > > == -1, L ) ); > > swinglevel = IIf( lastbar, IIf( g0 == -1, LowestSince( Sd2 == -1, L ), > > HighestSince( Sd2 == 1, H )), Ref( swinglevel, 1 ) ); > > > > /* Gann Swing chart drawn here */ > > Graph1 = Ref( ValueWhen( Ref( Sd2 != 0, 1 ) OR lastbar, swinglevel , 0 ), > > -1 ); > > Graph1Style = 512+1024; > > GraphXSpace = 5; > > Title = Date() + Name() + " 1 Bar Gann Swing Chart"; > > > > /* Colourized price bars drawn here */ > > /* graph0 = close; */ > > /* graph0style = 128; */ > > /* barcolor = IIF( outsidebar, 1, IIF( downbar, 4, IIF( upbar, 5, 0 ) ) ); > > */ > > /* graph0barcolor = ValueWhen( barcolor != 0, barcolor ); */ > > _SECTION_END(); > > > > _SECTION_BEGIN("Background"); > > //SetChartBkGradientFill( ParamColor("BgTop", > > colorLavender),ParamColor("BgBottom", colorCustom3)); > > SetChartBkColor(colorWhite); // color of outer border > > SetChartBkGradientFill( ColorRGB(175,175,239), colorLavender, titlebkcolor > > = colorWhite ); > > //color of inner panel > > _SECTION_END(); > > > > > > >
