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

[EquisMetaStock Group] Re: Constant price from a specific date - FOLLOWUP



PureBytes Links

Trading Reference Links

No problem! Thanks for a great attitude, as they said some time ago,
I'm ok, you're ok. Had a look at your site - great but, as in the FAQ,
not sure what you are selling..... I'll just keep on reading....

Regards
MG Ferreira
TsaTsa EOD Programmer and trading model builder
http://www.ferra4models.com
http://fun.ferra4models.com

--- In equismetastock@xxxxxxxxxxxxxxx, "Larry Carhartt" <lc@xxxx> wrote:
> You are right.  I am wrong.  I appreciate your not letting me get
away with
> it.  I am so used to writing code in my own obscure way, I misread
your code
> thinking it was multiplying percent change by 100.  Thank you very much.
> 
> Best,
> 
> Larry Carhartt
> 
> MasterDATA
> The Only Source for Index & ETF Composite/Breadth Reports, Charts & Data
> www.MasterDATA.com
> lc@xxxx
> 818-701-6686
>  
> 
> 
> -----Original Message-----
> From: equismetastock@xxxxxxxxxxxxxxx
[mailto:equismetastock@xxxxxxxxxxxxxxx]
> On Behalf Of mgf_za_1999
> Sent: Wednesday, September 28, 2005 8:58 PM
> To: equismetastock@xxxxxxxxxxxxxxx
> Subject: [EquisMetaStock Group] Re: Constant price from a specific
date -
> FOLLOWUP
> 
> 
> These two formulas give *exactly* the same result. They will only
differ due
> to rounding, and then the simpler one will be more accurate. *Both*
of them
> will never go negative.
> 
> The idea of the former is to calculate (baseless) percentage changes and
> apply that to 100 (or 1000 or whatever) while the idea of the latter
is to
> rescale so that the value at BeginYearPx is equal to 100 (or
whatever). I
> guess you ran into the negative values with the percentage change
idea where
> it can easily happen.
> 
> Not that it matters that much as, again, both give the same answer. What
> matters is that neither will go negative.
> 
> Regards
> MG Ferreira
> TsaTsa EOD Programmer and trading model builder
http://www.ferra4models.com
> http://fun.ferra4models.com
> 
> --- In equismetastock@xxxxxxxxxxxxxxx, "Larry Carhartt" <lc@xxxx> wrote:
> > I originally tried as you suggest (not the same code as yours but
> similar
> > idea) and realized it does not work with negative numbers.  The
> parentheses
> > make all the difference.  The percent change is "added" to 100 to
> make all
> > the historical prices above zero.  Simply multiplying by 100 allows 
> > the result to remain negative.  Negative values will not plot in a
bar 
> > or candlestick chart.  For a line chart, what you suggest works fine 
> > since lines can display below zero.
> > 
> > Thank you
> > 
> > Best,
> > 
> > Larry Carhartt
> > 
> > MasterDATA
> > The Only Source for Index & ETF Composite/Breadth Reports, Charts & 
> > Data www.MasterDATA.com lc@xxxx
> > 818-701-6686
> >  
> > 
> > 
> > -----Original Message-----
> > From: equismetastock@xxxxxxxxxxxxxxx
> [mailto:equismetastock@xxxxxxxxxxxxxxx]
> > On Behalf Of mgf_za_1999
> > Sent: Wednesday, September 28, 2005 8:17 PM
> > To: equismetastock@xxxxxxxxxxxxxxx
> > Subject: [EquisMetaStock Group] Re: Constant price from a specific
> date -
> > FOLLOWUP
> > 
> > 
> > You could simplify the last line a bit, it now does something like
> > 
> >     x + calcs - x
> > 
> > and you can simplify it to simply
> > 
> >     calcs
> > 
> > Instead of
> > 
> >     100+((C-BeginYearPx)/BeginYearPx*100)
> > 
> > use
> > 
> >     100 * C / BeginYearPx
> > 
> > which is a lot easier to understand and change in future.  The 
> > original version calculates the percentage change and applies that to 
> > 100
> while this
> > version simply rescales the close so that it is equal to 100 at the 
> > beginning of the year. Same result, but different approaches. One
> looks like
> > rocket science, other is a simple rescaling calculation.
> > 
> > Anyhow, if you ever want to change it, say to start at 1,000 in stead 
> > of 100, or 1 or whatever, this is easier to do as well. Also, note
how 
> > the ratio is being used here, to catch up on some other discussions.
> > 
> > Regards
> > MG Ferreira
> > TsaTsa EOD Programmer and trading model builder
> http://www.ferra4models.com
> > http://fun.ferra4models.com
> > 
> > 
> > --- In equismetastock@xxxxxxxxxxxxxxx, "Larry Carhartt" <lc@xxxx> 
> > wrote:
> > > Thanks, Jose.  I realize that.  Because I publish these datafiles 
> > > for
> > > download, I didn't want users to have to download the full database
> > every
> > > night.  By the setting the constant price to the last day of last
> > year, they
> > > only will be "required" to fully download once a year.  Soon, 
> > > instead
> > > of doing a full download nightly, I am rewriting the plug-in so they
> > will only
> > > need to download the current day's data and it will put itself into
> > > the right place in their file (append or replace).  If I set the
> > constant price
> > > exactly one year ago, "all" the price values for the equal weighted
> > prices
> > > would change daily thus affecting the entire data base every day.  I
> > realize
> > > the current relative price shown will be measure from the start
> > price of the
> > > current year.  In terms of the overall price history, however,
> > everything
> > > stays aligned properly between stocks, indexes and ETFs.  They are
> all 
> > > reduced to a common denominator, 100.
> > > 
> > > Best,
> > > 
> > > Larry Carhartt
> > > 
> > > MasterDATA
> > > The Only Source for Index & ETF Composite/Breadth Reports, Charts &
> > > Data www.MasterDATA.com lc@xxxx
> > > 818-701-6686
> > >  
> > > 
> > > 
> > > -----Original Message-----
> > > From: equismetastock@xxxxxxxxxxxxxxx
> > [mailto:equismetastock@xxxxxxxxxxxxxxx]
> > > On Behalf Of Jose Silva
> > > Sent: Wednesday, September 28, 2005 4:55 PM
> > > To: equismetastock@xxxxxxxxxxxxxxx
> > > Subject: [EquisMetaStock Group] Re: Constant price from a specific
> > date -
> > > FOLLOWUP
> > > 
> > > 
> > > Larry, you've set the month variable in your code to last December, 
> > > so that currently it is only measuring the last ten months.
> > > 
> > > To save a lot of time (and possible errors) with the date setting, 
> > > you could try Richard's excellent NexusDate.dll to automate this 
> > > process for you in MetaStock:
> > > 
> > > ---8<------------------------
> > > { Download NexusDate.dll from:
> > >   http://www.tradernexus.com/nexusdate }
> > > 
> > > x:=ExtFml("NexusDate.DaysOld")>=366;
> > > StartDate:=x=0 AND Alert(x,2);
> > > BeginYearPx:=LastValue(ValueWhen(1,StartDate,C));
> > >  
> > > 100+((C-BeginYearPx)/BeginYearPx*100)
> > > ---8<------------------------
> > > 
> > > 
> > > jose '-)
> > > http://www.metastocktools.com
> > > 
> > > 
> > > 
> > > --- In equismetastock@xxxxxxxxxxxxxxx, "Larry Carhartt" <lc@xxxx>
> > > wrote:
> > > >
> > > > Although many of you supplied answers for my earlier inquiry
> > regarding
> > > > finding the price of 1 year ago and setting it as a constant (and 
> > > > I appreciate the response very much), I elected to use Roy
Larsen's.
> > > > For reasons that I will spare you, I now have decided to use
> instead 
> > > > the last closing price of last year as the constant. In other
> > words, I
> > > > will be calculating the rate of return for the current calendar 
> > > > year both forward (this is normal practice) and backward (not very
> common) 
> > > > based upon the closing price of the last trade day of last year.  
> > > > I
> > > > modified Roy's formula as follows:
> > > >  
> > > > Sm:=12;
> > > > Sd:=28;
> > > > Sy:=LastValue(Year()-1);
> > > >  
> > > > StartDate:=(DayOfMonth()>=Sd AND
> > > > Month()=Sm AND
> > > > Year()=Sy);
> > > >  
> > > > BeginYearPx:=LastValue(ValueWhen(1,StartDate,C));
> > > >  
> > > > 100+(((C-BeginYearPx)/BeginYearPx)*100);
> > > >  
> > > > I know it is more than a little modified, but Roy's original 
> > > > formula introduced me to some MetaStock functions I had never
used 
> > > > before. THAT is the true value of this forum.  Yes, you may get 
> > > > the exact answer you need, but you can learn from every answer
(from
> guys like
> > > > Roy, Jose, Richard and many more I should be mentioning).   By the
> > > > way, I still plan on using Roy's original formula for other
> purposes 
> > > > (with full credit, of course).  And, Jose, thank you for getting 
> > > > my
> > > > brain kick-started by pointing out the problem with simply 
> > > > accumulating percentage gains/losses.
> > > >  
> > > > When I use the above as the formula for the custom indicator, it 
> > > > generates the correct values.  You may notice that I also modified
> > the
> > > > last line (my addition) so that the year always starts with a
> > value of
> > > > 100.  The reason for this is that I plan on additionally 
> > > > generating OHLC MetaStock format price files outside of MetaStock 
> > > > and then converting those files to MetaStock (that code will be 
> > > > based on the same formula).  That way, I can display bar or 
> > > > candlestick charts
> > with
> > > > the new "relative" OHLC prices.  OHLC price files won't plot
> > > > negative
> > > > values, so starting at 100 always keeps the value above 0 even
when 
> > > > going back previous to the beginning of the year or if the
current 
> > > > price is down for the year. In other words, if the security is
> > down 3%
> > > > from the current year's beginning price, the displayed value for
> > > > that
> > > > day will be 97.  It really seems to do a good job of keeping the 
> > > > displayed value properly aligned with the actual price and
current 
> > > > rate of return without drift of any kind.
> > > >  
> > > > I think I mentioned this before, but in case you are tuning in 
> > > > late, where I am really going with this is to recalculate all the 
> > > > indexes and ETFs I work with to equal weight composites.  Most 
> > > > indexes are either cap weighted like the S&P 500 Index or price 
> > > > weighted
> like the 
> > > > Dow Jones Industrial Average. To do that, I need to apply this
> > formula
> > > > to each of 3400 components I follow then recalculate the 
> > > > historical data on the composites using the values given by the 
> > > > above formula
> > and
> > > > then simply total them and divide by the number of components in 
> > > > the index or ETF. Voila, an equal weighted composite (I  think or 
> > > > hope).
> > > >  
> > > > Again, I appreciate everyone's input on this.
> > > >  
> > > > Thank you.
> > > >  
> > > > Best,
> > > > 
> > > > Larry Carhartt
> > > > 
> > > > MasterDATA Composite Plug-in For MetaStock
> > > > The Only Source for Index & ETF Composite/Breadth Historical
> > MetaStock
> > > > Data  <http://www.masterdata4metastock.com/>
> > > > www.MasterDATA4MetaStock.com  <mailto:lc@x...> lc@xxxx 
> > > > 818-701-6686
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > >  
> > > Yahoo! Groups Links
> > 
> > 
> > 
> > 
> > 
> >  
> > Yahoo! Groups Links
> 
> 
> 
> 
> 
>  
> Yahoo! Groups Links




------------------------ Yahoo! Groups Sponsor --------------------~--> 
Try Online Currency Trading with GFT. Free 50K Demo. Trade 
24 Hours. Commission-Free. 
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/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/