Excellent...That makes perfect sense...the IF and FOR should work...it's the 
"active ticker" that held control...I'll try that tommorrow...Thanks for the 
exceptional explanation.

--- In [email protected], "Mike" <sfclimb...@...> wrote:
>
> To the original poster; It appears that you have a few misconceptions. I 
> apologize in advance if I have misread you.
> 
> 1. You are iterating through a list of symbol names. But, that does not have 
> any impact on the Buy and Sell arrays. The Buy and Sell arrays are still the 
> one and only Buy and Sell of the symbol upon which the chart is rooted (i.e. 
> the active symbol).
> 
> You are calculating the same Buy/Sell values over and over again. This is 
> likely why you are getting all or nothing. You're always only ever referring 
> to the Buy/Sell of the active symbol, regardless of which item in the list 
> you have iterated to.
> 
> You have not indicated where you calculated your ROC and RSI values, but they 
> probably are also based only on the active symbol.
> 
> 2. When you reference Buy[i], you are not referencing the Buy array of the 
> i'th symbol in the list, you are referencing the i'th bar in the Buy array of 
> the active symbol.
> 
> I don't have AmiBroker available to test. But, building on Tuzo's example, I 
> would suggest that you probably want to pass the name of the symbol to his 
> ShouldPlot function, then in the body of that function use SetForeign for 
> your calculations. The function would return an array.
> 
> e.g.
> 
> function ShouldPlot(symbol) {
> SetForeign(symbol);
> ROCt = ...;
> ROCc = ...;
> RSIt = ...;
> RSIc = ...;
> RestorePriceArrays();
> 
> Result = (ROCt > ROCc AND RSIt > RSIc);
> return Result;
> }
> 
> Similarly, your Plot statement would use the returned result of ShouldPlot, 
> masking out the plot when no trigger was found. Something like this:
> 
> for( i = 0; ( sym = StrExtract( SymbolList, i ) ) != ""; i++ ) {
>   ColorCode++;
> 
>   // wrap color codes if too many
>   if (ColorCode == colorTan) {
>     ColorCode = colorBrown;
>   }
> 
>   fc = Foreign(sym, "Close");
>   Change = 100 * ( fc - fc[ fvb ] )/ fc[ fvb ];
>   Plot(IIF(ShouldPlot(sym), Change, Null), sym, ColorCode, styleLine);
> }
> 
> As Tuzo indicated, the actual lines plotted would vary bar by bar. But that 
> appears to be what you wanted.
> 
> Mike
> 
> --- In [email protected], "tuzo_wilson" <j.tuzo.wilson@> wrote:
> >
> > 
> > --- In [email protected], "gmorlosky" <gmorlosky@> wrote:
> > >
> > > Okay - I have gone over the array info and I think I'm doing this
> > right, But here it is step by step;
> > 
> > That's a bit more organized.  :)
> > 
> > The only question I have is around step 4.  How do you know if a ticker
> > is a "Buy".  Is it if it meets some conditions for the visible bars or
> > is it for all time or some other date/time range or something else?  If
> > it is on visible bars, the behavior might be a bit odd because as you
> > scroll symbols could be appearing and disappearing.
> > 
> > Here's something that will take a watch list as a parameter and plot the
> > relative performance of all symbols in the watch list if it meets a
> > criteria.  Just modify ShouldPlot to return true or false depending on
> > your specific logic.
> > 
> > 
> > 
> > _SECTION_BEGIN("RelativePerformance");
> > 
> > 
> > 
> > function ShouldPlot(price)
> > 
> > {
> > 
> >     //TODO: Implement logic
> > 
> >     return True;
> > 
> > }
> > 
> > 
> > 
> > function GetWatchListSymbols(watchListName)
> > 
> > {
> > 
> >     wlNumber = CategoryFind(watchListName, categoryWatchlist );
> > 
> >     return CategoryGetSymbols(categoryWatchlist, wlNumber );
> > 
> > }
> > 
> > 
> > 
> > SetChartOptions(0,chartShowArrows|chartShowDates);
> > 
> > 
> > 
> > WatchListName = ParamStr("Watch List Name","RelStrength");
> > 
> > 
> > 
> > SymbolList = GetWatchListSymbols(WatchListName);
> > 
> > 
> > 
> > fvb = Status("firstvisiblebar");
> > 
> > 
> > 
> > ColorCode = colorBrown;
> > 
> > 
> > 
> > for( i = 0; ( sym = StrExtract( SymbolList, i ) ) != ""; i++ )
> > 
> > {
> > 
> >     fc = Foreign(sym, "Close");
> > 
> > 
> > 
> >     if (ShouldPlot(fc))
> > 
> >     {
> > 
> >         ColorCode++;
> > 
> > 
> > 
> >         // wrap color codes if too many
> > 
> >         if (ColorCode == colorTan)
> > 
> >         {
> > 
> >            ColorCode = colorBrown;
> > 
> >         }
> > 
> > 
> > 
> >         Plot( 100 * ( fc - fc[ fvb ] )/ fc[ fvb ], sym, ColorCode,
> > styleLine);
> > 
> >     }
> > 
> > }
> > 
> > 
> > 
> > _N( Title = "{{NAME}} {{DATE}} - Relative Performance [%]: {{VALUES}}"
> > );
> > 
> > 
> > 
> > _SECTION_END();
> > 
> > 
> > Tuzo
> > 
> > > 1. Deteremine BUY based on criteria and assign value of 1 else 0.
> > (works fine)
> > > 2. Determeine SELL based on criteria and assign value of -1 else
> > 0.(works fine - these values are now stored in the array)
> > > 3. From a given list (example: IndustryID() == 4) (the StrExtract
> > works fine).
> > > 4. PLOT only those tickers that meet BUY. (I get all or none)
> > > 5. Plot each ticker in a different color, in the same pane, hence the
> > inner loop. (the colors plot fine)
> > >
> > > Basically it is the Relative Performance indicator, with a BUY
> > criteria and StrExtract from any given list (sector, Industry, watch,
> > etc.), because of the multiple plots, Foreign is used.
> > >
> > >
> > >
> > > --- In [email protected], dingo waledingo@ wrote:
> > > >
> > > > write it out step by step in English.  I'm not uderstanding what you
> > want to
> > > > do.
> > > >
> > > > d
> > > >
> > > > On Thu, May 7, 2009 at 4:37 PM, gmorlosky gmorlosky@ wrote:
> > > >
> > > > > Thanks - clearly I got something backwards - while I study arrays,
> > do you
> > > > > have an example of code similar to this that works, to help me
> > understand ?
> > > > > I just want to loop through certain tickers that pass some formula
> > first.
> > > > > Basically a loop inside a loop.
> > > > >
> > > > >
> > > > > --- In [email protected], dingo <waledingo@> wrote:
> > > > > >
> > > > > > You've got a basic misunderstanding of loops and arrays.  In AFL
> > You
> > > > > > shouldn't have arrary operators like IIF inside a loop.
> > > > > >
> > > > > > You need to go back an reread the help file on arrays.
> > > > > >
> > > > > > d
> > > > > >
> > > > > >
> > > > >  > On Thu, May 7, 2009 at 3:32 PM, gmorlosky <gmorlosky@> wrote:
> > > > > >
> > > > > > > Seriously - it works nicely, except for that one line of code.
> > > > > > >
> > > > > > > Any other thoughts
> > > > > > >
> > > > > > > --- In [email protected], Aron <aron.groups@> wrote:
> > > > > > > >
> > > > > > > > everything..
> > > > > > > >
> > > > > > > > gmorlosky wrote:
> > > > > > > > > In the line ~9 "if(Buy[i] >= 0", if I change that to 1,
> > which is
> > > > > equal
> > > > > > > to a Buy, I get no Plots, even though the Explore shows 1s for
> > half the
> > > > > > > tickers, else with 0, I get all plots. What is wrong ?
> > > > > > > > >
> > > > > > > > > NumBars = 20;
> > > > > > > > > fvb = Status("firstvisiblebar");
> > > > > > > > > for( i = 0; ( symbol = StrExtract( TickerList, i ) ) !=
> > ""; i++ )
> > > > > > > > > {
> > > > > > > > > Buy = IIf(ROCt > ROCc AND RSIt > RSIc, 1,0);
> > > > > > > > > Sell = IIf(ROCt < ROCc AND RSIt < RSIc, -1,0);
> > > > > > > > >
> > > > > > > > > fc = Foreign( symbol, "C" );
> > > > > > > > > if (Buy[i] >= 0) // something not right here ???
> > > > > > > > >  {
> > > > > > > > >   if( ! IsNull( fc[ 0 ] ) )
> > > > > > > > >   {
> > > > > > > > >     Plot( 100 * ( fc - fc[ fvb ] )/ fc[ fvb ], symbol,
> > > > > colorLightOrange
> > > > > > > + ( (2*i) % 15 ), styleLine );
> > > > > > > > >   }
> > > > > > > > >  }
> > > > > > > > > }
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > ------------------------------------
> > > > > > > > >
> > > > > > > > > **** 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
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > >
> >
>


Reply via email to