MetaStock -> Tools -> Indicator Builder -> New -> Copy and paste complete formula between "---8<---" lines. ============= Boxed Ellipse ============= ---8<-------------------------- { Boxed Ellipse v1.1 } { Box: High & Low of selected period.} { Ellipse: plots within "box" boundaries.} { ©Copyright 2005 Jose Silva } { For personal use only } { http://www.metastocktools.com } { User inputs } pds1:=Input("Start periods ago",2,2600,70); pds2:=Input("End periods ago",0,2600,5); plot:=Input("plot: [1]Box, [2]Ellipse, [3]Both",1,3,3); { Remove possible errors introduced between keyboard & seat ;) } p1:=LastValue(Max(pds1,pds2)); p2:=LastValue(Min(pds1,pds2)); p1:=If(p1<(p2+2),p2+2,p1); { Define/Restrict plot period } start:=Cum(1)=LastValue(Cum(1))-p1; end:=Cum(1)=LastValue(Cum(1))-p2; restrict:=Ref(Ref(ValueWhen(1,start,1),-p2),p2); { Box } Hi:=LastValue(Highest(ValueWhen(1,restrict,H))) +restrict-1; Lo:=LastValue(Lowest(ValueWhen(1,restrict,L))) +restrict-1; top:=If(start OR end,Lo,Hi); bot:=If(start OR end,Hi,Lo); { Ellipse - with thanks to MG Ferreira } midX:=(p1-p2)/2; midY:=(Hi-Lo)/2; tX:=Cum(1)-midX-(LastValue(Cum(1))-p1); ellipse:= Sqrt(midY*midY*(1-Min(tX*tX/midX/midX,1))); upperE:=Lo+midY+ellipse; lowerE:=Hi-midY-ellipse; { Plot in price chart } If(plot=2,upperE,Hi); If(plot=2,lowerE,Lo); If(plot=2,upperE,top); If(plot=2,lowerE,bot); If(plot=1,top,upperE); If(plot=1,bot,lowerE) ---8<-------------------------- http://www.metastocktools.com