I spoke a little too soon. It does work well with anything associated with the last bar (i.e. close, open, etc.), BUT what I need is reference to something like RSI(14) > 50, which it isn't working (error 6, error 4, etc.) no matter how I try to code it. Any thoughts ???
--- In [email protected], "tuzo_wilson" <j.tuzo.wil...@...> wrote: > > --- In [email protected], "gmorlosky" <gmorlosky@> wrote: > > > > Thanks Tuzo (and Mike), but I can't get it to work yet. I used fc >= 500; > > as my logic to represent the ShouldPlot. I get all plots, even though each > > stock is under $500. I tried various combination of price to get a partial > > group of plots, but it's always all of them. > > > > Any other ideas on how to make each "foreign" the "active" for each > > plotting ??? > > ShouldPlot is hardcoded to return true right now. Change it to only return > true when your condition is true. > > In this case it will only display the symbol if the closing price of the > first bar visible is greater than 500. Note that you will also have to also > change the call to ShouldPlot to pass in the first visible bar i.e. if > (ShouldPlot(fc,fvb)) > > function ShouldPlot(price, fvb) > { > return (fc[fvb] >= 30); > } > > > Tuzo > > > _SECTION_BEGIN("RelativePerformance"); > > fc = ""; > > function ShouldPlot(price, fvb) > > { > > return (fc[fvb] >= 30); > > } > > function GetWatchListSymbols(watchListName) > > { > > wlNumber = CategoryFind(watchListName, categoryWatchlist ); > > return CategoryGetSymbols(categoryWatchlist, wlNumber ); > > } > > SetChartOptions(0,chartShowArrows|chartShowDates); > > WatchListName = ParamStr("Watch List Name","RelStrength"); // replace with > > a valid watchlist > > SymbolList = GetWatchListSymbols(WatchListName); > > fvb = Status("firstvisiblebar"); > > ColorCode = colorBrown; > > for( i = 0; ( sym = StrExtract( SymbolList, i ) ) != ""; i++ ) > > { > > fc = Foreign(sym, "Close"); > > if (ShouldPlot(fc,fvb)) > > { > > 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(); > > > > > > > > --- 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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
