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

RE: [amibroker] Re: Stock-Sensitivity Analysis of Composites



PureBytes Links

Trading Reference Links




<FONT face=Arial color=#0000ff 
size=2>DT, you misunderstood or perhaps I didn't explain properly: 

<FONT face=Arial color=#0000ff 
size=2> 
<FONT face=Arial color=#0000ff 
size=2>The collection of stocks traded is kept constant at 100, no 
stocks were ever removed (RFMD and ERICY were traded in all 
cases). S<SPAN 
class=280391911-31122003>tocks 
are only removed from the composite one at a time, they are NOT 
removed from the stocks traded. Removing certain stocks from the composite made 
a huge difference in profits.
<SPAN 
class=280391911-31122003><FONT face=Arial color=#0000ff 
size=2> 
<FONT face=Arial color=#0000ff 
size=2>herman

  <FONT face=Tahoma 
  size=2>-----Original Message-----From: DIMITRIS TSOKAKIS 
  [mailto:TSOKAKIS@xxxxxxxxx]Sent: December 31, 2003 6:40 
  PMTo: amibroker@xxxxxxxxxxxxxxxSubject: [amibroker] Re: 
  Stock-Sensitivity Analysis of CompositesHerman,It 
  may be strange at first sight but it is not.From the recently removed N100 
  stocks, RFMD and ERICY were in the 4digit profit list for many systems [by 
  far the best fit for many complicated indicators]. If a system runs at 
  +100% and RFMD runs, for the same period and settings, at +1500%, the 
  result of removing RFMD is obvious.<SPAN 
  class=280391911-31122003>  
  The profitability is not, IMO, the crucial criterion 
  for a group of stocks. <FONT 
  face=Arial color=#0000ff size=2>  The peaks 
  are more important. When they are sharp, then the directionality is here 
  and may give clear [and repetitive] signals.This [very important] property 
  was not affected by the recent change, not even the extended change one 
  year ago and may give a basis for important trading hints . A strong Sell 
  signal is more important from the [paper] profitability of a system over 
  100 or 500 stocks.Another interesting issue is the local peaks/troughs of 
  the composite equity line : Systems suffer from wrong timing sometimes, 
  causing troughs to the average equity. They also suffer from temporary 
  curve fitting, it is when we see [excellent] equity peaks. If this curve 
  fitting period is, by chance, the last two months, then the system 
  will present huge profits, without *any* guarantee for the next 6 
  months.That´s why I try to discover sharp signals.Dimitris 
  Tsokakis--- In amibroker@xxxxxxxxxxxxxxx, "Herman vandenBergen" 
  <psytek@xxxx> wrote:> Hello,> > It appears that 
  the removal of a single stock in your composite can make a> big 
  difference in system performance. The program below shows that 
  profits> can vary from 82% to 575% by just removing one single 
  stock from the> composite. I have found similar results in other 
  trading systems.> > You should replace the demo system's code, 
  found in the SystemUnderTest(),> with your own composite-using 
  system. You may also have to modify the type> of composites 
  created; for this example I used simple price composites while> you 
  may be using MeanRSI type of composites.> > You can open your 
  WorkSpace, select Candle or Bar style, and step through> the 
  composites to see in detail how the removal of single stocks effect 
  the> composite. The Symbol attached to the "~Comp" indentifies the 
  ticker that is> ommitted from the composite.> > While 
  this effect will vary for different systems it could, in some 
  case,> explain the "demise" of systems when ticker lists are 
  changed. If nothing> else it shows that nothing should be taken for 
  granted in systems design.> > herman.> > 
  /*>    Composite stock-sensitivity analysis - Herman van 
  den Bergen> 1) Set filter to the watchlist used to create 
  composite> 2) Set WatchlistNum in first line of code below to the same 
  watchlist number> 3) Set All Quotations and run Scan> 4) For 
  a normal test (full composite) set Range and run the 
  Old-Backtester> 5) To see how a single stock effects group 
  performance set Filter to> Watchlist selected earlier and run the 
  Old-Optimizer 6) To see how the> removal of one stock effects 
  individual equities run an Eploration> */> > 
  WatchListNum    = 0;> 
  Scan       = Status("Action")==3;> 
  BackTest   = Status("Action")==5;> Explore   = 
  Status("Action")==4;> List       = 
  GetCategorySymbols( categoryWatchlist, WatchListNum);> 
  InitialEquity   = 100000;> Filter    = 
  Status("LastBarInTest");> 
  SetOption("InitialEquity",InitialEquity);> 
  SetOption("NoDefaultColumns",True);> Buy=Sell=Short=Cover=0;> 
  > function SystemUnderTest( RemovedTicker )>    
  {>    Comp = 
  "~Comp"+RemovedTicker;>    // Create your own type of 
  composites below>    
  V=Foreign(Comp,"V");>    
  O=Foreign(Comp,"O")/V;>    
  H=Foreign(Comp,"H")/V;>    
  L=Foreign(Comp,"L")/V;>    
  C=Foreign(Comp,"C")/V;> >    // Substitute your 
  own composite-based system for the one below>    
  Sell=Cross( MACD(), Signal() );>    Buy = Cross( 
  Signal(), MACD() );>    
  Short=Sell;>    Cover=Buy;>    // 
  End trading system>    return 
  Equity(0);>    }> > if(Scan)> 
  {>    // Create normal 
  composite>    
  AddToComposite(1,"~Comp","V");>    
  AddToComposite(O,"~Comp","O");>    
  AddToComposite(H,"~Comp","H");>    
  AddToComposite(L,"~Comp","L");>    
  AddToComposite(C,"~Comp","C");> >    // Create 
  composites with one stock removed>    for( n=0; 
  (RemovedTicker=StrExtract( List, n))!= ""; n++)>    
  {>       if( RemovedTicker!= Name() 
  )>       
  {>       
  AddToComposite(1,"~Comp"+RemovedTicker,"V");>       
  AddToComposite(O,"~Comp"+RemovedTicker,"O");>       
  AddToComposite(H,"~Comp"+RemovedTicker,"H");>       
  AddToComposite(L,"~Comp"+RemovedTicker,"L");>       
  AddToComposite(C,"~Comp"+RemovedTicker,"C");>       
  }>    }> > } // End Scan> > 
  if(explore)> {> 
  AddTextColumn(Name(),"TradedTicker",1.0);> RefEquity = SystemUnderTest( 
  "" );> AddColumn(RefEquity,"NormalEquity",1.2);> 
  AddColumn(Null,"Removed->",1.0);> for( n=0; 
  (RemovedTicker=StrExtract( List, n))!= ""; n++)>    
  {>    NewEquity = SystemUnderTest( "~Comp"+RemovedTicker 
  );>    
  AddColumn(NewEquity,RemovedTicker,1.2);>    }> } 
  // End Explore> > if( BackTest )> 
  {>    for( n=0; (RemovedTicker=StrExtract( List, n))!= 
  ""; n++);>    RemovedTickerNum = 
  Optimize("RemovedStockNum",9999,0,n-1,1);>    
  RemovedTicker=StrExtract( List, RemovedTickerNum );>    
  if(RemovedTickerNum==9999) RemovedTicker = "";>    
  SystemUnderTest( RemovedTicker );> } // End 
  backtesSend 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 
  
  
  Yahoo! Groups Links
  
    To visit your group on the web, go to:<A 
    href="">http://groups.yahoo.com/group/amibroker/  

    To unsubscribe from this group, send an email to:<A 
    href="">amibroker-unsubscribe@xxxxxxxxxxxxxxx  

    Your use of Yahoo! Groups is subject to the <A 
    href="">Yahoo! Terms of Service. 
  


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








Yahoo! Groups Sponsor


  ADVERTISEMENT 









Yahoo! Groups Links
To visit your group on the web, go to:http://groups.yahoo.com/group/amibroker/ 
To unsubscribe from this group, send an email to:amibroker-unsubscribe@xxxxxxxxxxxxxxx 
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.