<div class="gmail_quote">On Thu, Jun 2, 2011 at 7:25 AM, Marc Shivers <span dir="ltr">&lt;<a href="mailto:marc.shivers@gmail.com">marc.shivers@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Regarding business days, for financial data, trading days are<br>
determined by each exchange, so, in particular, there is no such thing<br>
as a US Trading Calendar, only a NYSE Calendar, NYMEX Calendar, etc,<br>
etc... .  I think it would be useful to have functionality where you<br>
could start with a weekday calendar with specified normal trading<br>
hours and easily remove a list of non-trading days that the user<br>
specifies as well as modify the days where the trading hours are<br>
shorter (e.g. the day after thanksgiving).<br></blockquote><div>What kind of functions/data would be needed for days with shorter trading hours? The design I&#39;ve sketched out supports everything you&#39;re describing except things related to trading hours.</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
I think anything more specific should probably be relegated to a<br>
specific package for financial calendars, as this entire topic gets<br>
very messy very fast.<br></blockquote><div>I definitely agree, NumPy would have no knowledge of specifics, just a mechanism to tell it when holidays are, etc, and do reasonable calculations on them.</div><div><br></div><div>
-Mark </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
-Marc<br>
<div class="im"><br>
On Wed, Jun 1, 2011 at 7:47 PM, Wes McKinney &lt;<a href="mailto:wesmckinn@gmail.com">wesmckinn@gmail.com</a>&gt; wrote:<br>
&gt; On Wed, Jun 1, 2011 at 10:29 PM, Charles R Harris<br>
&gt; &lt;<a href="mailto:charlesr.harris@gmail.com">charlesr.harris@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Wed, Jun 1, 2011 at 3:16 PM, Mark Wiebe &lt;<a href="mailto:mwwiebe@gmail.com">mwwiebe@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Wed, Jun 1, 2011 at 3:52 PM, Charles R Harris<br>
&gt;&gt;&gt; &lt;<a href="mailto:charlesr.harris@gmail.com">charlesr.harris@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &lt;snip&gt;<br>
&gt;&gt;&gt;&gt; Just a quick comment, as this really needs more thought, but time is a<br>
&gt;&gt;&gt;&gt; bag of worms.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Certainly a bag of worms, I agree.<br>
<br>
</div>+1<br>
<div><div></div><div class="h5"><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Trying to represent some standard -- say seconds at the solar system<br>
&gt;&gt;&gt;&gt; barycenter to account for general relativity -- is something that I think is<br>
&gt;&gt;&gt;&gt; too complicated and specialized to put into numpy.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Good support for units and delta times is very useful,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; This part works fairly well now, except for some questions like what<br>
&gt;&gt;&gt; should datetime(&quot;2011-01-30&quot;, &quot;D&quot;) + timedelta(1, &quot;M&quot;) produce. Maybe<br>
&gt;&gt;&gt; &quot;2011-02-28&quot;, or &quot;2011-03-02&quot;?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; but parsing dates and times<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I&#39;ve implemented an almost-ISO 8601 date-time parser.  I had to deviate a<br>
&gt;&gt;&gt; bit to support years outside the little 10000-year window we use. I think<br>
&gt;&gt;&gt; supporting more formats could be handled by writing a function which takes<br>
&gt;&gt;&gt; its date format and outputs ISO 8601 format to feed numpy.<br>
&gt;&gt;<br>
&gt;&gt; Heh, 10000 years is way outside the window in which the Gregorian calender<br>
&gt;&gt; is useful anyway. Now, strict Julian days start at the creation of the world<br>
&gt;&gt; so that&#39;s a real standard, sort of like degrees Kelvins ;)<br>
&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; and handling timezones, daylight savings,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; The only timezone to handle is &quot;local&quot;, which it looks like standard C has<br>
&gt;&gt;&gt; a rich enough API for this to be ok.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; leap seconds,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; This one can be mitigated by referencing TAI or GPS time, I think. POSIX<br>
&gt;&gt;&gt; time looks like a can of worms though.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; business days,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; I think Enthought has some interest in a decent business day<br>
&gt;&gt;&gt; functionality. Some feedback from people doing time series and financial<br>
&gt;&gt;&gt; modeling would help clarify this though. This link may provide some context:<br>
&gt;&gt;&gt; <a href="http://www.financialcalendar.com/Data/Holidays/Formats" target="_blank">http://www.financialcalendar.com/Data/Holidays/Formats</a><br>
&gt;&gt;<br>
&gt;&gt; Well, that can change. Likewise, who wants to track ERS for the leap<br>
&gt;&gt; seconds?<br>
&gt;&gt;<br>
&gt;&gt; I think the important thing is that the low level support needed to<br>
&gt;&gt; implement such things is available. A package for common use cases that<br>
&gt;&gt; serves as an example and that can be extended/modified by others would also<br>
&gt;&gt; be helpful.<br>
&gt;&gt;<br>
&gt;&gt; Chuck<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; NumPy-Discussion mailing list<br>
&gt;&gt; <a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
&gt;&gt; <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt; Being involved in financial data analysis (e.g. via pandas) this stuff<br>
&gt; will affect me very directly. I&#39;ll get back to you soon with some<br>
&gt; comments.<br>
&gt;<br>
&gt; - Wes<br>
&gt; _______________________________________________<br>
&gt; NumPy-Discussion mailing list<br>
&gt; <a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
&gt; <a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
&gt;<br>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@scipy.org">NumPy-Discussion@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/numpy-discussion" target="_blank">http://mail.scipy.org/mailman/listinfo/numpy-discussion</a><br>
</div></div></blockquote></div><br>