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

[EquisMetaStock Group] Skewness or biasedness and kurtosis



PureBytes Links

Trading Reference Links


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 Sponsor --------------------~--> 
In low income neighborhoods, 84% do not own computers.
At Network for Good, help bridge the Digital Divide!
http://us.click.yahoo.com/EpW3eD/3MnJAA/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/