On US stocks you can get real opening price now with getrtdata("open",symbol); and then store it in a static variable, but not for canadian for example.
Your code would return an array not the today's opening, and in case a stock trades later than the official opening time, it would return the previous opening till the first actual trade, even using lastvalue. I tried to scan my list of stocks and store the first last price when totalvolume is greater than zero, but even lowering the refreshing time to zero, it doesn't seem to be quite accurate, so I was hoping that AB stores all actual trades, and to retrieve the open price of the bar with the correct date, but the problem is that AB doesn't store a date for each bar, but rather use a single datenum for all symbols. Using foreign with the hole fixing off, I should get null for the last value if it is empty, but it doesn't seem to work. May be i am not referencing to a long enough symbol, and the hole fixing is not working properly. Thank you for you comment Regards Ly --- In amibroker@yahoogroups.com, "Jerry Gress" <[EMAIL PROTECTED]> wrote: > > Hello, > > On us stocks and IB I use: > > SetForeign("JPM-NYSE",True); > Xyz = TimeFrameGetPrice("O",inDaily,1); > > Then do what you want with the open > > RestorePriceArrays(); > > > Works for me, uses lots of cpu. That "O" is Open. > > Hope this helps, can't remember how I got it, apologies if copied, maybe TJ > helped on it?? > > Regards, > > Jerry Gress > Stockton, Ca. > > > -----Original Message----- > From: amibroker@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf > Of loveyourenemynow > Sent: Wednesday, July 23, 2008 9:52 AM > To: amibroker@yahoogroups.com > Subject: [amibroker] how to simulate open price > > Hello, > > for some products such as Canadian and European stocks, open price is > not provided by IB. > What s the best way to get it in real time? > I tried lastvalue(foreign(symbol,"o",0)) in day compression but it > doesn t work properly, even using a perfect the reference symbol. > The problem is that not all stock open at the same time, so I need to > make sure the lastvalue is not from the previous day. > I tried something like valuewhen(datenum()==today), but datenum is > refered to the cuurent symbol not the foreign so it doesn work either. > How can it be retrieved directly the datenum and timenum of a given > bar of a foreign symbol? > > Thanks > Ly > > > ------------------------------------ > > 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 NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: > http://www.amibroker.com/devlog/ > > For other support material please check also: > http://www.amibroker.com/support.html > Yahoo! Groups Links >