PureBytes Links
Trading Reference Links
|
I got it. I was not using RSIa...here is what I replaced your ShouldPlot with, and it works:
function MyPlot(fc,R14)
{
R14 = IIf(RSIa(fc,14) > 50,1,-1);
return (R14[BarCount -1] >= 1 );
}
function ShouldPlot(price, fvb)
{
return (fc[fvb] >= 35);
}
--- In amibroker@xxxxxxxxxxxxxxx, "gmorlosky" <gmorlosky@xxx> wrote:
>
> 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 amibroker@xxxxxxxxxxxxxxx, "tuzo_wilson" <j.tuzo.wilson@> wrote:
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "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 amibroker@xxxxxxxxxxxxxxx, "tuzo_wilson" <j.tuzo.wilson@> wrote:
> > > >
> > > >
> > > > --- In amibroker@xxxxxxxxxxxxxxx, "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 amibroker@xxxxxxxxxxxxxxx, 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 amibroker@xxxxxxxxxxxxxxx, 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 amibroker@xxxxxxxxxxxxxxx, 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
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
------------------------------------
**** 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
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|