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

Re: [amibroker] Re: Projecting prices


  • Date: Thu, 11 Feb 2010 20:07:07 -0500
  • From: "Steve Dugas" <sjdugas@xxxxxxxxxxx>
  • Subject: Re: [amibroker] Re: Projecting prices

PureBytes Links

Trading Reference Links

Hi - What did you have in mind?  Fred can correct me if I'm wrong, but I 
always imagined it was written for someone who wanted to trade at the close 
but only gets EOD data. By the time you do the nightly data download and see 
a new signal, the markets are closed and you can only trade NDO. With this 
code you can predict the price needed to trigger a signal, then put on CNBC 
or QuoteTracker to see if your price point has been met and trade just prior 
to today's close. For backtests, just set trade price to close and trade 
delay to zero, you should only need to predict the price for real-time 
trading.

Steve

----- Original Message ----- 
From: "mbausys" <mbausys@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Thursday, February 11, 2010 4:10 PM
Subject: [amibroker] Re: Projecting prices


>
>
> Thanks a lot for posting this. I'd like to ask how it would be possible to 
> use this process in a backtest procedure as it only determines a required 
> price for tomorrow. Please correct me if I'm wrong.
>
>
> 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
>
>
>
> 




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

**** 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/