| 
 PureBytes Links 
Trading Reference Links 
 | 
| 
 Oops Joe, not Fred, 
Damn, old age. Losing it 
Dave 
  
  ----- Original Message -----  
  
  
  Sent: Friday, April 15, 2005 9:07 
AM 
  Subject: Re: [amibroker] Re: Ulcer Index 
  and Ulcer Performance Index 
  
  
  Thanks again Fred 
    
  I was at this past year's Clearwater conference 
  and am waiting for Richard to get up to speed. Wish him a speedy 
  recovery. 
    
  Your file works fine, now I gotta figure out all 
  the pieces. This reminds me of the spreadsheet capability in FT which I used 
  quit a bit and was hoping to replicate in AB. It's too bad there isn't a way 
  to make it more "interactive" with the watch list, i.e. ranking the watch list 
  as the results of  say Explore can be ranked by clicking on a column 
  heading.  Being a visual guy, clicking through the various curves in some 
  rank order like UI gave an intuitive sense for the change in the numbers. I'd 
  have an index or another issue on the same screen for comparison. 
 
  Thanks again for your help 
    
  Dave 
    
  
    ----- Original Message -----  
    
    
    Sent: Friday, April 15, 2005 5:35 
    AM 
    Subject: Re: [amibroker] Re: Ulcer 
    Index and Ulcer Performance Index 
    
  
    Dave  
    There's a neat package in the Clearwater FT 
    Monitor Conference CDs for 2005 written by Bill Barnard  
    that bridges the a lot of the gaps between FT 
    and Amibroker, except TRADE, and provides the UI UPI metrics 
    plus others.  You even get the black 
    (ugh!) screens and all the conventions of 
    FT(red for buy and green for sell) 
    The CDs have not been released yet but due to 
    be released any month now.  Although 
    conf was in Feb, the coordinator Richard Boroff was  
    under the weather for a while but is back at it 
    now I believe. 
      
    Write me if you have questions about the 
    Explorer.  Tell me what database you have and I 
    could clip the just the UI UPI section from it. 
     
      
    JOE  
    
      ----- Original Message -----  
      
      
      Sent: Thursday, April 14, 2005 8:47 
      PM 
      Subject: [amibroker] Re: Ulcer Index 
      and Ulcer Performance Index 
      
 
  Joe, Thanks a bunch. More than I bargained 
      for..it'll take me a little  while to digest. I'm familiar with 
      FastTrack crowd. Now just trying  to make switch over to AB without FT 
      and still get some of the  excellent tools I had at FT. Biggest problem 
      is lack of programming  skill.  Thanks very 
      much Dave
 
 
  --- In amibroker@xxxxxxxxxxxxxxx, 
      "Joe Landry" <jelandry@xxxx> wrote: > Dave 9542 -  
       >  >  All of the formulas can be attributed to Brian 
      Stocks author of  FastTools, Ed Gilbert author TRADE and SCRIPTS 
      written by others,  CHEESE CHARTS,  >  > and a local 
      Amibroker guru (who become well know to you in the  weeks ahead as he 
      ramps up a virtual training room) .   >  > There are a 
      few things with this routine that can trip you up  depending on your 
      data base. One is the money market rate, 2) the >  > assumed 
      risk free interest rates where convention uses 5.4% (man I  wish this 
      were true), 3) the symbol of the Russell 2000 index, >  > and 
      the window or so called MPT period.  The latter are in two 
       parameters to adjust.  I've seen many versions of MPT 
      calculations  and they all present somewhat different values for UI and 
      UPI.  All  of the formulas can be attributed to FastTools, > 
       > TRADE SCRIPTS, CHEESE CHARTS, and a local Amibroker guru.  
       >  > You can strip the UI UPI code from this and make your 
      own  exploration routine that doesn't depend on BUY/SELL or the equity 
       curve.  >  > Best regards > JOE  >  > // 
      *************************** Function Section to calculate Risk  Free 
      Fixed Rate ********* >  > function 
      Irate(interest_rate) >  > { >  > // This gets the 
      log of the daily rate >  > logbarfactor = log(1 + 
      interest_rate / 100) / 252; >  > // Force the first bar to 
      0 >  > logvect = IIf(BarIndex() == 0, 0, 
      logbarfactor); >  > // Sum the log of the daily gain factors 
      and >  > // convert back to get equity >  > 
      return(exp(Cum(logvect))); >  > } >  > // General 
      Section >  > period = 22; // 22 trading days a month > 
       > MPT_Period = Param("MPT Period", 252,125,500,5);  > 
       > IndexSym = ParamStr("Russell 2000 Index Symbol","!rut");  > 
       > // ------------------------------------MPT 
      Section------------------ ------------------ >  > Index = 
      Foreign(IndexSym,"Close");  >  > rfFund = 
      Foreign("FDRXX","C");  >  > riskfree = ((rffund/ 
      Ref(rfFund,-MPT_Period)))^(252);  >  >  > // Correlation 
      coefficient of Equity to the Index  >  > Corr = 
      100*Correlation(ROC(C,1),ROC(Index,1),MPT_Period); >  > SDF = 
      StDev(ROC(Close, 1),MPT_Period); >  > SDI = StDev(ROC(Index, 
      1),MPT_Period); >  > RelStDev = SDF/SDI;  >  > // 
      Calculation of Beta -  >  > Beta = Corr * RelStDev/100; // 
      volatily relative to benchmark  >  > NCAlpha = 
      MA(ROC(Close,1),MPT_Period) - RelStDev*MA(ROC (Index,1),MPT_Period); // 
      noncorrelated Alpha >  > Alpha = MA(ROC(Close,1),MPT_Period) - 
      Beta*MA(ROC (Index,1),MPT_Period); // textbook definition  > 
       > // SHARPE PERFORMANCE INDEX a risk adjusted measure of the 
       performance of an equity compared to the risk free benchmark standard 
       rate of return = 5% >  > SHARPE = ( 
      MA(ROC(C,1),MPT_Period) - MA(ROC(irate (2.2),1),MPT_Period) )/(SDF); 
       >  >  > // ----------------------------------- UPI Code 
      -------------------- ------------------- >  > // 
      Retracements from the Highest High Current Draw Down Here using 
       Monthly Period to cal these numbers. >  > Cdd = 
      (HHV(C,MPT_Period) - C)/HHV(C,MPT_Period); >  > // Max draw 
      down >  > MaxDD = HHV(CDD,MPT_Period);  >  > // 
      Sum of all retracements squared -  >  > R2 = 
      (Sum(Cdd*Cdd,MPT_Period))/(MPT_Period-1); >  > // Ulcer Index 
      -Cumulative downside volatility of an equity >  > UI = 
      sqrt(R2); >  > // Annual compound percentage rate of 
      return >  > TR = Close/Ref(Close,-MPT_Period); // Total Return 
      for 1 year >  > ANN = (exp(log(TR))-1); // Annual compounded 
      rate of return  >  > // Ulcer performance index - risk 
      adjusted performance of an  investment. >  > UPI = (ANN - 
      irate(2.2)/100)/UI;     // I have 2.2% here, early 
       analysts used 5.4%  >  > // ----------------------------- 
      Performance Calculation ----------- ----------------- >  > 
      EndV = ValueWhen(DateNum()==DateNum(),C); // Today's Close > 
       > // hardcoded for 2005  >  > BegV = 
      ValueWhen(DateNum()==1050103,Close); // Starts year with Jan  3, 2005 
      Closing Value >  > YTD = 100*(EndV-BegV)/BegV; > 
       > // --------------------------- Calculate RSI / Stochastics - 
       Exploration -------------------------------------- >  > 
      slow=LLV(C,21); >  > shigh=HHV(C,21); >  > 
      faststoc=EMA(100*(C-slow)/(shigh-slow),13)/2 + RSI(14)/2; >  > 
      momentum=faststoc-Ref(faststoc,-6); // as used in Cheese3 and FT > 
       > 
      momentumchg=((faststoc-Ref(faststoc,-6))/Ref(faststoc,-6)) *100; //as 
      used in Cheese3 and FT >  > // ---------------------------- 
      Test Section ----------------------- --- >  > xbar = 
      MA(ROC(C,1),MPT_Period); >  > SumR2 = 
      Sum((ROC(C,1)-xbar)^2,MPT_Period); >  > Sigma = 
      (SumR2/(MPT_Period-1))^.5; >  >  >  > Filter 
      =1; >  >  > 
      AddTextColumn(FullName(),"Name",1.2); >  > AddColumn(Corr,"Cor 
      Coeff"); >  > AddColumn(Alpha,"Alpha"); >  > 
      AddColumn(NCAlpha,"NCAlpha"); >  > 
      AddColumn(Beta,"Beta"); >  > AddColumn(SDF,"Std Dev"); > 
       > AddColumn(RelStDev,"RelSD"); >  > 
      AddColumn(Sharpe,"Sharpe"); >  > 
      AddColumn(100*Ann,"ANN"); >  > AddColumn(100*MaxDD,"MDD %"); 
       >  > AddColumn(100*UI,"UI"); >  > 
      AddColumn(UPI,"UPI"); >  > 
      AddColumn(faststoc,"Stoch/RSI",1.2); >  > 
      AddColumn(momentum,"Mom",1.2); >  > 
      AddColumn(momentumchg,"Mom-Chg%",1.2); >  > 
      AddColumn(ROC(C,Period)," 1 mnth"); >  > AddColumn(YTD," 
      YTD"); >  > AddColumn(ROC(C,MPT_Period)," 1 yr "); > 
       >   ----- Original Message -----  >   
      From: dave9542  >   To: amibroker@xxxxxxxxxxxxxxx 
       >   Sent: Thursday, April 14, 2005 2:01 
      PM >   Subject: [amibroker] Ulcer Index and Ulcer 
      Performance Index >  >  >  >  >   
      Newby needs help. >  >   I am interested in code 
      that allows me to look at Ulcer Index and  >   Ulcer 
      Performance Index for individual issues. Marcin was good  enough 
       >   to point me to code written by Ken Close and then 
      modified by TJ  but  >   I still cannot get it to work. 
      When run in Explore I'm told  >   that "variable Buy is 
      used without being initialized".  >  >   Is it 
      enough to place "Buy = 1" as first line in code or does  this 
       >   distort results? >  >   Here's 
      code >  >   Filter = Buy OR 
      Sell; >   Eq=Equity(0,0); >   Per = 
      252; >   Per2 = 40; >   Cdd = 
      (HHV(Eq,Per2) - Eq)/HHV(Eq,Per2); >   MaxCdd = 
      HHV(Cdd,252)*100; >   R2 = 
      (Sum(Cdd*Cdd,Per))/Per; >   UI = 
      100*sqrt(R2); >   Gain = 
      Eq/Ref(Eq,-Per); >   ANN = 100 * ((Gain^(252/Per)) - 
      1); >   UPI = (ANN - 0.054)/UI; >   
      AddColumn(MaxCdd,"MaxCdd",1.2); >   
      AddColumn(ANN,"ANN",1.2); >   
      AddColumn(UPI,"UPI",1.3); >   
      AddColumn(ANN/MaxCdd,"ANN/dd",1.3); >  >   
      Thanks >   Dave >  >  >  > 
       >  >  >  >  >  >   Please 
      note that this group is for discussion between users only. > 
       >   To get support from AmiBroker please send an e-mail 
      directly to  >   SUPPORT {at} amibroker.com > 
       >   For other support material please check 
      also: >   http://www.amibroker.com/support.html > 
       >  >  >  >  > 
      -------------------------------------------------------------------- ---------- >   
      Yahoo! Groups Links >  >     a.. To visit 
      your group on the web, go to: >     http://groups.yahoo.com/group/amibroker/ >       
       >     b.. To unsubscribe from this group, send 
      an email to: >     
      amibroker-unsubscribe@xxxxxxxxxxxxxxx >       
       >     c.. Your use of Yahoo! Groups is subject 
      to the Yahoo! Terms of  Service.
 
 
 
 
  Please 
      note that this group is for discussion between users only.
  To get 
      support from AmiBroker please send an e-mail directly to  SUPPORT {at} 
      amibroker.com
  For other support material please check also: http://www.amibroker.com/support.html
 
 
 
 
  Please 
      note that this group is for discussion between users only.
  To get 
      support from AmiBroker please send an e-mail directly to  SUPPORT {at} 
      amibroker.com
  For other support material please check also: http://www.amibroker.com/support.html
 
 
 
   
  Please 
  note that this group is for discussion between users only.
  To get 
  support from AmiBroker please send an e-mail directly to  SUPPORT {at} 
  amibroker.com
  For other support material please check also: http://www.amibroker.com/support.html
 
 
  
  
Please note that this group is for discussion between users only. 
 
To get support from AmiBroker please send an e-mail directly to  
SUPPORT {at} amibroker.com 
 
For other support material please check also: 
http://www.amibroker.com/support.html 
 
  
 
 
Yahoo! Groups Links 
  |   
 |