Thanks very much Tomasz (and Anthony),

I ran Tomasz code and it worked perfectly - I didn't realise that my code was 
so intensive.

Anyway, once again thanks for this great forum - saved me a lot of headache!

cheers

Ramon


--- In [email protected], Tomasz Janeczko <gro...@...> wrote:
>
> Hello,
> 
> I was trying to say that running it the way you do is inefficent. It is 
> more efficient to generate the output using Apply to:
> "All symbols".
> 
> Anyway your formula does NOT crash on my machine.  I used Quotes PLus as 
> data source,
> Windows 7 x64 and AmiBroker 4.29.6 (32-bit version).
> I run it and it took 3 seconds for 20 symbols.
> Generated output had 4246 rows and 22 columns.
> Memory consumption on my machine after running this exploration is just 
> 10MB for data
> and 30MB for all other data, so in total AmiBroker only used 40MB to run 
> this code.
> 
> Something is wrong with your computer (hardware).
> 
> Anyway the code below is written better (without code repetition, 
> unecessary multiple calls and all
> other bloat). Try this and you should not have any problems.
> 
> |*Filter* = 1;
> 
> tickers = 
> "INTU,VMED,JBHT,ADSK,LRCX,SIAL,BMC,MAT,MYL,QGEN,VOD,PCLN,CERN,NWSA,FSLR,ILMN,ORLY,WCRX,ADP";
>  
> 
> 
> 
> *for*( i = 0; ( ticker = StrExtract( tickers, i ) ) != ""; i++ )
> {
> SetForeign( Ticker );
> AddColumn( RSI( 2 ), Ticker, 1.2 );
> }|
> 
> Best regards,
> Tomasz Janeczko
> amibroker.com
> 
> On 2010-02-21 14:22, ramoncummins wrote:
> > Hi Thomasz, thanks for the speedy reply, v much appreciated.
> >
> > Please note that I am running the exploration code with ONLY SPY selected 
> > as the current symbol in AA - it does not use a filter at all, so your 
> > calculation is not correct. It is 1 Symbol (SPY) * Num Bars * 22 Columns.
> >
> > I am using EOD data, so the number_of_bars is approx 3000. I specifically 
> > want a matrix with dates down the side, and tickers across the top, with 
> > RSI2 EOD values in the cells - this would be a matrix 3000*20 = 60,000 
> > cells - easily handled in excel.
> >
> > I am fully aware of the standard way of running the code, that you mention 
> > below - however this does not create a matrix - it creates a list, which 
> > then has to be manually formatted for my purposes into a matrix. I plan on 
> > rolling this out on the full nasdaq 100, which would mean a list of 3000 * 
> > 100 Tickers = 300,000 rows and excel (2003) cannot handle that. It can 
> > however, handle a matrix of 3000 rows * 100 Columns quite easily, hence the 
> > requirement for the matrix.
> >
> > I am still stumped as to my original example, why running it on EOD data 
> > over 3000 bars * 20 Tickers would crash it.
> >
> > Normally, Amibroker would chew something like this up . . .
> >
> > Thanks again for your assistance
> >
> > Ramon
> >
> >
> > --- In [email protected], Tomasz Janeczko<groups@>  wrote:
> >    
> >> Hello,
> >>
> >> Hmm... you are not giving enough details therefore way too much is left
> >> for guessing
> >> Your formula should not crash, unless you are using some huge number of
> >> bars (1+ million?) but it is written inefficent and redundant. If you
> >> run your formula for 20 symbols and all bars (as you seem to be doing)
> >> you will create 20 rows * Number_of_bars * 22 columns (20 columns for
> >> symbols +name + date/time)  With say one million bars (number_of_bars)
> >> you will end up having 440 000 000 cells. This may be reason of running
> >> out of memory, not to mention that Excel won't take such table.
> >>
> >> It is *WAY* more efficient to do it right way, i.e. using the simple code:
> >>
> >> AddColumn( RSI( 2 ), "RSI", 1.2 );
> >> Filter = 1;
> >>
> >> and setting Apply to "ALL SYMBOLS".
> >>
> >> This will make AMiBroker iterate through all symbols and will be MUCH
> >> faster and LESS resource consuming than using your code. And you will
> >> end up with table having 20 rows * number_of_bars * 3 columns
> >> (name+date/time+rsi value),
> >> so with same one million bars under test you will have only 60 000 000
> >> cells (6 times less than your code).
> >>
> >>
> >> You mention the dates but you don't mention the INTERVAL? So data are
> >> from 1998 til now BUT...
> >> at what interval? EOD ? Intraday (1-hour?, 1 - minute ???).
> >>
> >> You need to keep in mind that if you are using 1-minute data, assuming 8
> >> trading hours per day gives 120000 bars per year and 12 years gives 1.44
> >> million bars. Each bar is 40 bytes. So each symbol intraday 1-minute
> >> data for 12 years back is about 60MB of data (for quotations alone). 20
> >> symbols put into cache would be 1.2 gigabyte for data alone. This added
> >> to nearly one billion cells generated by your formula (assuming that
> >> your data set is as large as I have been guessing here)
> >>
> >> Anyway use
> >> Tools->Performance Monitor
> >> to see free memory changes.
> >>
> >> Best regards,
> >> Tomasz Janeczko
> >> amibroker.com
> >>
> >> On 2010-02-21 12:40, ramoncummins wrote:
> >>      
> >>> Hi everyone,
> >>>
> >>> I am trying to extract RSI(2) data for a group of stocks since 1998, 
> >>> using an exploration. The aim is to end up with dates down the side, and 
> >>> all the tickers across the top, with respective RSI(2) values in the 
> >>> rows. (This is to be dumped into excel later).
> >>>
> >>> The code below works fine (and indeed very quickly) when you limit the 
> >>> number of stocks to the first ten or so, but when I run the exploration 
> >>> over 20 stocks, it freezes and amibroker crashes.
> >>>
> >>> In order to replicate, just take the code below and run the exploration 
> >>> on SPY ONLY between 1998 and Today. It should work fine. Then uncomment 
> >>> the second "batch" of tickers and run it - does this crash your machine? 
> >>> Any ideas as to why?
> >>>
> >>> I have searched the posts for answers but nothing has helped so far. I 
> >>> presume its a memory problem of some sort.
> >>>
> >>> Note that I have the following settings in preferences, Data tab:
> >>>
> >>> In-memory cache: 20 (I have tried 11 as well, per a post from Tomasz)
> >>> Max Megabytes: 800
> >>>
> >>> Any help greatly appreciated.
> >>>
> >>> Ramon
> >>>
> >>> //--------------------------------------------
> >>>
> >>> Filter = 1;
> >>>
> >>> function indicator( Ticker )
> >>> {
> >>>       SetForeign( Ticker );
> >>>       myRsi = RSI( 2 );
> >>>       RestorePriceArrays();
> >>>       return myRSI;
> >>>
> >>> }
> >>>
> >>> AddColumn( indicator( "INTU" ), "INTU", 1.2, 1 );
> >>> AddColumn( indicator( "VMED" ), "VMED", 1.2, 1 );
> >>> AddColumn( indicator( "JBHT" ), "JBHT", 1.2, 1 );
> >>> AddColumn( indicator( "ADSK" ), "ADSK", 1.2, 1 );
> >>> AddColumn( indicator( "LRCX" ), "LRCX", 1.2, 1 );
> >>> AddColumn( indicator( "SIAL" ), "SIAL", 1.2, 1 );
> >>> AddColumn( indicator( "BMC" ), "BMC", 1.2, 1 );
> >>> AddColumn( indicator( "MAT" ), "MAT", 1.2, 1 );
> >>> AddColumn( indicator( "MYL" ), "MYL", 1.2, 1 );
> >>> AddColumn( indicator( "QGEN" ), "QGEN", 1.2, 1 );
> >>>
> >>> // Uncomment below - does it crash your machine?
> >>> /*
> >>> AddColumn( indicator("VOD"), "VOD", 1.2, 1);
> >>> AddColumn( indicator("PCLN"), "PCLN", 1.2, 1);
> >>> AddColumn( indicator("CERN"), "CERN", 1.2, 1);
> >>> AddColumn( indicator("NWSA"), "NWSA", 1.2, 1);
> >>> AddColumn( indicator("FSLR"), "FSLR", 1.2, 1);
> >>> AddColumn( indicator("ILMN"), "ILMN", 1.2, 1);
> >>> AddColumn( indicator("ORLY"), "ORLY", 1.2, 1);
> >>> AddColumn( indicator("WCRX"), "WCRX", 1.2, 1);
> >>> AddColumn( indicator("ADP"), "ADP", 1.2, 1);
> >>> */
> >>>
> >>>
> >>>
> >>> ------------------------------------
> >>>
> >>> **** 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
> >
> >
> >
> >
> >
>


Reply via email to