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

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



PureBytes Links

Trading Reference Links

My code is always a bit overwritten.  If you have read some of my
dissertations here on the forum you know that is how I my brain works.  The
formulas are clear to me, but perhaps not for public consumption.


-----Original Message-----
From: Larry Carhartt [mailto:lc@xxxxxxxxxxxxxx] 
Sent: Wednesday, September 28, 2005 8:41 PM
To: 'equismetastock@xxxxxxxxxxxxxxx'
Subject: RE: [EquisMetaStock Group] Re: Constant price from a specific date
- FOLLOWUP


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@xxxxxxxxxxxxxx 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 Sponsor --------------------~--> 
Help tsunami villages rebuild at GlobalGiving. The real work starts now.
http://us.click.yahoo.com/njNroD/KbOLAA/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/