TA -

Debugging from afar can be tough, and I'm having a little trouble following 
what the results were when you ran the AFL with the for loop that I replied 
with.  You said - 

"If I scan only on the current symbol, It would only add that on symbol 
(although the trace statement shows all symbols were added)."

SO, let's take it one step at a time.  When you run the following program with 
some additional trace as a Scan on the Current Symbol from the AA window (not 
from JScript) -  what does it report in the trace on the first line, "Group = 
", and the last line, "Watchlist after = " ?

TickerList      = CategoryGetSymbols( categoryGroup, 253);
_TRACE( "Group = " + tickerlist );
for( i=0; (Ticker=StrExtract( TickerList, i)) != ""; i++)
{
  if ( StrLeft( ticker, 1 ) == "~" AND 
    StrLeft( ticker, 3 ) != "~~~" )
  {
    CategoryAddSymbol(ticker, categoryWatchlist, 61);
    _TRACE( "Added - " + ticker );
  }
}
_TRACE( "Watchlist after = " + CategoryGetSymbols( categoryWatchlist, 61 ) );
Buy=0;

If this works, then you can layer the JScript on it and debug further.

-- BruceR

--- In [email protected], "ta" <tagro...@...> wrote:
>
> Bruce
> 
> I tried the following code and it did not work. The issue is that if I
> select "current Symbol" it does not add any ticker to the watchlist. If I
> select  all tickers then it add all the correct symbols to the watchlist but
> it take 19 minutes. I understand your point that selecting "current symbol"
> should be sufficient because the afl code should retrieve from group 253 and
> then loop thru them. 
> 
>  
> 
> AB = new ActiveXObject("Broker.Application");
> 
> AB.LoadDatabase("c:\\Amibroker\\DataAIQRecon");
> 
> AB.Visible = true;
> 
>  
> 
> AA = AB.Analysis;
> 
> AA.ClearFilters();
> 
> AA.ApplyTo = 1; // use symbols
> 
> AA.RangeMode = 3; // Last Day
> 
>  
> 
> AA.LoadFormula("c:\\amibroker\\Formulas\\Addcomposite tickers to
> Watchlist.afl");
> 
> AA.Scan();
> 
>  
> 
> From: [email protected] [mailto:[email protected]] On Behalf
> Of Bruce
> Sent: Wednesday, September 30, 2009 11:26 AM
> To: [email protected]
> Subject: [amibroker] Re: Add addtocompiste generated ticker to a watchlist
> 
>  
> 
>   
> 
> TA -
> 
> I have to go out, so let me see if I can explain quickly.
> 
> 1. The AFL will add all symbols from group 253 that satisfy the condition.
> You only need to use the current symbol because the symbol loop is built
> into the AFL. If you want to run it again group 253, you would set the Apply
> To to Use Filter and the group to 253. If you did that, AA is looping
> through the symbols for you and you would only need -
> 
> if ( StrLeft( Name( ), 1 ) == "~" AND 
> StrLeft( Name( ), 3 ) != "~~~" )
> {
> CategoryAddSymbol( Name( ), catgorywatchlist, 61 );
> }
> 
> 2. See above for how to code what you expressed -
> 
> "I had the following two conditions is that all my composite tickers have
> one "~" as the first character in their symbol. I also want to exclude all
> equity tickers that have "~~~" as the first three characters in their
> symbols."
> 
> Note - this will process anything that begins with "~" including for
> example, "~ABC". This may or may not be what you want.
> 
> -- BruceR
> 
> --- In [email protected] <mailto:amibroker%40yahoogroups.com> , "ta"
> <tagroups@> wrote:
> >
> > Thanks Bruce. If I scan only on the current symbol, It would only add that
> > on symbol (although the trace statement shows all symbols were added). The
> > reason I had the following two conditions is that all my composite tickers
> > have one "~" as the first character in their symbol. I also want to
> exclude
> > all equity tickers that have "~~~" as the first three characters in their
> > symbols. TIA
> > 
> > 
> > 
> > if ((StrLeft(Name(),1)=="~") AND (StrLeft(Name(),2)!="~~"))
> > 
> > 
> > 
> > From: [email protected] <mailto:amibroker%40yahoogroups.com>
> [mailto:[email protected] <mailto:amibroker%40yahoogroups.com> ] On
> Behalf
> > Of Bruce
> > Sent: Wednesday, September 30, 2009 10:34 AM
> > To: [email protected] <mailto:amibroker%40yahoogroups.com> 
> > Subject: [amibroker] Re: Add addtocompiste generated ticker to a watchlist
> > 
> > 
> > 
> > 
> > 
> > Close. See changes and run the following as a SCAN on the CURRENT SYMBOL
> > only -
> > 
> > TickerList = CategoryGetSymbols( categoryGroup, 253);
> > for( i=0; (Ticker=StrExtract( TickerList, i)) != ""; i++)
> > {
> > if (StrLeft(ticker, 2)=="~~")
> > {
> > CategoryAddSymbol(ticker, categoryWatchlist, 61);
> > _TRACE( "Added - " + ticker );
> > }
> > }
> > Buy=0;
> > 
> > -- BruceR
> > 
> > --- In [email protected] <mailto:amibroker%40yahoogroups.com>
> <mailto:amibroker%40yahoogroups.com> , "ta"
> > <tagroups@> wrote:
> > >
> > > Since, I did not hear from anybody I assume that there is not a way. As
> a
> > > result I wrote the following code to read the addtocomposite created
> > tickers
> > > from group 253 and add them to watchlist 61. However, it takes about 19
> > > minutes to do this. Does anybody see a way to improve the speed of my
> > code?
> > > Perhaps Tomasz can comment on why this process is so slow? TIA
> > > 
> > > 
> > > 
> > > TickerList = CategoryGetSymbols( categoryGroup, 253); 
> > > for( i=0; (Ticker=StrExtract( TickerList, i)) != ""; i++) 
> > > { 
> > > if ((StrLeft(Name(),1)=="~") AND (StrLeft(Name(),2)!="~~")) 
> > > CategoryAddSymbol("", categoryWatchlist, 61); 
> > > } 
> > > 
> > > Buy=0;
> > > 
> > > 
> > > 
> > > From: [email protected] <mailto:amibroker%40yahoogroups.com>
> <mailto:amibroker%40yahoogroups.com>
> > [mailto:[email protected] <mailto:amibroker%40yahoogroups.com>
> <mailto:amibroker%40yahoogroups.com> ] On
> > Behalf
> > > Of ta
> > > Sent: Tuesday, September 29, 2009 9:56 PM
> > > To: [email protected] <mailto:amibroker%40yahoogroups.com>
> <mailto:amibroker%40yahoogroups.com> 
> > > Subject: [amibroker] Add addtocompiste generated ticker to a watchlist
> > > 
> > > 
> > > 
> > > 
> > > 
> > > I did not see a flag that would add a ticker created by addtocomposite
> > > function to a watchlist. Is there a way of doing this as the new tickers
> > are
> > > created? TA
> > >
> >
>


Reply via email to