Thanks Graham
I had thought of that too but apart from running an exploration or backtest every minute I too am stumped. More ideas welcome.
An AFL command to "Expand and Pad" the primary ticker would appear to be one solution that might solve a number of difficulties some users have mentioned. I emailed Amibroker Support last night, so hopefully they will be able to help out.
I was thinking of an additional option or two for SetForeign/Foreign where:
The fixup parameter could be extended to provided options liek the following
0: Do not fixup
1: Fixup and pad missing bars with previous bar data
2: Fixup and pad missing bars data with closing price only (OHL=C probably will be required, and V=0)
Also a function to expand the primary ticker with the same fixup options would do the job.
Just a thought or two.
Does anyone know how to insert quotations into an existing ticker using AFL, i wonder if add to composite would work on the ticker being used? Worth a try.
regards
Chris
-------Original Message-------
Date: 04/05/05 07:38:40
Subject: Re: [amibroker] Intraday Data - SetForeign and data alignment
To make comparisons intraday I set up a dummy ticker with all times
included. Then you compare the normal tickers as both in foreign with
the dummy as base
Unfortunately I am not aware of how to keep this updated during the day
> Just an observation...
>
> For me, the even bar data disappearing in all time frames makes sense since
> it did not match the smallets time frame, hence it was DELETED and,
> therefore, cannot propagate up the time frame scale.
>
> This is not to say this is the "desired" behavior.
>
> Terry
>
> Chris Shawcross wrote:
>
> Graham
>
> I have finished testing with some dummy intraday data and can confirm your
> statement:
>
> "...but if the underlying ticker does not have a bar at that particular
> day/time bar then the foreign ticker will not show data there"
>
> It makes total sense on the face of it but I did not expect the feature to
> propogate UP to longer timeframes such as 30 minute, daily or weekly charts
> (i.e. produced from intraday data). I must be doing something wrong for
> sure, because the following test results means that comparing tickers on an
> intraday database could be inconsistent and produce unexpected results
> especially when using ASX data.
>
> This is what I found:
>
> Local Database (no RT Interface activated): 1 Minute Bars
> Ticker XIJ has quotations for every Odd Minute between 3:31 and 4:00pm, OHLC
> non zero, V = 0
> Ticker CPU has quotations for every Even Minute between 3:31 and 4:00pm,
> OHLCV non zero
> Both tickers have quotations that overlap in time for the previous half hour
> periods.
> Indicator/AFL programmed to detail OHLCV values for the ticker selected and
> for Foreign Ticker CPU with Padding disabled. Chart displayed candles for
> OHLC and V from the foreign ticker.
>
> The code uses the following statements to plot:
>
>
>
> if ( SetForeign("CPU",0) ) {
>
> CPUvol = V;
>
> RestorePriceArrays();
>
> }
>
> Plot( C, "Close", ParamColor("Color", colorYellow ), styleNoTitle |
> ParamStyle("Style") | GetPriceStyle() );
>
>
> Plot( CPUVol, _DEFAULT_NAME(),
>
> IIf( C > O, ParamColor("Price Up Color", colorLightGrey ), ParamColor("Price
> Down Color", colorGrey50 ) ),
>
> ParamStyle( "Price Style", styleHistogram | styleThick | styleOwnScale,
> maskHistogram ) )
>
>
> 1.. Display Price Chart
> Interpretation and chart display values for CPU odd minute periods only
> on a 1 Minute Timeframe
> Interpretation and chart display values for CPU EVERY period when using
> a 5,15,30,hourly,daily Timeframe
> Interpretation
> This was the expected behaviour - OK so far.
>
> 2. Display Price Chart for XIJ.
> Interpretation and chart display values for XIJ odd minute periods only
> on a 1 Minute Timeframe
> Interpretation and chart display values for XIJ EVERY period when using
> a 5,15,30,hourly,daily Timeframes
> Interpretation for Foreign Ticker CPU showed NO Data on a 1 Minute
> Timeframe (expected behaviour)
> Interpretation for Foreign Ticker CPU showed NO Data on 5,15,30 bar
> between 3:30 and 4pm
>
> The 1 minute chart behaved as expected, CPU vol was empty for the periods it
> did not exist. This is easy to compensate for in code by doing the following
> inside the SetForeign code section:
>
>
> CPUVol = IIf(IsNull(V),0,V) ;
> I did not expect NO DATA for the foreign ticker CPU for timeframes greater
> than 1 minute.
> What I expected was for the 5,15,30 minute bars be generated for CPU prior
> to aligning with XIJ, thus no data would be lost at the higher timeframe.
>
> Now, if XIJ had a quotation for every 1 minute bar then the volume check
> above could correctly compensate for the missing bars in the constituent
> stocks (vis CPU). The OHLC would be OK too I think.
>
> I will send this email to support, and hopefully Amibroker can shed some
> light on my problem and help solve it. I am looking forward to progressing
> past my "learning to walk with AFL phase" with Amibroker for I have many
> ideas I'd like to put to code.
>
> If anyone can see where I have gone wrong, I'd be glad to hear your
> thoughts.
>
> regards
> Chris
>
> -------Original Message-------
>
> From: Chris Shawcross
> Date: 04/01/05 17:03:00
> Subject: Re: [amibroker] Intraday Data - SetForeign and data alignment
>
> Thanks Graham
>
> That might be the clue but I think now that there might be more to it.
>
> If I am displaying the chart as a daily then one would expect that if each
> ticker shows a daily bar for that day (in fact they show a daily bar for all
> bars as every ticker in my sample has been trading each day), then the code
> would have bar values for each foreign ticker. The same applies when viewing
> 15 minute, 30 minute and hourly bars. Each ticker has non zero data for
> every bar when viewed separately and there are no periods missing.
>
> However, a daily/15 minute/30 minute/hourly bar etc is generated from the
> underlying 1 minute quotations.
> This is where the problem might be: EVERY ticker has missing 1 minute bars,
> but has at least ONE 1 minute bar inside the Timeframe being displayed (e.g.
> daily). As per the other post on pitch forks Aussie shares are not liquid
> enough to ensure trade activity every minute of every day. Even BHP takes a
> breather.
>
> So I guess that if the underlying ticker and foreign tickers do not line up
> sufficiently at the 1 minute bar level then the "emptiness" is propogated up
> to the daily/hourly chart. Hope this makes sense, if not I can give an
> example.
>
> How can I work around this or is this where one needs to call on Thomaz for
> help?
>
> Maybe if I could EXPAND the underlying ticker to have a bar for EVERY time
> period then the problem might go away. I might try testing this on the
> weekend with a temporary local database where I can add/delete quotations.
>
> regards
> Chris
>
> -------Original Message-------
>
> From: Graham
> Date: 04/01/05 11:26:45
> Subject: Re: [amibroker] Intraday Data - SetForeign and data alignment
>
> Padding allows indicators to fill across data gaps, but if the
> underlying ticker does not have a bar at that particular day/time bar
> then the foreign ticker will not show data there.
>
> > Chris,
> >
> > I don't know the answer to your question. I just observe that yesterday
> > someone was asking for data hole filling on intraday data. AB does (if you
> > tell it) fill data holes on daily data. Sounds like more than one user
> sees
> > that it does not fill holes intraday.
> >
> > Terry
> >
> > Chris Shawcross wrote:
> >
> > I'm not sure where the problem is and I think there is more than one
> problem
> > to solve. My assumption at present is that I have done something really
> > silly. I hope someone can help me out.
> >
> > I have constructed a volume calculation for Aussie sector indexes using
> the
> > SetForeign function. The code works great on EOD local data (even where
> some
> > of the constituent stocks have missing bars) BUT it performs totally
> > differently for intraday data.
> >
> > Data sources tested:
> > A. EOD Data only
> > B. Marketcast RT plugin (1 minute data local storage in AB)
> > C. Local data store of 1 minute data
> >
> > Cut down version of the code is provided at the base of this post.
> >
> > On EOD data, whilst displaying XIJ, the volume indicator provides a
> > summation of each days volume as a histogram and details the individual
> > volumes in the interpretation section. I consciously delete a couple of
> > daily bars for CPU and the code correctly replaced the gaps with zero
> volume
> > for that period.
> >
> > However, when switching to the intraday databases, holes suddenly appear
> in
> > the data when each constituent ticker has valid data for that period. i.e.
> > if I display the daily price/volume chart for each ticker, the code below
> > shows the correct volume for today for the same ticker (and every period
> as
> > there are no missing days in the data for any ticker). However there are
> > zero volume values for some of the other tickers 9depending on which bar
> is
> > selected) even though individually each has volume for that day.
> >
> > It is very hard to describe, so I hope someone understands what I am
> getting
> > at. It appears to me that when the intraday data is compressed to provide
> > daily bars, some empty bar characteristics may be propogating to a daily
> > bar, but only when accessed via GetForeign. Or rather, I have made an
> > obvious and silly coding error. I truly hope it is the later. What
> concerns
> > me is that I cannot replicate the problem on the EOD data whilst viewing
> > daily/weekly/monthly charts. But it is easily reproduced using daily/30
> > minute/weekly etc charts with a 1 minute database. Note that the tickers
> DO
> > have gaps between 1 minute bars as the stocks are not continuously traded.
> > This is the norm for Aus as mentioned in a recent query on pitch forks.
> >
> > The code below allows for fill to be enabled, this produces some more
> > interesting (but undesirable) effects which deserve their own post. Once
> > again, I hope it is my code that has stuffed up (and easily rectified).
> But
> > one problem at a time.
> >
> > regards
> > Chris (Shawky)
> >
> > P.S. I really like the new formula environment, include files, parameter
> > options etc, drag and drop, especially the insert linked facility. Looking
> > forward to an Overlay Linked option in the future ;)
> > The code:
> >
> > PadEmptyBars=ParamToggle("Pad Empty Bars","No|Yes",0);
> > tickers="CPU,BCA,IRE,VSL";
> > MyVol = 0;
> > for ( num = 0; ( sym = StrExtract(tickers,num) ) != "" ; num++)
> > {
> > if ( SetForeign(sym,PadEmptyBars) )
> > {
> > VarSet("Vol"+num, IIf(IsNull(V),0,V) );
> > RestorePriceArrays();
> > }
> > else
> > {
> > printf("Ticker "+sym+" not found\n");
> > VarSet("Vol"+num, 0);
> > }
> > }
> >
> > for ( i = 0; i < num; i++ )
> > {
> > MyVol = MyVol + VarGet("Vol"+i);
> > }
> >
> > Plot( MyVol, _DEFAULT_NAME(),
> > IIf( C > O, ParamColor("Price Up Color", colorLightGrey ),
> > ParamColor("Price Down Color", colorGrey50 ) ),
> > ParamStyle( "Price Style", styleHistogram | styleThick | styleOwnScale,
> > maskHistogram )
> > );
> >
> > for ( i = 0; i < num; i++ )
> > printf( " " + StrExtract(tickers,i) + " " +
> WriteVal(VarGet("Vol"+i),10.0)
> > + "\n");
> >
> >
> >
> >
> >
> >
> >
> > Please note that this group is for discussion between users only.
> >
> > To get support from AmiBroker please send an e-mail directly to
> > SUPPORT {at} amibroker.com
> >
> > For other support material please check also:
> >
> >
> >
> >
> >
> >
> > Please note that this group is for discussion between users only.
> >
> > To get support from AmiBroker please send an e-mail directly to
> > SUPPORT {at} amibroker.com
> >
> > For other support material please check also:
> >
> >
> >
> >
> > Yahoo! Groups Sponsor
> > ADVERTISEMENT
> >
> > ________________________________
> > Yahoo! Groups Links
> >
> > To visit your group on the web, go to:
> >
> > To unsubscribe from this group, send an email to:
> >
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
>
>
> --
> Cheers
> Graham
>
>
>
> Please note that this group is for discussion between users only.
>
> To get support from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> For other support material please check also:
>
>
> Yahoo! Groups Links
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Please note that this group is for discussion between users only.
>
> To get support from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> For other support material please check also:
>
>
>
>
>
> Please note that this group is for discussion between users only.
>
> To get support from AmiBroker please send an e-mail directly to
> SUPPORT {at} amibroker.com
>
> For other support material please check also:
>
>
>
>
> ________________________________
> Yahoo! Groups Links
>
> To visit your group on the web, go to:
>
> To unsubscribe from this group, send an email to:
>
> Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
--
Cheers
Graham
------------------------ Yahoo! Groups Sponsor --------------------~-->
What would our lives be like without music, dance, and theater?
Donate or volunteer in the arts today at Network for Good!
--------------------------------------------------------------------~->
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For other support material please check also:
Yahoo! Groups Links
<*> To visit your group on the web, go to:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
|