| 
 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 
 
  
 
 
Yahoo! Groups Links 
 |