crBeta.afl
上传用户:shiqiang
上传日期:2009-06-12
资源大小:1289k
文件大小:2k
源码类别:

金融证券系统

开发平台:

Others

  1. //------------------------------------------------------------------------------
  2. //
  3. //  Formula Name:    crBeta
  4. //  Author/Uploader: Chuck Rademacher 
  5. //  E-mail:          chuck_rademacher@xtra.co.nz
  6. //  Date/Time Added: 2003-05-21 05:14:07
  7. //  Origin:          
  8. //  Keywords:        beta
  9. //  Level:           semi-advanced
  10. //  Flags:           system,exploration,indicator,function
  11. //  Formula URL:     http://www.amibroker.com/library/formula.php?id=281
  12. //  Details URL:     http://www.amibroker.com/library/detail.php?id=281
  13. //
  14. //------------------------------------------------------------------------------
  15. //
  16. //  This function calculates beta for any stock against an index or another
  17. //  stock. Caution... beta calculations typically have long lookback periods.
  18. //  This could eat a lot of your data prior to generating any values. Most data
  19. //  providers use a five year lookback (1225 days). I think you can have
  20. //  meaningful beta figures using 125 to 250 days, particularly in the current
  21. //  market conditions.
  22. //
  23. //  Beta calculations usually take "risk-free returns" into consideration. This
  24. //  function does not, as most AmiBroker users probably do not have access to
  25. //  the relevant data. If there are enough people interested, I will release
  26. //  the version that does use risk-free returns as part of the formula.
  27. //
  28. //  The following is an example of calculating beta against the S&P500
  29. //  index for 125 days:
  30. //
  31. //  ForeignClose = Foreign(".SPX","Close",Fixup=1);
  32. //
  33. //  Beta = crBeta(ForeignClose,Close,125);
  34. //
  35. //------------------------------------------------------------------------------
  36. function crBeta (Market,Stock, LB) {
  37.    MarketReturn = (Market-Ref(Market,-1)) / Ref(Market,-1);
  38.    StockReturn = (Stock-Ref(Stock,-1)) / Ref(Stock,-1);
  39.    MarketSquared = MarketReturn*MarketReturn;
  40.    StockSquared = StockReturn*StockReturn;
  41.    MS = MarketReturn * StockReturn;
  42.    AvgMarketDelta = Sum(MarketReturn,LB) / LB;
  43.    AvgStockDelta = Sum(StockReturn,LB) / LB;
  44.    SumOfMarketSquared = Sum(MarketSquared,LB);
  45.    SumofStockSquared = Sum(StockSquared,LB);
  46.    SumOfMS = Sum(MS,LB);
  47.    return (SumOfMS - (LB*AvgMarketDelta*AvgStockDelta)) / 
  48.                      SumOfMarketSquared - (LB*(AvgMarketDelta * AvgMarketDelta));
  49. }