PureBytes Links
Trading Reference Links
|
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 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/
|