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

Re: [amibroker] Re: BarCount with foreign symbol



PureBytes Links

Trading Reference Links



I think that this could be the case if you for in stance have a stock that misses 1 day or more days. Usually this is not the case. If indeed bars are missing most likely Amibroker will fill that space with values of the last known bar. It could effect a signal. I think you should only worry about that if it is likely that bars are missing. For instance if you run the code on intraday 1-minute data and calculate signals for thinly traded stocks then 1-minte bars are like to be missing. If you use EOD data I would think the effect is 0,
 
regards, Ed
 
 
 
----- Original Message -----
Sent: Tuesday, October 27, 2009 3:49 PM
Subject: [amibroker] Re: BarCount with foreign symbol

 

Ed:

That works, but I'm concerned about following from user guide:

"It may slow down backtest/exploration/scan and introduce some slight changes to indicator values when your data has holes and holes are filled with previous bar data. The feature is intended to be used when your system uses general market timing (generates global signals based on data and/or indicators calculated using Foreign from 'reference' symbol)"

This is exactly what I'm doing, but I'm concerned with backtesting system. Say I've created a global market filter that I incorporate into various trading systems. If it is a rotational system and the various symbols are padded, will it not (possibly) create false signals. (If a particular symbol was not padded - had no quotes - I assume it will not be included in positionscore calculations, etc.

Assuming these effects are negligable, is there a way to turn 'Pad and align' on from code, or just the settings window?

The solution I had before reading your message was to always determine a date that each symbol had a quote for in watchlist, and then calculate global market filter from that date forward. (The only reason I've had to do this is to calculate A/D Line because my FastTrack data source offers symbol with NYSE advances and symbol with NYSE declines.) From this, I calculate AD Line as follows:

//to determine bar # of specific date
d = 10000 * (2008-1900) + 100 * 1 + 11;
DT = DateNum();

for ( z = 0; z < BarCount; z++ )
{
if ( DT[z] == d )
{
break;
}
}

//calculate AD Line from that date forward

a = Foreign( "$NADV", "Close" );
d = Foreign( "$DECL", "Close" );

ad[z] = ( a[z] - d[z] ) + 100000;

for ( i = z+1;i < BarCount;i++ )
{
ad[i] = ( a[i] - d[i] ) + ad[i-1];
}

This method seems very convoluted (mostly because I'm a rookie programmer.) I'm also realizing that if I want to backtest watchlist from beginning of database (approx 1988), I won't have ADLine.

I guess it all comes down to my original question of barcount with foreign symbol. Say one of symbols in watch list only has data for last 5 years, when I got to reference foreign data ($NADV - advances or $DECL - declines, which have quote history back to 1988), I get a different value for ADLine because of initially adding that 100000 to variable ad.

I know this is long winded. I appreciate anyone taking time to read and respond.

Also, if there is a much cleaner or simpler way to do above code, please let me know.

Thanks,

Levi

--- In amibroker@xxxxxxxxxps.com, "Edward Pottasch" <empottasch@...> wrote:
>
> what you might try (not sure if it will work): In the backtester settings window use: "Pad and align all data to refence symbol". Then choose a symbol used for reference of which you have many data and is also considered as a "benchmark" (for instance ES for futures),
>
> Else, make sure that your active window contains the "benchmark" data.
>
> rgds, Ed
>
>
>
>
> ----- Original Message -----
> From: levibreidenbach
> To: amibroker@xxxxxxxxxps.com
> Sent: Tuesday, October 27, 2009 12:26 AM
> Subject: [amibroker] Re: BarCount with foreign symbol
>
>
> Hi Rob:
>
> I've tried that. SetBarsRequired() at beginning of code.
>
> Then, when I set foreign, it still only utilizes 200 bars of the 1104.
> At least I assume this is what is happening. Whatever the issue is, calculation comes out different depending on active symbol.
>
> Let me explain what I'm doing:
>
> Using FastTrack data, I have symbol for NYSE Advances and symbol for NYSE Declines. I am trying to calculate A/D Line from these two symbols.
>
> Here's the code:
>
> a = Foreign( "$NADV", "Close" );
> d = Foreign( "$DECL", "Close" );
>
> ad[0] = ( a[0] - d[0] ) + 10000;
>
> for ( i = 1; i < BarCount; i++ )
> {
>
> ad[i] = ( a[i] - d[i] ) + ad[i-1];
>
> }
>
> The problem I have is depending on which symbol is the active symbol, the calculation comes out different. I'm assuming this is because not all symbols have same amount of history.
>
> I would like to be able to calculate this A/D Line same no matter what symbol in use as I use it for filter in backtests.
>
> Thanks for help
>
> Levi
>
> --- In amibroker@xxxxxxxxxps.com, "Rob" <sidhartha70@> wrote:
> >
> > You can use SetBarsRequired() and make it do whatever you want...
> >
> > --- In amibroker@xxxxxxxxxps.com, "levibreidenbach" <levib1@> wrote:
> > >
> > > If the active symbol has a barcount of 200, and I then use setforeign function to work with another array (which has a barcount of 1104), will I be able to access all 1104 bars, or only the 200 because that is what is initially loaded?
> > >
> > > The reason I would like to access all bars is to loop through them and do some calculations that I would like to be the same for all symbols. These calculations are based on a specific starting value (say 10,000), and if I start calculation at the 'zero' bar and barcount is different for each symbol, the calculation is always different for different symbols.
> > >
> > > I know I didn't explain this too well, but any help would be appreciated. If I can clarify anything, let me know.
> > >
> > > Thanks
> > >
> > > Levi
> > >
> >
>



__._,_.___


**** 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

__,_._,___