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

[amibroker] one-stock exploration with various rows



PureBytes Links

Trading Reference Links




still trying to find a better way 
to code my pair trading approach:
would it be possible to do an 
explore with various loops against one ticker and then visualize this in aa with 
various rows? the following code calculates both short- and mid-term correlation 
of one stock against a watchlist. the way it is written, it gives the result in 
one row, first short-term then mid-term. -- is there a way to code so that those 
two rows would show one beneath the other ?? 
 
any help appreciated, thanks so 
far,
 
dirk
 
 
<BLOCKQUOTE 
>
  ----- Original Message ----- 
  <DIV 
  >From: 
  dirk 
  schreiber 
  To: <A title=amibroker@xxxxxxxxxxxxxxx 
  href="">amibroker@xxxxxxxxxxxxxxx 
  Sent: Wednesday, December 10, 2003 11:12 
  AM
  Subject: Re: [amibroker] CORRELATION 
  MATRIX: filter within loop ?
  
  thank you herman for the 
  code.
  i have the feeling that we are 
  getting closer, although i realize why you say that this solution only works 
  for a single stock. it is obvious since we cannot have different columns for 
  every row. but at least your variation of the code can show how many 
  correlations with other stocks above/beneath a certain level every stock 
  has.
   
  i will try to see if i can 
  enhance your code of the single stock correlation exploration.
   
  thanks,
   
  dirk
   
   
   
  <BLOCKQUOTE 
  >
    ----- Original Message ----- 
    <DIV 
    >From: 
    Herman 
    vandenBergen 
    To: <A title=amibroker@xxxxxxxxxxxxxxx 
    href="">amibroker@xxxxxxxxxxxxxxx 
    Sent: Tuesday, December 09, 2003 1:01 
    PM
    Subject: RE: [amibroker] CORRELATION 
    MATRIX: filter within loop ?
    
    <FONT face=Arial color=#0000ff 
    size=2>Forgot Yahoo doesn't attach 
    files anymore, here is the code:
    <FONT face=Arial color=#0000ff 
    size=2><SPAN 
    class=570355911-09122003> 
    <SPAN 
    class=570355911-09122003>// 
    THIS WILL ONLY WORK CORRECTLY EXPLORING THE CURRENT STOCK AGAINST 
    THE 
    // WATCHLIST SELECTED IN THE 
    GetCategorySymbols() !!!!!<FONT 
    face=Arial> // 
    Exploration to create Correlation matrix<FONT 
    size=2> <FONT 
    color=#ff0000>Buy=<FONT 
    color=#ff0000>Sell=<FONT 
    color=#ff0000>Short=<FONT 
    color=#ff0000>Cover=<FONT 
    color=#ff00ff>0<FONT 
    color=#000000>; LastBarInTest = <FONT 
    color=#0000ff>LastValue(<FONT 
    color=#0000ff>ValueWhen(<FONT 
    color=#0000ff>Status(<FONT 
    color=#ff00ff>"LastBarInTest"),<FONT 
    color=#0000ff>BarIndex<FONT 
    face=Arial>())); <FONT 
    color=#ff0000>Filter = 
    Status(<FONT 
    color=#ff00ff>"LastBarInTest"<FONT 
    face=Arial>); list = <FONT 
    color=#0000ff>GetCategorySymbols( <FONT 
    color=#ff0000>categoryWatchlist, 
    0<FONT 
    face=Arial> ); <FONT 
    color=#ff0000>for( 
    NumTickers=0; 
    NumTickers < 100 
    AND 
    StrExtract( list, 
    NumTickers ) != ""<FONT 
    size=2>; NumTickers++ ); 
    IIf<FONT 
    color=#000000>(C<FONT 
    color=#000000>>50<FONT 
    color=#000000>,AddTextColumn<FONT 
    color=#000000>(Name<FONT 
    color=#000000>(),"Ticker"<FONT 
    color=#000000>,1.0<FONT 
    color=#000000>),0<FONT 
    size=2>); <FONT 
    color=#ff0000>for( 
    Col=0<FONT 
    face=Arial>; Col<NumTickers; Col++) { 
    Ticker1 = Name<FONT 
    size=2>(); Ticker2 = 
    StrExtract<FONT 
    face=Arial>( list, Col); Var1 = <FONT 
    color=#0000ff>Foreign(Ticker1,<FONT 
    color=#ff00ff>"C"<FONT 
    color=#000000>); Var2 = <FONT 
    color=#0000ff>Foreign(Ticker2,<FONT 
    color=#ff00ff>"C"<FONT 
    color=#000000>); Corr = <FONT 
    color=#0000ff>Correlation( Var1, Var2, 
    8<FONT 
    face=Arial> ); Color = <FONT 
    color=#0000ff>IIf(Corr==<FONT 
    color=#ff00ff>1,<FONT 
    color=#ff0000>colorBlack<FONT 
    color=#000000>,IIf<FONT 
    color=#000000>(Corr<-0.8<FONT 
    color=#000000>,<FONT 
    color=#ff0000>colorRed<FONT 
    color=#000000>,IIf<FONT 
    color=#000000>(Corr<-0.5<FONT 
    color=#000000>,<FONT 
    color=#ff0000>colorOrange<FONT 
    color=#000000>,IIf<FONT 
    color=#000000>(Corr<-0.2<FONT 
    color=#000000>,<FONT 
    color=#ff0000>colorLightOrange<FONT 
    color=#000000>,IIf<FONT 
    color=#000000>(Corr<0.2<FONT 
    color=#000000>,<FONT 
    color=#ff0000>colorCustom9<FONT 
    color=#000000>,IIf<FONT 
    color=#000000>(Corr<0.5<FONT 
    color=#000000>,<FONT 
    color=#ff0000>colorAqua<FONT 
    color=#000000>,IIf<FONT 
    color=#000000>(Corr<0.8<FONT 
    color=#000000>,<FONT 
    color=#ff0000>colorBrightGreen<FONT 
    color=#000000>,<FONT 
    color=#ff0000>colorGreen<FONT 
    size=2>))))))); <FONT 
    color=#ff0000>if( 
    Corr[LastBarInTest] > 0.75<FONT 
    color=#000000> ) AddColumn<FONT 
    color=#000000>( Corr, Ticker2, 1.3<FONT 
    color=#000000>, 1<FONT 
    color=#000000>, Color); } 
    
    <FONT face=Arial color=#0000ff 
    size=2> 
    <FONT face=Arial color=#0000ff 
    size=2>
    
    
    <FONT face=Arial color=#0000ff 
    size=2>I think you have a problem doing this when 
    correlating one watchlist against another watchlist because the table 
    would have to be completed to know which column would have to be displayed. 
    However you can do this using the OSAKA table DLL but that is beyond my 
    programming capability :-)
    <FONT face=Arial color=#0000ff 
    size=2> 
    <FONT face=Arial color=#0000ff 
    size=2>When testing only the current stock against a watchlist you 
    can use the code attached. Note two lines were 
    added/modified:
    <FONT face=Arial color=#0000ff 
    size=2> 
    LastBarInTest = 
    LastValue(<FONT 
    color=#0000ff>ValueWhen(<FONT 
    color=#0000ff>Status(<FONT 
    color=#ff00ff>"LastBarInTest"),<FONT 
    color=#0000ff>BarIndex())); 
    
    <FONT face=Arial 
    size=2>....
    <FONT 
    color=#ff0000>if( Corr[LastBarInTest] > 
    0.75 ) <FONT 
    color=#0000ff>AddColumn( Corr, Ticker2, 
    1.3, <FONT 
    color=#ff00ff>1, Color); 
    
    <FONT face=Arial 
    size=2> 
    <FONT face=Arial 
    size=2>herman.
    
      <FONT face=Arial 
      size=2>-----Original Message-----From: dirk schreiber 
      [mailto:tianatrading@xxxxxxxxx]Sent: December 9, 2003 7:01 
      PMTo: amibrokerSubject: [amibroker] CORRELATION 
      MATRIX: filter within loop ?
      does anybody know how to filter 
      within loops?
       
      i'm still playing around with 
      the very nice CORRELATION MATRIX that came out of a group effort last 
      month.
      while visually it's nice to 
      look at, i am having trouble trying to expand upon its functionality. 
      
      i would like to be able to set 
      a filter within the loop so that the matrix only shows those pairs with a 
      correlation of higher than 0.75 for example. i have tried using 
      "addcolumn(iif ...." and "iif( ... addcolumn" but that did not work. i 
      understand that the for-loop overrides any filter within the loop? 
      
      a question closely related is, 
      i think, if it is possible to modify the code so that the correlation of 
      any ticker would not be calculated against itself, because filtering 
      within the matrix (if possible) for high correlation would not 
      work, as every row has one incident of a perfect correlation of 1 
      (its own correlation).
      below is a 
      modified version of the code.
       
      hope i made myself 
      clear,
       
      any help 
      appreciated,
       
      dirk
       
      
      // Exploration to create Correlation matrix
      Buy<FONT face=Arial 
      size=2>=Sell=Short=Cover=<FONT 
      color=#ff00ff>0; 
      Filter = 
      Status(<FONT 
      color=#ff00ff>"LastBarInTest"); 
      list = <FONT 
      color=#0000ff>GetCategorySymbols( categoryWatchlist, <FONT 
      color=#ff00ff>3 );
      for( 
      NumTickers=0; NumTickers < 100 
      AND StrExtract( list, NumTickers ) != 
      ""; NumTickers++ ); <FONT 
      color=#0000ff>
      IIf<FONT face=Arial 
      size=2>(C>50,<FONT 
      color=#0000ff>AddTextColumn(Name(),<FONT 
      color=#ff00ff>"Ticker",1.0),<FONT 
      color=#ff00ff>0); 
      for( 
      Col=0; Col<NumTickers; Col++) 
      { 
      Ticker1 = Name(); 
      
      Ticker2 = <FONT 
      color=#0000ff>StrExtract( list, Col); 
      Var1 = <FONT 
      color=#0000ff>Foreign(Ticker1,"C"); 
      
      Var2 = <FONT 
      color=#0000ff>Foreign(Ticker2,"C"); 
      
      Corr = Correlation( 
      Var1, Var2, 8 ); 
      Color = <FONT 
      color=#0000ff>IIf(Corr==<FONT 
      color=#ff00ff>1,colorBlack,<FONT 
      color=#0000ff>IIf(Corr<-<FONT 
      color=#ff00ff>0.8,colorRed,<FONT 
      color=#0000ff>IIf(Corr<-<FONT 
      color=#ff00ff>0.5,colorOrange,<FONT 
      color=#0000ff>IIf(Corr<-<FONT 
      color=#ff00ff>0.2,colorLightOrange,<FONT 
      color=#0000ff>IIf(Corr<<FONT 
      color=#ff00ff>0.2,colorCustom9,<FONT 
      color=#0000ff>IIf(Corr<<FONT 
      color=#ff00ff>0.5,colorAqua,<FONT 
      color=#0000ff>IIf(Corr<<FONT 
      color=#ff00ff>0.8,colorBrightGreen,colorGreen))))))); 
      
      AddColumn( 
      Corr, Ticker2, 1.3, <FONT 
      color=#ff00ff>1, Color); 
      } <FONT face=Arial 
      size=2>Send BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
      suggest@xxxxxxxxxxxxx-----------------------------------------Post 
      AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
      <FONT 
      face=Arial 
      size=2>http://groups.yahoo.com/group/amiquote/messages/)<FONT 
      face=Arial size=2>--------------------------------------------Check 
      group FAQ at: <A 
      href=""><FONT 
      face=Arial 
      size=2>http://groups.yahoo.com/group/amibroker/files/groupfaq.html<FONT 
      face=Arial size=2> Your use of Yahoo! Groups is subject to the 
      Yahoo! Terms of 
      Service. 
      
      
      Do you Yahoo!?<A 
      href=""><FONT face=Arial 
      size=2>Protect your identity with Yahoo! Mail 
    AddressGuardSend 
    BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
    suggest@xxxxxxxxxxxxx-----------------------------------------Post 
    AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
    <FONT 
    face=Arial 
    size=2>http://groups.yahoo.com/group/amiquote/messages/)<FONT 
    face=Arial size=2>--------------------------------------------Check 
    group FAQ at: <A 
    href=""><FONT 
    face=Arial 
    size=2>http://groups.yahoo.com/group/amibroker/files/groupfaq.html<FONT 
    face=Arial size=2> Your use of Yahoo! Groups is subject to the 
    Yahoo! Terms of 
    Service. Send BUG REPORTS to 
    bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
    suggest@xxxxxxxxxxxxx-----------------------------------------Post 
    AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
    <A 
    href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
    group FAQ at: <A 
    href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
    Your use of Yahoo! Groups is subject to the <A 
    href="">Yahoo! Terms of Service. 
    Send 
  BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
  suggest@xxxxxxxxxxxxx-----------------------------------------Post 
  AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A 
  href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
  group FAQ at: <A 
  href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
  Your use of Yahoo! Groups is subject to the <A 
  href="">Yahoo! Terms of Service. 

  
  
  Do you Yahoo!?Protect 
  your identity with Yahoo! Mail AddressGuard






Yahoo! Groups Sponsor


  ADVERTISEMENT 









Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html



Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.




Do you Yahoo!?
Protect your identity with Yahoo! Mail AddressGuard