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

[amibroker] Re: Projecting prices


  • Date: Thu, 11 Feb 2010 21:04:44 -0000
  • From: "mbausys" <mbausys@xxxxxxxxx>
  • Subject: [amibroker] Re: Projecting prices

PureBytes Links

Trading Reference Links

Thanks a lot for posting this. I'd like to ask how it would be possible to make the process work in a backtest procedure as now it only determines a required price value for tomorrow.


Regards,

Marius

--- In amibroker@xxxxxxxxxxxxxxx, "Ara Kaloustian" <ara1@xxx> wrote:
>
> Thanks Steve
> 
> A
>   ----- Original Message ----- 
>   From: Steve Dugas 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Monday, April 10, 2006 10:53 AM
>   Subject: Re: [amibroker] Projecting prices
> 
> 
>   Hi Ara,
> 
>   Your question rang a bell with me, so I searched my saved e-mails and found this code that Fred was kind enough to post a couple of years ago. Maybe it will be helpful for you?
> 
>   Steve
> 
>   // *********************************************** 
>   //
>   // 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 ...
>   //
>   // 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 = 65;
>   //
>   **************************************************************
>   ***************
> 
>   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);
> 
>     ----- Original Message ----- 
>     From: Ara Kaloustian 
>     To: amibroker@xxxxxxxxxxxxxxx 
>     Sent: Monday, April 10, 2006 1:08 PM
>     Subject: Re: [amibroker] Projecting prices
> 
> 
>     thanks Bob,
> 
>     I had temporarily come to the same conclusion but realized that for my particular application I already have the high and low prices ... just need to calculate the close. 
> 
>     My application is to use historical data for backtest and figure out a way to make it equivalent to using real time data by calculating the exact price required to produce a signal, obviously within  the exixting price range.
> 
>     It's a clumsy solution since I will not be able to use the AB backtester, but useful (I think). It would be great if AB backtester could be used ... 
> 
>     So technically "projecting" prices in the subject line is a bit misleading for this case...
> 
> 
>     Ara
>       ----- Original Message ----- 
>       From: Bob Jagow 
>       To: amibroker@xxxxxxxxxxxxxxx 
>       Sent: Sunday, April 09, 2006 11:07 PM
>       Subject: RE: [amibroker] Projecting prices
> 
> 
>       An algebraic solution is possible only  for indicators dependent on a single price array.
>       That rules out CCI and Stochastics.
> 
>       Bob
>         -----Original Message-----
>         From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx]On Behalf Of Ara Kaloustian
>         Sent: Sunday, April 09, 2006 9:43 PM
>         To: AB-Main
>         Subject: [amibroker] Projecting prices
> 
> 
>         I am trying to figure out the required price to create a particular value of an indicator.
> 
>         Example: My CCI is at 50. I would get a signal if CCI reached 55.  What is the require value of price that would make CCI to rise to 55?
> 
> 
>         This kind of calculation can be used to anticipate a signal and allow us to place a conditional order for next day.
> 
>         I am looking for the formulae to accomplish this for CCI, Stochastics and MACD.
> 
>         The formulae should be bit of algebra, but rather time consuming to develop.
> 
>         Wonder if anyone has already worked on this issue before. 
> 
>         Appreciate any help
> 
>         ara
> 
> 
>     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..  Visit your group "amibroker" on the web.
>         
>       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. 
> 
> 
> ----------------------------------------------------------------------------
>




------------------------------------

**** IMPORTANT PLEASE READ ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

TO GET TECHNICAL SUPPORT send an e-mail directly to 
SUPPORT {at} amibroker.com

TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at
http://www.amibroker.com/feedback/
(submissions sent via other channels won't be considered)

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    amibroker-digest@xxxxxxxxxxxxxxx 
    amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/