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

[amibroker] Re: Resetting an indicator at the start of a session



PureBytes Links

Trading Reference Links

Dennis
I guess in that case you can use

barsSinceStart= BarsSince(cross(TimeNum(),162000)) ;

endbar will be before 4:20 and start bar will be 1st bar after it- 
should work with even short trading days, and holidays/weekends if 
prior day ends before 420 and subsequent new day starts before 12 MN

Thankfully, I don't trade futures.  I do have a question you have 
probably tackled.  My db base interval=1min, start 0930, end 1600, 
shift=0, show day session only and preferences are set at: time 
stammp of compressed id bars shows START time of interval.  Trading 
day starts 930am...ends 400pm with a few trades trickling in till 
~402.  How would you get those late trades into the bar that ends my 
day (ie, the 1min,5min,etc bar that ends my day).  My db Tradestation 
had a feature that let you add these to the final bar.

Also, my db is set to 7400 bars [=19 days].  When run AA first time 
after starting AB with wait till backfill checked, all symbols will 
get every bar in the db replaced [if I use a longer db, same 
problem].  After that first run, it doesn't make a difference if 
backfill is checked or not, no backfill will be requested (I have to 
force it by right clicking the connection status).  Unclear to me if 
this is an AB or data provider 'feature'.  Have this problem?  Does 
your data in ever fall behind during the time of day when trading 
becomes heavy... I have a problem the last half hour of the day - not 
b/o internet connection or cpu or ram (a second slower machine not 
running AB sees same ticker sym in realtime from a source I can't 
import to AB).

Thaks,
Dan


--- In amibroker@xxxxxxxxxxxxxxx, Dennis Brown <see3d@xxx> wrote:
>
> Dan,
> 
> Many times a Future trading after hours will have no trades for 
more  
> than 15 minutes.  It is better to specify the exact time desired.  
In  
> my case, I also run volume and range based bars which usually have 
a  
> start time before the end of day, and span the 15 minute market 
closed  
> time period.  I set all my bars for start time stamps.  I have to 
be  
> careful with my time comparisons or I would miss the closing time  
> since it is the middle of a bar.  Makes it tricky to specify when 
and  
> at what price to go flat for the day.
> 
> BR,
> Dennis
> 
> On May 20, 2008, at 5:00 PM, monitorit wrote:
> 
> > Sidhartha70
> > You said:
> > I consider the open the 16:30 night session start and close
> > the 16:15 day session end the following day.
> >
> > To find the first bar of a session consider:
> >
> > barsSinceStart= BarsSince(TimeNum()>Ref(TimeNum(),-1)+1499)+1;
> >
> > // this says barsSinceStart==1 when this bar is 15 or more minutes
> > after the prior bar.  It will be 1 whenever this is true [ie, no
> > trade for 15 or more minutes... if you change the > to == 1500 it
> > will be when exactly 15 miinutes.  check your bar times as you may
> > have to change this constant - read TimeNum() and DayofYear() ].
> >
> > Now are there any qpFeed users out there who can help me with my 
last
> > two posts re data problems?
> > Dan
> >
> >
> >
> >
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "sidhartha70" <sidhartha70@>
> > wrote:
> >>
> >> Dennis,
> >>
> >> like you I'm looking at 24 hour futures. Specifically the S&P E-
mini
> >> right now. I consider the open the 16:30 night session start and
> > close
> >> the 16:15 day session end the following day. I have my database
> >> intraday settings set up as such.
> >>
> >> Clearly AmiBroker has this info because it plots vertical session
> >> lines at the session break each day.
> >>
> >> You are very probably right Dennis, and I need to hard code some
> > kind
> >> of time checking mechanism to reset my indicator to zero each
> > session
> >> start... I just intuitively thought AFL might have a hardcoded 
set
> > of
> >> flags like this already.
> >>
> >> Thanks
> >>
> >> --- In amibroker@xxxxxxxxxxxxxxx, Dennis Brown <see3d@> wrote:
> >>>
> >>> Sidhartha70,
> >>>
> >>> AB database settings allow you to filter the data based on 
market
> > open
> >>> hours.  I don't think AB knows when a holiday or half day is.
> > The
> >>> charts skip them simply because there was no trades when the
> > market
> >>> was closed, so no data.
> >>>
> >>> However, I am charting Futures contracts which trade almost 24
> > hours a
> >>> day, so I do not filter anything at the database level except
> >>> weekends.  I take all trade data and do my own filtering.  For
> > many
> >>> indicators, the extra after hours trading smoothes out the
> > indicators
> >>> for the start of the regular trading day.  Those trades after
> > hours in
> >>> response to news do influence the next days trading.  Many
> > indicators
> >>> have time domain factors and will behave badly if they are given
> > a gap
> >>> at the open.  Resetting is just like a gap for some indicators.
> > You
> >>> must carefully pick the reset state values --and it may depend 
on
> > the
> >>> open price.
> >>>
> >>> BR,
> >>> Dennis
> >>>
> >>> On May 20, 2008, at 1:56 PM, sidhartha70 wrote:
> >>>
> >>>> Dennis,
> >>>>
> >>>> you are absolutely right... that's exactly what I do mean. 1
> >>>> instrument... with an indicator run across a large time series
> > (i.e. 1
> >>>> year)... and each new trading day (session) resetting the
> > indicator.
> >>>>
> >>>> Dennis, I've eyeballed your code and I think I know what's
> > going on.
> >>>> My only question is, given the charts I can see before my eyes,
> >>>> AmiBroker clearly knows when a session begins, when it's a
> > weekend or
> >>>> a holiday etc... because it plots the graphs perfectly as
> > defined.
> >>>>
> >>>> On that basis is really necessary to re-code it...? Are there
> > not some
> >>>> flags (booleans) within AFL that signify things like the
> > starting bar
> >>>> of a session, each and every session...?
> >>>>
> >>>> Sorry if I sound off base here... like I say I've come from C#
> >>>> world!!!
> >>>>
> >>>>
> >>>>
> >>>> -- In amibroker@xxxxxxxxxxxxxxx, Dennis Brown <see3d@> wrote:
> >>>>>
> >>>>> Dingo, Sidhartha70,
> >>>>>
> >>>>> Sorry, I thought the question about starting the indicator
> > over each
> >>>>> trading session (ie., trading day).
> >>>>>
> >>>>> BR,
> >>>>> Dennis
> >>>>>
> >>>>> On May 20, 2008, at 12:48 PM, dingo wrote:
> >>>>>
> >>>>>> IMHO you should seriously read thru the list of functions in
> > the
> >>>>>> help file.
> >>>>>> And you should do this at least twice per year.
> >>>>>>
> >>>>>> Look at the "stocknum" param in the following:
> >>>>>>
> >>>>>> http://www.amibroker.com/guide/afl/afl_view.php?id=141
> >>>>>>
> >>>>>> You can test to see if the result is = 0 which will indicate
> > the
> >>>>>> start.
> >>>>>>
> >>>>>> d
> >>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: amibroker@xxxxxxxxxxxxxxx
> >>>>>>> [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of sidhartha70
> >>>>>>> Sent: Tuesday, May 20, 2008 12:29 PM
> >>>>>>> To: amibroker@xxxxxxxxxxxxxxx
> >>>>>>> Subject: [amibroker] Re: Resetting an indicator at the start
> >>>>>>> of a session
> >>>>>>>
> >>>>>>> Dennis,
> >>>>>>>
> >>>>>>> Thank you. I will take a look at the code.
> >>>>>>>
> >>>>>>> First question... goodness. Is there a really easy way to
> > know if
> >>>>>>> we
> >>>>>>> are at the start of a session...?? A flag of some sort that
> > gets
> >>>>>>> set
> >>>>>>> at the start of the session...?
> >>>>>>>
> >>>>>>> Sorry, I come from C# world...
> >>>>>>>
> >>>>>>> Thanks
> >>>>>>>
> >>>>>>> --- In amibroker@xxxxxxxxxxxxxxx, Dennis Brown <see3d@>
> > wrote:
> >>>>>>>>
> >>>>>>>> Hello,
> >>>>>>>>
> >>>>>>>> Here is a snippet of AFL from my system that is concerned
> >>>>>>> with what
> >>>>>>>> you are looking for.  Sift through it and see if it gives
> >>>>>>> you any ideas.
> >>>>>>>>
> >>>>>>>> // Generate the Holiday mask so we don't backtest trading
> >>>>>>> or use in
> >>>>>>>> volume calculations
> >>>>>>>> Holiday = 1;
> >>>>>>>> for(i=0; StrExtract(HolidayList,i)!=""; i++){Holiday &=
> >>>>>>> BarDates !=
> >>>>>>>> StrToNum(StrExtract(HolidayList,i));}
> >>>>>>>> Halfday0 = 1;
> >>>>>>>> for(i=0; StrExtract(HalfdayList,i)!=""; i++){Halfday0 &=
> >>>>>>> BarDates !=
> >>>>>>>> StrToNum(StrExtract(HalfdayList,i));}
> >>>>>>>> Halfday = Halfday0 | BarTimes <= 130000;
> >>>>>>>> // Major US equity markets open/close markers
> >>>>>>>> MarketOpen = Holiday AND Halfday AND BarTimes >= 93000 AND
> >>>>>>> BarTimes <=
> >>>>>>>> 160000;
> >>>>>>>> FirstTradeBar = Cross(MarketOpen,.5);
> >>>>>>>> LastTradeBar = Cross(.5,MarketOpen);
> >>>>>>>> // Market volume valid mask
> >>>>>>>> ValidVolBars = MarketOpen AND Halfday0;
> >>>>>>>> // Time of day to place trades mask
> >>>>>>>> EntryTimes = TimeNum() >= TradeBeg AND TimeNum() <=
> > TradeEnd-
> >>>>>>>> TradeEnd2; //time of day to place new trades
> >>>>>>>> EntryTimes &= HalfDay & Holiday;
> >>>>>>>> ExitTimes = TimeNum() >= TradeBeg AND TimeNum() <=
> >>>>>>> TradeEnd; //time of
> >>>>>>>> day to place exits
> >>>>>>>> ExitTimes &= HalfDay & Holiday;
> >>>>>>>> // Go flat at end of day bar
> >>>>>>>> LastDayTradeBar = Cross(TimeNum() >= TradeEnd,.5) |
> >>>>>>> Cross(0.5,HalfDay);
> >>>>>>>>
> >>>>>>>> BR,
> >>>>>>>> Dennis
> >>>>>>>>
> >>>>>>>> On May 20, 2008, at 11:17 AM, sidhartha70 wrote:
> >>>>>>>>
> >>>>>>>>> Herman et al,
> >>>>>>>>>
> >>>>>>>>> any thoughts on this...?
> >>>>>>>>>
> >>>>>>>>> Thanks
> >>>>>>>>>
> >>>>>>>>> --- In amibroker@xxxxxxxxxxxxxxx, "sidhartha70"
> > <sidhartha70@>
> >>>>>>>>> wrote:
> >>>>>>>>>>
> >>>>>>>>>> Herman,
> >>>>>>>>>>
> >>>>>>>>>> thanks for this. very interesting.
> >>>>>>>>>>
> >>>>>>>>>> however, exactly what i'm trying to do is completely
> > reset an
> >>>>>>>>>> indicator at the beginning of each session. the
> >>>>>>> indicator is forming
> >>>>>>>>>> part of an oscillator, so i want to cumulative a value
> >>>>>>> over over each
> >>>>>>>>>> session, and then reset it to zero.
> >>>>>>>>>>
> >>>>>>>>>> is there an easy way of doing that?
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> ------------------------------------
> >>>>>>>>>
> >>>>>>>>> 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 NEW RELEASE ANNOUNCEMENTS and other news always check
> > DEVLOG:
> >>>>>>>>> http://www.amibroker.com/devlog/
> >>>>>>>>>
> >>>>>>>>> For other support material please check also:
> >>>>>>>>> http://www.amibroker.com/support.html
> >>>>>>>>> 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 NEW RELEASE ANNOUNCEMENTS and other news always check
> > DEVLOG:
> >>>>>>> http://www.amibroker.com/devlog/
> >>>>>>>
> >>>>>>> For other support material please check also:
> >>>>>>> http://www.amibroker.com/support.html
> >>>>>>> Yahoo! Groups Links
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> No virus found in this incoming message.
> >>>>>>> Checked by AVG.
> >>>>>>> Version: 8.0.100 / Virus Database: 269.23.21/1456 - Release
> >>>>>>> Date: 5/20/2008 6:45 AM
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>> ------------------------------------
> >>>>>>
> >>>>>> 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 NEW RELEASE ANNOUNCEMENTS and other news always check
> > DEVLOG:
> >>>>>> http://www.amibroker.com/devlog/
> >>>>>>
> >>>>>> For other support material please check also:
> >>>>>> http://www.amibroker.com/support.html
> >>>>>> 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 NEW RELEASE ANNOUNCEMENTS and other news always check
> > DEVLOG:
> >>>> http://www.amibroker.com/devlog/
> >>>>
> >>>> For other support material please check also:
> >>>> http://www.amibroker.com/support.html
> >>>> 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 NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
> > http://www.amibroker.com/devlog/
> >
> > For other support material please check also:
> > http://www.amibroker.com/support.html
> > 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 NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
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/