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

[EquisMetaStock Group] Re: removing Null (N/A) plots the easy way



PureBytes Links

Trading Reference Links

Ok, here's the inside oil on Trader's Consortium (TC) forum:

Anyone can join the TC forum, and it's just as easy as joining this 
usergroup - and it's free.

http://tradersconsortium.com

Additionally, one can become an active supporter of Trader's Consortium, 
by contributing a small (or large) donation that goes 100% towards forum 
operating expenses, or contributing significant exclusive content.


>From TC management:

"The benefits of premium membership are:

1) access to exclusive content, support and downloads (i.e. Xtend.dll);

2) the ability to advertise trading and investing products, services and 
websites (subject to editorial approval);

and,
3) bragging rights."


I encourage one and all to join and support the only other real 
alternative to MetaStock-based support and development of ideas.  TC has a 
really bright future, by virtue of the dedication of its founder - George 
Stockman, who was part of the main driving force behind the original Equis 
forum before Equis management in their wisdom practically killed their own 
forum.

Please join TC today with a plain or premium membership, and enjoy the 
benefits and support our MetaStock community in a real tangible way.

http://tradersconsortium.com


jose '-)
http://www.metastocktools.com




--- In equismetastock@xxxxxxxxxxxxxxx, "Jose Silva" <josesilva22@xxx>
wrote:
>
>
> Barry, I'm just asking TC's management about premium membership - we
> should have an answer shortly.
>
>
> jose '-)
> http://www.metastocktools.com
>
>
>
> --- In equismetastock@xxxxxxxxxxxxxxx, "bklchu" <tatrader@> wrote:
>
> Hi Jose
> I just joined the tradersconsortium.com group, but how can we become
> premium members?
>
> many thanks for your help.
>
> Rdgs
> Barry
>
>
>
> --- In equismetastock@xxxxxxxxxxxxxxx, "Jose Silva" <josesilva22@>
> wrote:
>
> Xtend.dll is a very simple and useful tool - it is a MetaStock external
> function that extends a plot's first/last value to each edge of the
> chart.
>
> Xtend.dll is now available for download free to premium members of the
> Trader's Consortium forum.
> http://tradersconsortium.com
>
> As for any Trader's Consortium premium members that have previously
> purchased this tool from MetaStockTools.com, please contact me for
> a full refund of your US$60.
>
>
> From http://www.metastocktools.com/#metastock :
>
> =======================================================
> Null (N/A) bar removal, with and without PREV functions.
> =======================================================
>
>
> Problem:
> -------
>
> Indicators and conditions generally introduce leading and
> (sometimes) trailing Null (N/A) bars on a plot.
>
> These Null bars can stop any other generated signals being
> plotted during that Null period.
>
> For example, a 21-bar SMA will not allow any signals based
> on it to be plotted on any of the first 20 bars.
> No other related code can possibly plot within this Null zone.
>
>
>
> Example:
> -------
> (note 32/31 bar leading/trailing null zone)
>
> ---8<---------------------------------------
> { Three month centered Simple Moving Average }
> pds:=Input("SMA periods",1,2520,63);
> Ref(Mov(C,pds,S),LastValue(pds/2))
> ---8<---------------------------------------
>
>
>
> Solution 1:
> ----------
> (compare plot to above)
>
> =======================
> Null bar removal - PREV
> =======================
> ---8<---------------------------------------
>
> { Removes leading/trailing Null (N/A) bars.
>   Centered SMA example uses hindsight
>   - do not trade.
>
>  To avoid the PREVx2 processing overhead, try
>  the Xtend.dll custom DLL, available for US$60
>   through MetaStockTools.com.
>  Also available for free at
>   Trader's Consortium forum:
>   http://tradersconsortium.com
>
> ©Copyright 2003-2007 Jose Silva.
>  For personal use only:
>   no resale or repackaging allowed.
>  All code remains the property of Jose Silva.
>  http://www.metastocktools.com }
>
> { User input }
> pds:=Input("SMA periods",1,2520,63);
>
> { Centered SMA }
> indic:=Ref(Mov(C,pds,S),LastValue(pds/2));
>
> { 1st valid plot bar }
> defined:=IsDefined(indic);
> bar1:=Cum(defined)=1;
>
> { Remove leading/trailing Null bars }
> NoNull:=If(Cum(defined)>0,
>  LastValue(indic+PREV-PREV),
>  LastValue(ValueWhen(1,bar1,indic)));
>
> { Plot on chart }
> NoNull
>
> ---8<---------------------------------------
>
> The solution above introduces PREV function related problems,
> mainly a major slowdown of processing speed (not suitable for
> real-time data), and unreliability issues.
>
>
>
> Solution 2:
> ----------
> Same null-less plot as above, with the much simpler
> and more reliable Xtend.dll, and without the PREVx2
> processing overhead.
>
> ======================
> Null bar removal - DLL
> ======================
> ---8<---------------------------------------
>
> { Removes leading/trailing Null (N/A) bars.
>   Centered SMA example uses hindsight
>    - do not trade.
>
>  Xtend.dll must be in
>   ...\MetaStock\External Function DLLs\ folder.
>  Xtend.dll custom DLL, available for US$60
>   through MetaStockTools.com.
>  Also available for free at
>   Trader's Consortium forum:
>   http://tradersconsortium.com
>
> ©Copyright 2003-2007 Jose Silva.
>  For personal use only:
>   no resale or repackaging allowed.
>  All code remains the property of Jose Silva.
>  http://www.metastocktools.com }
>
> { User input }
> pds:=Input("SMA periods",1,2520,63);
>
> { Centered SMA }
> indic:=Ref(Mov(C,pds,S),LastValue(pds/2));
>
> { Plot on chart }
> ExtFml("Xtend.Xtend",indic)
>
> ---8<---------------------------------------
>
>
>
> Xtend.dll sample application 1:
> ------------------------------
>
> ==================
> MA - centered (DLL)
> ==================
> ---8<---------------------------------------
>
> { Centered Moving Average v6.1
>   Uses forward-referencing to
>    center Mov Avg and project future direction.
>   Uses hindsight - do not trade!
>
>   Xtend.dll must be in
>   ...\MetaStock\External Function DLLs\ folder.
>   Xtend.dll custom DLL, available for US$60
>    through MetaStockTools.com.
>   Also available for free at
>    Trader's Consortium forum:
>    http://tradersconsortium.com
>
>   Copyright © 2003~2007 Jose Silva.
>   The grant of this license is for personal use
>    only - no resale or repackaging allowed.
>   All code remains the property of Jose Silva.
>   http://www.metastocktools.com }
>
> { User inputs }
> pds:=Input("Mov Avg periods",1,2600,21);
> fwPds:=Input("Forward-referencing periods   [automatic: -1]",-1,2600,-
1);
> proj:=Input("Project last known MA:   [1]Direction,   [2]Value",1,2,1);
> projCl:=Input("Project back last Close?  [1]Yes,   [0]No",0,1,0);
> channel:=Input("Channel +/- boundary %",
>  0,1000,4)/100;
> 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 }
> valid:=Cum(IsDefined(fwd))
>  =LastValue(Cum(IsDefined(fwd)));
> valid:=valid AND Alert(valid=0,2);
>
> { Extend MovAvg plot into Null zones }
> movAvg:=ExtFml("Xtend.Xtend",fwd);
>
> { Last MA known direction & future projection }
> init:=Cum(IsDefined(fwd))=1;
> direction:=movAvg+
>  If(IsUndefined(fwd),
>   ValueWhen(1,init OR valid,movAvg)-
>   ValueWhen(1,init OR valid,Ref(movAvg,-1)),0)
>  *BarsSince(init OR valid);
>
> { Choose Centered MovAvg type }
> CMA:=If(proj=1,direction,movAvg);
>
> { Projection channels }
> restrict:=If(BarsSince(valid),CMA,CMA);
> UpChannel:=restrict*(1+channel);
> DwChannel:=restrict*(1-channel);
>
> { Last Close back-projection }
> x:=LastValue(C);
> x:=If(projCl,If(BarsSince(valid),x,x),CMA);
>
> { Plot on price chart }
> UpChannel;DwChannel;x;CMA
>
> ---8<---------------------------------------
>
>
>
> Xtend.dll sample application 2
> ------------------------------
>
> Problem:
> -------
> ---8<---------------------------------------
> entry:=Cross(C,Mov(C,5,S));
> exit:=Cross(Mov(C,21,S),C);
> entry-exit
> ---8<---------------------------------------
>
> Note how the undefined exit signals in the formula above
> prevent any entry signals from plotting in the first 20 bars.
>
> Why would we want to mix entry & exit signals into a single plot?
> Compare below to plot above:
>
> ---8<---------------------------------------
>
> { Entry/Exit signals }
> entry:=Cross(C,Mov(C,5,S));
> exit:=Cross(Mov(C,21,S),C);
>
> { Remove redundant signals }
> init:=Cum(IsDefined(entry+exit))=1;
> bin:=ValueWhen(1,entry-exit<>0 OR init,entry);
> long:=bin*(Alert(bin=0,2) OR entry*Cum(entry)=1);
> short:=(bin=0)*(Alert(bin,2) OR exit*Cum(exit)=1);
>
> { Plot in own window }
> long-short
>
> ---8<---------------------------------------
>
>
>
> Now compare to the almost identical version below, where the
> Null zone is removed from the initial 20 bars of the chart:
>
> =================
> Null zone removed
> =================
> ---8<---------------------------------------
>
> { Allows the plotting of entry/exit signals
>    during undefined signal periods.
>   Sample only - do not trade!
>
>   Xtend.dll must be in
>   ...\MetaStock\External Function DLLs\ folder.
>   Xtend.dll custom DLL, available for US$60
>    through MetaStockTools.com.
>   Also available for free at
>    Trader's Consortium forum:
>    http://tradersconsortium.com
>
>   Copyright © 2003~2007 Jose Silva.
>   The grant of this license is for personal use
>    only - no resale or repackaging allowed.
>   All code remains the property of Jose Silva.
>   http://www.metastocktools.com }
>
> { Entry/Exit signals }
> entry:=Cross(C,Mov(C,5,S));
> exit:=Cross(Mov(C,21,S),C);
>
> { Remove Null plot bars }
> entry:=IsDefined(entry)*ExtFml("Xtend.Xtend",entry);
> exit:=IsDefined(exit)*ExtFml("Xtend.Xtend",exit);
>
> { Remove redundant signals }
> init:=Cum(IsDefined(entry+exit))=1;
> bin:=ValueWhen(1,entry-exit<>0 OR init,entry);
> long:=bin*(Alert(bin=0,2) OR entry*Cum(entry)=1);
> short:=(bin=0)*(Alert(bin,2) OR exit*Cum(exit)=1);
>
> { Plot in own window }
> long-short
>
> ---8<---------------------------------------
>
>
>
> The Xtend.dll custom DLL is a simple time-saving tool, useful for
> whenever a plot needs to be extended from the last known defined value
> through and into the Null (N/A) bar zone.
>
> The Xtend function will extend the first definable value backwards to
> the first bar, and the last definable value forward to the last bar.
> It does this with minimal processing overheads.
>
> Xtend.dll is a small and efficient MetaStock DLL, and is
> compatible with all versions of MetaStock v7.0 and later.
>
> The Xtend.dll custom DLL is available for US$60 through 
MetaStockTools.com.
> Also available for free at the download section of Trader's Consortium
> forum:
> http://tradersconsortium.com
>
>
> Once downloaded, Xtend.dll can be installed easily:
>
> Close MetaStock (v8.0 or later), extract the contents of
> Xtend.zip and run Xtend.exe, which will place Xtend.dll in the
> ...\MetaStock\External Function DLLs\ folder, and also import
> "Null bar removal - DLL" & "MA - centered (DLL)" sample indicators.
>
> For MetaStock versions earlier than 8.0, please copy Xtend.dll
> manually to the ...\MetaStock\External Function DLLs\ folder,
> and re-start MetaStock.
>
>
>
> jose '-)
> http://www.metastocktools.com






 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/equismetastock/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/equismetastock/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:equismetastock-digest@xxxxxxxxxxxxxxx 
    mailto:equismetastock-fullfeatured@xxxxxxxxxxxxxxx

<*> 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/