Python

是否有一個 python 包/函式可以返回兩個時間戳之間的交易時間?

  • July 25, 2017

我有兩個時間戳,例如 2017-04-11 和 2017-07-08,或 2017-04-11 21:00:57 和 2017-07-08 12:41:54,我正在尋找 Python 包/函式返回這兩個時間戳之間的總交易時間(即不包括市場關閉的時間)。

時間戳的精度越高越好。我知道交易時間取決於金融工具。

是的你可以!與pandas_market_calendars. 請參閱:GitHub - 回購。從文件

import pandas_market_calendars as mcal
nyse = mcal.get_calendar('NYSE')

schedule = nyse.schedule(start_date='2016-12-30', end_date='2017-01-10')

market_open market_close
2016-12-30  2016-12-30 14:30:00+00:00   2016-12-30 21:00:00+00:00
2017-01-03  2017-01-03 14:30:00+00:00   2017-01-03 21:00:00+00:00
2017-01-04  2017-01-04 14:30:00+00:00   2017-01-04 21:00:00+00:00
2017-01-05  2017-01-05 14:30:00+00:00   2017-01-05 21:00:00+00:00
2017-01-06  2017-01-06 14:30:00+00:00   2017-01-06 21:00:00+00:00
2017-01-09  2017-01-09 14:30:00+00:00   2017-01-09 21:00:00+00:00
2017-01-10  2017-01-10 14:30:00+00:00   2017-01-10 21:00:00+00:00

對於您的起始時間戳,您可以計算到第一個交易日結束之前的差異。

對於您的結束時間戳,您可以計算與最後一個交易日開始時的差異。

剩下的日子,累積的時間顯然是結束時間減去開始時間。即使上面的輸出具有相同的開始/結束時間,也不總是這樣:

early = nyse.schedule(start_date='2012-07-01', end_date='2012-07-10')

market_open market_close
2012-07-02  2012-07-02 13:30:00+00:00   2012-07-02 20:00:00+00:00
2012-07-03  2012-07-03 13:30:00+00:00   2012-07-03 17:00:00+00:00
2012-07-05  2012-07-05 13:30:00+00:00   2012-07-05 20:00:00+00:00
2012-07-06  2012-07-06 13:30:00+00:00   2012-07-06 20:00:00+00:00
2012-07-09  2012-07-09 13:30:00+00:00   2012-07-09 20:00:00+00:00
2012-07-10  2012-07-10 13:30:00+00:00   2012-07-10 20:00:00+00:00

所以你實際上需要迭代結果併計算每個交易日的累計時間。

當然:您的樂器必須在受支持的日曆之一中(或者您可以創建自己的)

引用自:https://quant.stackexchange.com/questions/35052