[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: if (Buy[i] >= 0) not behaving as expected



PureBytes Links

Trading Reference Links




--- In amibroker@xxxxxxxxxxxxxxx, "gmorlosky" <gmorlosky@xxx> 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/





Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___