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

Re: [amibroker] Re: Projecting prices


  • Date: Fri, 12 Feb 2010 12:17:27 -0500
  • From: "Steve Dugas" <sjdugas@xxxxxxxxxxx>
  • Subject: Re: [amibroker] Re: Projecting prices

PureBytes Links

Trading Reference Links

Hi - AB allows you to define BuyPrice, SellPrice, etc.  So if you have your 
signals defined as price crossing BB, couldn't you just say

BuyPrice = BBandTop() or whatever?

Steve

----- Original Message ----- 
From: "mbausys" <mbausys@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Friday, February 12, 2010 7:13 AM
Subject: [amibroker] Re: Projecting prices


> Steve,
>
> What I want to do with this code is for it to allow me enter a trade 
> exactly at the price which triggers a signal. In particular, I use 
> Bollinger Bands and want trades to be executed at the price at which it 
> equals Bollinger Bands. The price might then reverse and in EOD chart the 
> closing price would be inside Bollinger Bands. However, I would know that 
> the signal would have been generated intraday and I could have entered a 
> position. I'm not proficient with Amibroker coding yet so the required 
> twist might be very simple. Thank you for your help.
>
>
> Marius
>
> --- In amibroker@xxxxxxxxxxxxxxx, "Steve Dugas" <sjdugas@xxx> wrote:
>
>
>>
>> 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@xxx>
>> 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@> 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
>
>
>
> 




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

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