{{Quickfixn}} QuickFIX/n time precisions

Yuval Cohen yuval.cohen at etradingsoftware.com
Mon Dec 14 04:25:14 PST 2015


On Tue, Oct 13, 2015 at 8:24 PM, Jeff S. <jeff at alphafinhk.com> wrote:

> a)      do I need to set StartTime and StartDay or can they be omitted?
>

Yes, you must specify StartTime and StartDay.


> b)      Not sure I understand the documentation regarding the correct
> TimeZone setting.  For EST would
>
> it be UTC-4 (Do I put “UTC-4” or “America/New_York”)
>
On Windows platforms, you would use "Eastern Standard Time" and on Mono
platforms you would use "US/Eastern".  But there's one more method that we
haven't discussed yet (UseLocalTime=Y), see below...

c)       You mention that all times are normalized to UTC.  I assume this
> means that I would leave the TimeZone
>
> setting the same regardless of where my server was running in the world.
>
> Would that be a correct assumption?
>
StartTime/EndTime are interpreted as UTC unless you specify the TimeZone
option or the UseLocalTime option.  So, yes, if you specify TimeZone
explicitly, it does not matter at all what timezone your operating system's
clock is using.

But read on...

d)      Will I have to adjust this for daylight saving time twice a year?
>
It depends :) Let me summarize the options you have:

1) Don't use the TimeZone and UseLocalTime options, and specify
StartTime/EndTime in UTC.  If your counterparty observes DST you'll have to
adjust your config twice per year.

2) Don't use the TimeZone option.  Instead, set UseLocalTime=Y.  Set your
server's clock to use your home timezone.  Set the StartTime/EndTime in
your local time (converted from the Eastern Time your counterparty
specified).  If you and your counterparty both begin/end DST at the same
time, no twice-yearly adjustment needed. Otherwise, twice-yearly adjustment
is needed.

3) Set the TimeZone option to your counterparty's timezone, and use the
times they gave you for StartTime/EndTime.  Don't use the UseLocalTime
option.  No DST adjustment is necessary.

4) Don't use TimeZone, instead set UseLocalTime=Y, set your server's clock
to *your counterparty's timezone*.  Set the StartTime/EndTime in your
counterparty's time.  No DST adjustment necessary.

Methods #1 and #2 are undesirable because DST can be a factor.  Methods #3
and #4 are simpler, with #4 being simplest of all... unless you connect to
multiple counterparties in multiple timezones.  If that is the case, prefer
Method #3.  If you only have one counterparty, or if all your
counterparties are in the same timezone, you can use Method #4.

p.s. Note that the "Eastern Standard Time" timezone ID on Windows is a
somewhat unfortunate name.  It is confusing because during observance of
daylight saving time, one would normally refer to eastern time as "Eastern
Daylight Time". This timezone ID on Windows will in fact observe daylight
saving time (which is good!), despite the name.

--
Mike Gatny
Connamara Systems, LLC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20151013/80a571ea/attachment-0002.htm>


More information about the Quickfixn mailing list