[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [EquisMetaStock Group] Projecting indicator direction into the future



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
Business finance course Business finance online course Business finance class
Small business finance Business finance schools Business finance small software


YAHOO! GROUPS LINKS