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

RE: [EquisMetaStock Group] Skewness or biasedness and kurtosis



PureBytes Links

Trading Reference Links


MG

If I apply your approximate kurtosis formula (50 days) to the NDX, I get
some disconcerting discontinuities - e.g. 3/15/01 5.8 3/16/01 -0.71,
similarly Jan 2002 and Dec 1999. The exact formula can't go to 50 days, but
has similar jumps. My statistics are rusty, but I would not expect to see
such bar to bar jumps in these series. What am I missing?

Andrew



-----Original Message-----
From: MG Ferreira [mailto:quant@xxxxxxxxxxxxxxxx] 
Sent: Friday, March 04, 2005 11:08 AM
To: equismetastock@xxxxxxxxxxxxxxx
Subject: [EquisMetaStock Group] Skewness or biasedness and kurtosis




Herewith code for the skewness and kurtosis of a series (somebody requested
this, so don't jump to conclusions - specifically, don't test this as a
trading model - caveat emptor - This is often useful when trading options
and we used these things to devise option strategies, such as building
indicators that tell you if you should be buying/writing puts or calls, in
or out the money etc - but - don't be mislead by this statement as these are
the basic building blocks of such a system, not the system itself - and
given upon
request...)

It is a bit troublesome to do this in Metastock due to the way in which its
time series processor works.  You have to manually add up the history to get
the exact version, but you can easily build a good approximation.  The exact
version quickly causes Metastock to give an error message, and we limit it
to 20 days, which really is too little for this indicator.  We also give an
approximate version which is very easy to code and use, and here you can go
much higher than the 20 day limit of the exact system.  The exact system
also shows how you can use boolean algebra in stead of lots of if
statements.  Typically you should have a highish value for these, say 50 and
above.

OK, so there are four formulas in total, exact and approximate ones for the
skewness or bias and the kurtosis.  Note that we calculate, as you should,
these figures in the return series, not the series itself.

How do you interpret these?  Just a brief summary.

Skewness: If this is positive, then the market has a positive news impact
curve.  Up movements are generally higher than down movements.  If this
value is negative, then vice versa.  Here is an example of movements in a
positive skew market:

+2 -1 +5 -3 +3 -1 +3 -1 +2

Note that, if the market rises, it generally rises more than if it falls.

Kurtosis: If this value is positive, it means the returns are leptokurtic.
A negative value indicates a platykurtic distribution. Leptokurtic
technically means there are more outliers than in a normal distribution, in
practise it is indicative of a risky market.  The higher this value, the
more risky the market is, with 0 sort of meaning it is a normal market.  A
low value means that you have a low risk market.  Here is an example of a
leptokurtic market:

+1 -1 +1 -1 +10 -1 +1 -1 +12 -2 +1 -1 +2 -1

Note that the market's return is quite concentrated around zero but every
now and again you have a HUGE outlier - this is leptokurtosis.

Code follows below, note it is in four sections.

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

----------8<-----------------------------------------------------
{Bias Exact Metastock code
 -------------------------
 MG Ferreira
 http://www.ferra4models.com
 For personal use only}

xx := INDICATOR;
ll := Input("Bias length:",1,20,20);
yy := ROC(xx,1,%);
mm := Mov(yy,ll,S);
ss := Power(yy-mm,3)+
      Power((Ref(yy,-1)-mm)*(ll>1),3)+
      Power((Ref(yy,-2)-mm)*(ll>2),3)+
      Power((Ref(yy,-3)-mm)*(ll>3),3)+
      Power((Ref(yy,-4)-mm)*(ll>4),3)+
      Power((Ref(yy,-5)-mm)*(ll>5),3)+
      Power((Ref(yy,-6)-mm)*(ll>6),3)+
      Power((Ref(yy,-7)-mm)*(ll>7),3)+
      Power((Ref(yy,-8)-mm)*(ll>8),3)+
      Power((Ref(yy,-9)-mm)*(ll>9),3)+
      Power((Ref(yy,-10)-mm)*(ll>10),3)+
      Power((Ref(yy,-11)-mm)*(ll>11),3)+
      Power((Ref(yy,-12)-mm)*(ll>12),3)+
      Power((Ref(yy,-13)-mm)*(ll>13),3)+
      Power((Ref(yy,-14)-mm)*(ll>14),3)+
      Power((Ref(yy,-15)-mm)*(ll>15),3)+
      Power((Ref(yy,-16)-mm)*(ll>16),3)+
      Power((Ref(yy,-17)-mm)*(ll>17),3)+
      Power((Ref(yy,-18)-mm)*(ll>18),3)+
      Power((Ref(yy,-19)-mm)*(ll>19),3);
ll*ss/(Power(Stdev(yy,ll)*Sqrt(ll/(ll-1)),3)*(ll-1)*(ll-2))
----------8<-----------------------------------------------------
{Bias Approx Metastock code
 --------------------------
 MG Ferreira
 http://www.ferra4models.com
 For personal use only}

xx := INDICATOR;
ll := Input("Bias length:",1,9999,50);
yy := ROC(xx,1,%);
mm := Mov(yy,ll,S);
dd := yy-mm;
ll*Sum(Power(dd,3),ll)/(Power(Stdev(yy,ll)*Sqrt(ll/(ll-1)),3)*(ll-1)*(ll-2))
----------8<-----------------------------------------------------
{Kurtosis Exact Metastock code
 -----------------------------
 MG Ferreira
 http://www.ferra4models.com
 For personal use only}

xx := INDICATOR;
ll := Input("Kurtosis length:",1,20,20);
yy := ROC(xx,1,%);
mm := Mov(yy,ll,S);
ss := Power(yy-mm,4)+
      Power((Ref(yy,-1)-mm)*(ll>1),4)+
      Power((Ref(yy,-2)-mm)*(ll>2),4)+
      Power((Ref(yy,-3)-mm)*(ll>3),4)+
      Power((Ref(yy,-4)-mm)*(ll>4),4)+
      Power((Ref(yy,-5)-mm)*(ll>5),4)+
      Power((Ref(yy,-6)-mm)*(ll>6),4)+
      Power((Ref(yy,-7)-mm)*(ll>7),4)+
      Power((Ref(yy,-8)-mm)*(ll>8),4)+
      Power((Ref(yy,-9)-mm)*(ll>9),4)+
      Power((Ref(yy,-10)-mm)*(ll>10),4)+
      Power((Ref(yy,-11)-mm)*(ll>11),4)+
      Power((Ref(yy,-12)-mm)*(ll>12),4)+
      Power((Ref(yy,-13)-mm)*(ll>13),4)+
      Power((Ref(yy,-14)-mm)*(ll>14),4)+
      Power((Ref(yy,-15)-mm)*(ll>15),4)+
      Power((Ref(yy,-16)-mm)*(ll>16),4)+
      Power((Ref(yy,-17)-mm)*(ll>17),4)+
      Power((Ref(yy,-18)-mm)*(ll>18),4)+
      Power((Ref(yy,-19)-mm)*(ll>19),4);
ll*(ll+1)*ss/(Power(Stdev(yy,ll)*Sqrt(ll/(ll-1)),4)*(ll-1)*(ll-2)*(ll-3))-3*
(ll-1)*(ll-1)/((ll-2)*(ll-3))
----------8<-----------------------------------------------------
{Kurtosis Approx Metastock code
 ------------------------------
 MG Ferreira
 http://www.ferra4models.com
 For personal use only}

xx := INDICATOR;
ll := Input("Kurtosis length:",1,9999,50);
yy := ROC(xx,1,%);
mm := Mov(yy,ll,S);
dd := yy - mm;
ll*(ll+1)*Sum(Power(dd,4),ll)/(Power(Stdev(yy,ll)*Sqrt(ll/(ll-1)),4)*(ll-1)*
(ll-2)*(ll-3))-3*(ll-1)*(ll-1)/((ll-2)*(ll-3))
----------8<-----------------------------------------------------






 
Yahoo! Groups Links



 







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