PureBytes Links
Trading Reference Links
|
Hi MG,
After plotting your code, I have a straight line :-[
Where is my mistake ?
Thanks in advance for your help,
Regards,
Marco
mgf_za_1999 a écrit :
Hi Robert,
Please, don't be so apologetic about it! You are free to ask and I
guess this forum is exactly for this - a free flow of ideas,
indicators and MSFL stuff.
You are right in changing the c-ref(c,-1) bit. Also, specify the
starting bin (this is the minimum observed percentage change in the
original) to say -5. Then the histogram will start at -5. Now, make
BinSize:=1, then the histogram starts at -5, the next bin at -4 etc.
Change these (yMin and BinSize) to whatever applies to you. If you
have a histogram with more than 20 bins, you'd have to extend the big
formula with all the lastvalue's in, but it should be more or less
obvious how to do this. And, of course, if you do this, let me have a
copy of it please.
Regards
MG Ferreira
TsaTsa EOD Programmer and trading model builder
http://www.ferra4models.com
http://fun.ferra4models.com
--- In equismetastock@xxxxxxxxxxxxxxx, "robcpettit" <robcpettit@xxxx>
wrote:
I hate to ask, as youve spent long enough on this, Ive messed around
with this but my lack of understanding doesnt help. Id like a
distribution of say how many times a price changes by 1, or 2, or 3,
or -1, or -2 etc. Which areas would I have to change. Ive altered the
formula to c-(ref(c,-1) and played around with other parts. With the
ref to bins is this setting up different areas to add repeated values
to. Sorry for my lack of understanding. I have excel so I can use that.
Regards Robert
--- In equismetastock@xxxxxxxxxxxxxxx, "robcpettit" <robcpettit@xxxx>
wrote:
MG Ferreira, Thankyou for your reply, well beyond the kind of reply
was expecting. This looks like it took some time to put together so
its much appreciated and Ill have fun playing with it. It will take a
while to learn whats actually happening.
Regards Robert
--- In equismetastock@xxxxxxxxxxxxxxx, mgf_za_1999 <no_reply@xxxx>
wrote:
Robert,
Actually I am in so much trouble now with all the time I just
spent on
this very interesting challenge. Here it is
----8<----------------------
{MG Ferreira}
{http://www.ferra4models.com}
{Plots frequency distribution of daily returns}
{and fitted normal distribution, either in values}
{or percentages.}
{For personal use only}
{Number of bins, use log(n) if not sure}
Bins:=Input("Number of bins?",5,20,10);
UsePct:=Input("Actual count(0) or percentage(1)?",0,1,0);
{What we want to distribute, change to your liking}
Y:=100*(C/Ref(C,-1)-1); {Daily returns}
{Calcs}
yMax:=LastValue(Highest(Y));
yMin:=LastValue(Lowest(Y));
yRange:=yMax-yMin;
BinSize:=yRange/Bins;
{Count frequency in each bin}
ii:=Cum(1);
nn:=LastValue(ii);
CumFreq:=0*(ii<=2)+
LastValue(Cum(Y<yMin+BinSize*1))*(ii=3)+
LastValue(Cum(Y<yMin+BinSize*2))*(ii=4)+
LastValue(Cum(Y<yMin+BinSize*3))*(ii=5)+
LastValue(Cum(Y<yMin+BinSize*4))*(ii=6)+
LastValue(Cum(Y<yMin+BinSize*5))*(ii=7)+
LastValue(Cum(Y<yMin+BinSize*6))*(ii=8)+
LastValue(Cum(Y<yMin+BinSize*7))*(ii=9)+
LastValue(Cum(Y<yMin+BinSize*8))*(ii=10)+
LastValue(Cum(Y<yMin+BinSize*9))*(ii=11)+
LastValue(Cum(Y<yMin+BinSize*10))*(ii=12)+
LastValue(Cum(Y<yMin+BinSize*11))*(ii=13)+
LastValue(Cum(Y<yMin+BinSize*12))*(ii=14)+
LastValue(Cum(Y<yMin+BinSize*13))*(ii=15)+
LastValue(Cum(Y<yMin+BinSize*14))*(ii=16)+
LastValue(Cum(Y<yMin+BinSize*15))*(ii=17)+
LastValue(Cum(Y<yMin+BinSize*16))*(ii=18)+
LastValue(Cum(Y<yMin+BinSize*17))*(ii=19)+
LastValue(Cum(Y<yMin+BinSize*18))*(ii=20)+
LastValue(Cum(Y<yMin+BinSize*19))*(ii=21)+
LastValue(Cum(Y<yMin+BinSize*20))*(ii=22)+
(nn-1)*(ii>22);
Freq:=(CumFreq-Ref(CumFreq,-1))/(UsePct*nn+(UsePct=0));
{Now fit a normal distro to it}
Mu:=LastValue(Cum(y))/(nn-1);
Sigma:=LastValue(Stdev(y,nn-2));
NormDistro:=Exp(-0.5*Power((yMin+BinSize*(ii-2)-Mu)/Sigma,2))/sigma;
CumNorm:=LastValue(Cum(NormDistro));
NormFin:=NormDistro/CumNorm*((UsePct=0)*(nn-1)+(UsePct=1));
NormFin;Freq
----8<----------------------
This asks you to give the number of bins, say 10. Use log(#obs) if
you are not sure, and I should probably have used this somewhere as
well. It then calculates the frequency distro and also fits a
normal
distro to it, which it plot. If you enter say 20 bins (the max)
then
the first 20 + 2 values contain the frequency and normal
distros. The
rest you can basically ignore.
Now, this is plotted on a date axis. To plot it on a proper
axis can
not be done, but just change the last line to something like
NormFin;Freq;yMin+BinSize*(ii-2)
to get the values of the x axis as well. You can then copy this out
to say Excel for further analysis.
Regards
MG Ferreira
TsaTsa EOD Programmer and trading model builder
http://www.ferra4models.com
http://fun.ferra4models.com
--- In equismetastock@xxxxxxxxxxxxxxx, mgf_za_1999 <no_reply@xxxx>
wrote:
Hi Robert,
I think this is not that difficult to do actually, using a few
'Cum'
and 'LastValue' statements should do the trick. It won't be
as nice
as you'd want it to be, but will be a lot easier than copy and
paste
to Excel. If I have more time, I'll see if I can cook up
something
for this.
Regards
MG Ferreira
TsaTsa EOD Programmer and trading model builder
http://www.ferra4models.com
http://fun.ferra4models.com
--- In equismetastock@xxxxxxxxxxxxxxx, "robcpettit"
<robcpettit@xxxx>
wrote:
Hi, I think the answer no but I have to ask. Is it possible
to do
frequency distribution charts, in the traditional bell shape,
without
purchasing tradesim.
Regards Robert
------------------------ Yahoo! Groups Sponsor --------------------~-->
What would our lives be like without music, dance, and theater?
Donate or volunteer in the arts today at Network for Good!
http://us.click.yahoo.com/Tcy2bD/SOnJAA/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/
Yahoo! Groups Links
|
|