Graham, I wanted to close the loop (no pun intended) on my previous problem. It seems that if I remove the line: osInitialize(); from my indicator file, the problem of the disappearing/re-appearing plot is solved. I am speculating that the Osaka plug-in did not like getting re- initilaized each time the indicator formula was executed. It works very nicely now. Anyway, I wanted to pass this on to you and the rest who offered to help...
best regards, Tom --- In amibroker@yahoogroups.com, Graham <[EMAIL PROTECTED]> wrote: > > Just a general note, if one of the symbols does not have a bar on a certain > date but the rest do it can cause problems > I find it better to use datetime, or datenum if only end of day, for the bar > identification instead of barindex > > -- > Cheers > Graham > AB-Write >< Professional AFL Writing Service > Yes, I write AFL code to your requirements > http://www.aflwriting.com > > On 11/01/07, trb0428 <[EMAIL PROTECTED]> wrote: > > > > I have almost got his working except for the following: the indicator > > that I am plotting disappears and re-appears on alternating clicks of > > my mouse ???? I have tried hardcoding numbers in place of Barcount > > and I have tried adding the line : SetBarsRequired(10000,10000); but > > with no difference. I am first creating and storing a ranked and > > sorted list of 200 stocks using the following (AFL_File#1), which I > > am confident is working properly and not part of the problem. This > > stores my ranked and sorted list in a binary file. I then use > > (AFL_File#2) in an indicator window and it succesfully retrieves the > > data I want to plot from the binary file but the plotted indicator > > diasppears and comes back with each mouse click. Any ideas on how I > > can prevent this? > > Thanks, > > Tom > > > > //AFL_File#1 > > osInitialize(); > > List = GetCategorySymbols(categoryWatchlist, 10); > > table=osTabCreate(); > > osTabAddColumn( "Ticker", 2, table, 25 ); > > > > for( j = 0; j <= BarCount-1; j++ ) > > { > > osTabAddColumn( "Score"+j, 1, table ); > > osTabAddColumn( "rank"+j, 1, table ); > > } > > for(i=0; ( ticker = StrExtract( List, i ) ) != ""; i++) > > { > > SetForeign(ticker); > > osTabSetString( ticker, i, 0, table ); > > for( j = 0; j <= BarCount-1; j++) > > { > > osTabSetNumber( score[j] = LastValue(Ref(((ROC(C,5) + ROC(C,15) + > > ROC (C,25) + ROC(C,35)) / 4),-BarCount+1+j)) , i, 2 * j + 1, table ); > > > > } > > } > > RestorePriceArrays(); > > for( j = 0; j <= BarCount-1; j++) > > { > > osTabSort( table, 2 * j + 1, False ); //score > > for(n = 0; n<= i -1; n++) > > { > > osTabSetNumber(n+1,n,2 * j + 2,table); //rank > > } > > } > > osTabSort( table, 0 , True ); // reorder by ticker# > > osTabSave("Rank_and_sort.bin",table); > > osTabDelete( table ); > > > > //AFL_File#2 > > osInitialize(); > > table2 = osTabCreate(); > > > > osTabLoad("Rank_and_sort.bin", table2 ); > > for( j = 0; j <= BarCount-1; j++) > > { > > ID1[j] = osTabGet(0, 2 * j + 2, table2); > > } > > osTabDelete( table2 ); > > > > Plot(ID1, "!ID1 rank", colorRed ); > > > > > > > > > > --- In amibroker@yahoogroups.com, "trb0428" <tombrowne34@> wrote: > > > > > > Graham, > > > > > > Thanks. I find the sorting and ranking within the Osaka routines to > > > be very fast. I am going to try saving a binary version of the > > table > > > created using Osaka and then from within my indicator code recall > > and > > > load the table into memory and index into it for just the rank of > > the > > > ticker I have displayed in my chart therfore only needing to create > > > one array instead of 200 which I think (hope?) I can do. I think I > > > should then be able to plot this without incurring a performance > > > penalty.....thanks for your help. > > > > > > regards, > > > Tom > > > > > > --- In amibroker@yahoogroups.com, Graham <kavemanperth@> wrote: > > > > > > > > If you need the value for every bar then you will need to run the > > > ranking > > > > for every bar, including creating the data files for every bar. > > ie > > > within a > > > > loop > > > > There are some sort and rank AFL in a library that allow similar > > > ranking > > > > using staticvarget, but again these will need changing to within > > a > > > loop to > > > > get the ranked values for every bar. > > > > Just remember that sorting symbols against each other will slow > > the > > > > execution down by a very large amount, the more symbols and more > > > bars > > > > included will determine the boredom time you will encounter > > > > > > > > -- > > > > Cheers > > > > Graham > > > > AB-Write >< Professional AFL Writing Service > > > > Yes, I write AFL code to your requirements > > > > http://www.aflwriting.com > > > > > > > > > > > > On 11/01/07, trb0428 <tombrowne34@> wrote: > > > > > > > > > > Hi Graham, > > > > > > > > > > I am using the Osaka plugin to rank and sort a list of stocks. > > > > > From this, I am trying to create an indicator which will > > display > > > the > > > > > rank of the stock for each bar. I have 200 symbols that I am > > > sorting > > > > > and rankng. > > > > > > > > > > Below is the code I am using to read from the Osaka table into a > > > > > single array ( only works for one ticker). I was hoping to be > > > able to > > > > > create (dynamically) the 200 arrays I need to hold the rank > > > numbers > > > > > for each day for the 200 tickers using something within the > > loop > > > like: > > > > > > > > > > myarray = "ID"+n; > > > > > myarray = ID; > > > > > > > > > > but I know this doesn't work. > > > > > > > > > > Can I accomplish this with VarSet/VarGet as you suggest? > > > > > > > > > > > > > > > for (n = 0; n<= tickers-1; n++) //n is the rows representing > > > tickers > > > > > { > > > > > > > > > > for( j = period-1; j <= BarCount-1; j++) // j*2+2 holds > > the > > > rank > > > > > { > > > > > ID[j] = osTabGet( n, 2 * j + 2, mytable ); > > > > > > > > > > } > > > > > myarray = "ID"+n; // <-- this does not work > > > > > myarray = ID; // <-- this does not work > > > > > } > > > > > > > > > > Thanks, > > > > > Tom > > > > > > > > > > > > > > > --- In amibroker@yahoogroups.com, Graham <kavemanperth@> wrote: > > > > > > > > > > > > Tom > > > > > > Exactly what are you trying to achieve? What are the arrays ? > > > > > > btw Varset is an array, staticvarset is a single value > > > > > > > > > > > > > > > > > > VarSet("Close",C); > > > > > > Plot(VarGet("Close"),"Close",colorBlue,styleLine); > > > > > > > > > > > > > > > > > > -- > > > > > > Cheers > > > > > > Graham > > > > > > AB-Write >< Professional AFL Writing Service > > > > > > Yes, I write AFL code to your requirements > > > > > > http://www.aflwriting.com > > > > > > > > > > > > On 11/01/07, trb0428 <tombrowne34@> wrote: > > > > > > > > > > > > > > Ara, > > > > > > > > > > > > > > My goal is to plot the data. I do not see how I can use this > > > > > > > structure to plot? Is there a way to store this element by > > > element > > > > > > > data into an artificial ticker symbol. I have thought of > > > > > > > impplementations using ATC but cannot arrive at a solution > > > this > > > > > way??? > > > > > > > Is there any other way to store this data? > > > > > > > > > > > > > > Thanks for your suggestions. > > > > > > > > > > > > > > regards, > > > > > > > Tom > > > > > > > > > > > > > > > > > > > > > --- In amibroker@yahoogroups.com, "Ara Kaloustian" <ara1@> > > > wrote: > > > > > > > > > > > > > > > > Use VarSet() and VarGet() functions. These are non array > > > > > elements, > > > > > > > but you > > > > > > > > can create them dynamically so you can set and read them > > in > > > a > > > > > loop > > > > > > > as array > > > > > > > > elements. > > > > > > > > > > > > > > > > for (i=1; i<10; i++) > > > > > > > > { > > > > > > > > //create element name > > > > > > > > Array_element = "Arr_item" + i; > > > > > > > > VarSet(Array_element,desired_value); > > > > > > > > } > > > > > > > > > > > > > > > > x = VarGet("Arr_item1"); > > > > > > > > > > > > > > > > ----- Original Message ----- > > > > > > > > From: "trb0428" <tombrowne34@> > > > > > > > > To: <amibroker@yahoogroups.com> > > > > > > > > Sent: Tuesday, January 09, 2007 1:39 PM > > > > > > > > Subject: [amibroker] Are dynamic arrays possible in AB? > > > > > > > > > > > > > > > > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > I have a need to create arrays dynamically. Is this > > > possible? > > > > > I > > > > > > > have > > > > > > > > > tried several ways including the following but without > > > > > success: > > > > > > > > > > > > > > > > > > > > > > > > > > > for (n = 0; n<= tickers-1; n++) > > > > > > > > > { > > > > > > > > > > > > > > > > > > for( j = period-1; j <= BarCount-1; j++) > > > > > > > > > { > > > > > > > > > > > > > > > > > > ID[j] = osTabGet( n, 2 * j + 2, mytable ); > > > > > > > > > > > > > > > > > > } > > > > > > > > > myarray = "ID"+n; > > > > > > > > > myarray = ID; > > > > > > > > > } > > > > > > > > > > > > > > > > > > Tom > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 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 > > > > > > > > >