PureBytes Links
Trading Reference Links
|
Thank you Jose, this is exactly what I am looking for. I have put in another 2 parallels to form a channel. Thank you once again for your big help.
PJ Chai
On 9/2/05, Jose Silva <josesilva22@xxxxxxxxx> wrote:
Here's a concept I thought about whilst on holidays:
Forward reference (shift backwards on charts) and center a Moving
Average, then extend and project the last known MA direction into the future.
This method gets around the no-plot in null (N/A) zone limitation in MetaStock, and can apply to any indicator or oscillator on charts or
separate windows.
MetaStock -> Tools -> Indicator Builder -> New -> Copy and paste complete formula between "---8<---" lines.
============= MA - centered =============
---8<--------------------------
{ Centered Moving Average - v3.0 } { Uses forward-referencing to center Mov Avg and project future direction.} { Uses hindsight - do not trade! }
{ ©Copyright 2005 Jose Silva
For personal use only. http://www.metastocktools.com }
{ User inputs } fwPds:=Input("Forward-referencing periods (automatic = -1)",-1,2600,- 1);
proj:=Input("Project last known MA: [1]Direction, [2]Value",1,2,1); pds:=Input("Mov Avg periods",1,2600,21); type:=Input("[1]EMA [2]SMA [3]TmSr [4]Tri [5]Var [6]Vol [7]Wght",1,7, 2);
{ Choose MovAvg type: 1 - Exponential MA 2 - Simple MA 3 - Time Series MA 4 - Triangular MA 5 - Variable MA 6 - Volume adjusted MA 7 - Weighted MA } ma:= If(type=1,Mov(C,pds,E), If(type=2,Mov(C,pds,S),
If(type=3,Mov(C,pds,T), If(type=4,Mov(C,pds,TRI), If(type=5,Mov(C,pds,VAR), If(type=6,Mov(C,pds,VOL), Mov(C,pds,W)))))));
{ Automatic period-centering } center:=LastValue(If(fwPds<0,Int(pds/2),fwPds));
{ Forward-referenced MovAvg } fwd:=Ref(ma,center);
{ Last valid MovAvg plot point } lastVal:=IsUndefined(fwd) AND Alert(IsUndefined(fwd)=0,2);
{ Extend MovAvg plot into future null zone }
xtend:=LastValue(fwd+PREV-PREV);
{ Restrict invalid initial MovAvg plot } movAvg:=Ref(Ref(xtend,pds-1),-pds+1);
{ Last MA known direction & future projection } init:=Cum(IsDefined(movAvg))=1; direction:=movAvg+
( ValueWhen(1,init OR lastVal,Ref(movAvg,-1)) -ValueWhen(1,init OR lastVal,Ref(movAvg,-2))) *(BarsSince(init OR lastVal)+1);
{ Plot MovAvg on price chart } If(proj=1,direction,movAvg)
---8<--------------------------
jose '-) http://www.metastocktools.com
------------------------ Yahoo! Groups Sponsor --------------------~--> Make a difference. Find and fund world-changing projects at GlobalGiving.
http://us.click.yahoo.com/PcNrnD/PbOLAA/cosFAA/BefplB/TM --------------------------------------------------------------------~->
Yahoo! Groups Links
<*> To visit your group on the web, go to: http://groups.yahoo.com/group/equismetastock/
<*> To unsubscribe from this group, send an email to:
equismetastock-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
SPONSORED LINKS
YAHOO! GROUPS LINKS
|