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

[amibroker] Portfolio Backtesting with Buy at Open and Sell at Close



PureBytes Links

Trading Reference Links




<SPAN 
class=796125719-31012004>d
<SPAN 
class=796125719-31012004>Thanks
Mr. 
Valley

  <FONT face=Tahoma 
  size=2>-----Original Message-----From: dingo 
  [mailto:dingo@xxxxxxxxxxxx]Sent: Saturday, January 31, 2004 12:55 
  PMTo: amibroker@xxxxxxxxxxxxxxxSubject: RE: [AmiBroker] 
  Re: Search Routine for Crossover Point -- EMA 
  VersionI've shortened all the lines - lets see if 
  Yahoo mangles this.d// 
  *********************************************** //// An all purpose 
  routine to find the price //      necessary to 
  move an indicator to a GOAL.//// This should work for virtually any 
  indicator,//      built in or otherwise.  
  It's demonstrated //      here using RSI & 
  BBand's ...//// Note: It will appear to use future 
  quotes//      because of the down shifting of 
  the//      price array, but obviously it 
  can't//      "know" tomorrows price.  
  There's //      probably a way to rectify this 
  but //      I was more concerned with the rest 
  //      of the process.//// The maximum 
  iterations have arbitrarily been //      set to 
  200 which is undoubtedly overkill //      as I've 
  yet to see anything take 200 even//      when 
  tolerance was set to 0 on datastreams //      
  with very high prices.//// For real usage the saving of i in j and 
  the//      accuracy calculation can be tossed as 
  they //      were only put in for demonstration 
  purposes //// 
  ***********************************************//// This Routine 
  requires the following things//// P0    = A price array 
  or synthetic//// Goal  = The goal value of the 
  indicator//// Acc   = An accuracy level for the 
  calculations////      Set this to the order 
  of magnitude //      that you want.  For 
  example if you want //      accuracy in 
  calculated price to within //      0.01 then set 
  it 0.01.  It can even //      be set to 0 
  which will force AB to //      calculate until it 
  can't find any //      further improvements 
  (Usually between//      150-170 iterations) but 
  this is semi//      useless as improvements 
  relative to //      price granularity have long 
  since //      been gone 
  by.////      The lower you set it the longer 
  it //      will take but it's pretty quick 
  //      (Usually between 15-30 iterations) 
  //      unless you set it at 
  0.//      // 
  ***********************************************////Note: Some goals 
  are virtually unattainable on//      the next 
  bar, especially on the downside//      as they 
  would require a negative price//      which is 
  what this routine will show if//      that is 
  what is required.//// 
  ***********************************************P0   = 
  C;Acc  = 0.0001;LVBI = LastValue(BarIndex());Mult = 
  1;//  ***********************************************//  
  Shift Price up by n orders of magnitude to make 
  //      it >= 1.  This is useful to 
  increase //      accuracy on very low priced 
  datastreams //      such as the JY.//  
  ***********************************************for (i = 0; i < 10; 
  i++){       if (P0[LVBI] >= 1) 
              i = 99; 
        else 
              Mult = 
  Mult * 10; } // 
  ***********************************************P1   = 
  Ref(P0, 1) * Mult;UpDn = 100 * P1[LVBI];for (i = 0; i < 200; 
  i++){// An example for finding price associated with // the 
  next bars BBandTop//// 
  ***********************************************// Put whatever indicator 
  you want to goal seek // here based on P1// 
  ***********************************************      
  Calc = P1;// ***********************************************// Put 
  whatever you want for the goal here ...//// The reason for putting it 
  in the loop is because // sometimes the goal is price oriented and will 
  // need to be recalculated on each iteration.// 
  ***********************************************      
  Goal = LastValue(BBandBot(P1, 14, 2));// 
  ***********************************************// An example for finding 
  price associated with // the next bars RSI value of 65//// 
  ***********************************************// Put whatever indicator 
  you want to goal seek //  here based on P1// 
  ***********************************************//      
  Calc = RSIa(P1, 14);// 
  ***********************************************// Put whatever you want 
  for the goal here ...// 
  ***********************************************//      
  Goal = 65;// ***********************************************//// 
  The reason for putting it in the loop is because // sometimes the goal is 
  price oriented and will // need to be recalculated on each 
  iteration.      if (Calc[LVBI] < 
  Goal)            
  P1[LVBI] = P1[LVBI] + UpDn;      
  else            
  P1[LVBI] = P1[LVBI] - UpDn;      UpDn = UpDn / 
  2;      if (UpDn <= 
  Acc)      
  {            j = 
  i;            i = 
  99999;      }}Accuracy = 100 * 
  (abs(Goal - Calc) / Goal);Filter = BarIndex() == 
  LVBI;AddColumn(Mult, "Multiplier", 1.0);AddColumn(Calc[LVBI - 1] / 
  Mult, "Curr Ind Val", 1.9);AddColumn(Goal / Mult, "Goal Ind Val", 
  1.9);AddColumn(Calc[LVBI] / Mult, "Calc Ind Val", 1.9);AddColumn(j, 
  "Iterations", 1.0);AddColumn(Accuracy, "Accuray (%)", 
  1.9);AddColumn(Ref(P1, -1) / Mult, "Todays Price", 1.9);AddColumn(P1 / 
  Mult, "Goal Price", 1.9);<FONT 
  face=Arial color=#0000ff 
  size=2> ________________________________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 
  Yahoo! Groups Sponsor      
  ADVERTISEMENTclick here<<A 
  href="">http://rd.yahoo.com/SIG=12c4a7l1n/M=267637.4116732.5333197.1261774/D=egroupweb/S=1705632198:HM/EXP=1075665006/A=1945637/R=0/*<A 
  href="">http://www.netflix.com/Default?mqso=60178397&partid=4116732> 
        <<A 
  href="">http://us.adserver.yahoo.com/l?M=267637.4116732.5333197.1261774/D=egroupmail/S=:HM/A=1945637/rand=716664957> 
        
  ________________________________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:      
  amibroker-unsubscribe@xxxxxxxxxxxxxxx<mailto:amibroker-unsubscribe@xxxxxxxxxxxxxxx?subject=Unsubscribe> 
          *      
  Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service<<A 
  href="">http://docs.yahoo.com/info/terms/> 
  . 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 
  
  
  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 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.