gjdatac-api 0.2.8__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/PKG-INFO +1 -1
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/gjdatac_api/data_api_class.py +53 -12
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/gjdatac_api.egg-info/PKG-INFO +1 -1
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/setup.py +1 -1
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/gjdatac_api/__init__.py +0 -0
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/gjdatac_api/dict_data.py +0 -0
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/gjdatac_api/dolphindb_info.py +0 -0
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/gjdatac_api/instrument_class.py +0 -0
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/gjdatac_api.egg-info/SOURCES.txt +0 -0
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/gjdatac_api.egg-info/dependency_links.txt +0 -0
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/gjdatac_api.egg-info/requires.txt +0 -0
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/gjdatac_api.egg-info/top_level.txt +0 -0
- {gjdatac_api-0.2.8 → gjdatac_api-0.3.0}/setup.cfg +0 -0
|
@@ -10,7 +10,7 @@ import chinese_calendar as calendar
|
|
|
10
10
|
import pandas as pd
|
|
11
11
|
import dolphindb as ddb
|
|
12
12
|
|
|
13
|
-
from dict_data import (get_price_frequency_dict, get_price_data_type_dict, get_instruments_type_dict,
|
|
13
|
+
from .dict_data import (get_price_frequency_dict, get_price_data_type_dict, get_instruments_type_dict,
|
|
14
14
|
future_delivery_fee_return_fields, future_delivery_fee_return_fields_rename,
|
|
15
15
|
future_margin_ratio_return_fields, future_margin_ratio_return_fields_rename,
|
|
16
16
|
future_limit_position_return_fields, future_limit_position_return_fields_rename,
|
|
@@ -18,8 +18,8 @@ from dict_data import (get_price_frequency_dict, get_price_data_type_dict, get_i
|
|
|
18
18
|
tick_main_contract_return_fields, tick_main_contract_return_fields_rename,
|
|
19
19
|
gtja_mink_main_contract_return_fields, gtja_mink_main_contract_return_fields_rename
|
|
20
20
|
)
|
|
21
|
-
from dolphindb_info import *
|
|
22
|
-
from instrument_class import Instrument
|
|
21
|
+
from .dolphindb_info import *
|
|
22
|
+
from .instrument_class import Instrument
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
class GJDataC:
|
|
@@ -2004,13 +2004,8 @@ class GJDataC:
|
|
|
2004
2004
|
# 先从数据库获取数据
|
|
2005
2005
|
tick_data, db_session = self.connect_db(table_name, db_path)
|
|
2006
2006
|
|
|
2007
|
-
# 使用 strftime 方法将 Timestamp 转换为所需格式
|
|
2008
|
-
formatted_dates = [ts.strftime('%Y.%m.%d') for ts in data['trading_day'].tolist()]
|
|
2009
2007
|
|
|
2010
2008
|
# 根据日期筛选数据
|
|
2011
|
-
# 将日期转换成 DolphinDB 识别的日期格式,用于筛选数据
|
|
2012
|
-
# start_dolphin_date = self.get_active_contract_datetime_to_dolphin_time(start_date)
|
|
2013
|
-
# end_dolphin_date = self.get_active_contract_datetime_to_dolphin_time(end_date)
|
|
2014
2009
|
start_dolphin_date = self.format_date(start_date)
|
|
2015
2010
|
end_dolphin_date = self.format_date(end_date)
|
|
2016
2011
|
date_data = tick_data.where(f"trading_day >= {start_dolphin_date} and trading_day <= {end_dolphin_date}")
|
|
@@ -2452,8 +2447,6 @@ class GJDataC:
|
|
|
2452
2447
|
"""
|
|
2453
2448
|
校验参数类型是否为str
|
|
2454
2449
|
:param commodity: str--必填,期货合约品种
|
|
2455
|
-
:param start_date: str--必填,开始日期
|
|
2456
|
-
:param end_date: str--必填,结束日期 (默认为策略当天日期的前一天)
|
|
2457
2450
|
:return: None
|
|
2458
2451
|
"""
|
|
2459
2452
|
|
|
@@ -3862,10 +3855,13 @@ class GJDataC:
|
|
|
3862
3855
|
# 向前查询
|
|
3863
3856
|
filtered_dates = trading_dates[trading_dates['trading_day'] < trade_time]
|
|
3864
3857
|
result = filtered_dates['trading_day'].sort_values(ascending=False).head(abs(date_count))
|
|
3865
|
-
|
|
3858
|
+
elif date_count > 0:
|
|
3866
3859
|
# 向后查询
|
|
3867
3860
|
filtered_dates = trading_dates[trading_dates['trading_day'] > trade_time]
|
|
3868
3861
|
result = filtered_dates['trading_day'].sort_values().head(date_count)
|
|
3862
|
+
else:
|
|
3863
|
+
filtered_dates = trading_dates[trading_dates['trading_day'] == trade_time]
|
|
3864
|
+
result = filtered_dates['trading_day']
|
|
3869
3865
|
|
|
3870
3866
|
# 将结果转换为指定格式的字符串列表
|
|
3871
3867
|
fina_result = sorted(result.dt.strftime('%Y.%m.%d').tolist())
|
|
@@ -3893,6 +3889,19 @@ class GJDataC:
|
|
|
3893
3889
|
time_points = pd.date_range(start=trade_time - datetime.timedelta(minutes=abs(date_count)),
|
|
3894
3890
|
end=trade_time + datetime.timedelta(minutes=abs(date_count)),
|
|
3895
3891
|
freq='min') # 'T' 表示分钟频率
|
|
3892
|
+
def _before_trading_day(_date):
|
|
3893
|
+
if _date in trading_dates['trading_day'].dt.date.values:
|
|
3894
|
+
return _date
|
|
3895
|
+
else:
|
|
3896
|
+
_previous_date = _date - datetime.timedelta(days=1)
|
|
3897
|
+
return _before_trading_day(_previous_date)
|
|
3898
|
+
|
|
3899
|
+
def _after_trading_day(_date):
|
|
3900
|
+
if _date in trading_dates['trading_day'].dt.date.values:
|
|
3901
|
+
return _date
|
|
3902
|
+
else:
|
|
3903
|
+
_previous_date = _date + datetime.timedelta(days=1)
|
|
3904
|
+
return _after_trading_day(_previous_date)
|
|
3896
3905
|
|
|
3897
3906
|
# 将时间点转换为指定格式的字符串
|
|
3898
3907
|
time_points_str = time_points.strftime('%Y.%m.%d %H:%M:%S')
|
|
@@ -3903,14 +3912,46 @@ class GJDataC:
|
|
|
3903
3912
|
# 检查时间点是否在交易日历中
|
|
3904
3913
|
if point.date() in trading_dates['trading_day'].dt.date.values:
|
|
3905
3914
|
valid_time_points.append(point_str)
|
|
3915
|
+
else:
|
|
3916
|
+
if point.date() < trade_time.date():
|
|
3917
|
+
previous_date = point.date() - datetime.timedelta(days=1)
|
|
3918
|
+
trading_date = _before_trading_day(previous_date)
|
|
3919
|
+
elif point.date() > trade_time.date():
|
|
3920
|
+
previous_date = point.date() + datetime.timedelta(days=1)
|
|
3921
|
+
trading_date = _after_trading_day(previous_date)
|
|
3922
|
+
else:
|
|
3923
|
+
trading_date = point.date()
|
|
3924
|
+
datetime_obj = datetime.datetime.combine(trading_date, datetime.time.min)
|
|
3925
|
+
|
|
3926
|
+
# 获取当天的最后一秒(23:59:59)
|
|
3927
|
+
end_of_day = datetime.datetime.combine(datetime_obj.date(), datetime.time(23, 59, 59))
|
|
3928
|
+
if trading_date < trade_time.date():
|
|
3929
|
+
_time_points = \
|
|
3930
|
+
pd.date_range(start=end_of_day - datetime.timedelta(minutes=abs(date_count)),
|
|
3931
|
+
end=end_of_day,
|
|
3932
|
+
freq='min')
|
|
3933
|
+
elif trading_date > trade_time.date():
|
|
3934
|
+
_time_points = \
|
|
3935
|
+
pd.date_range(start=datetime_obj,
|
|
3936
|
+
end=datetime_obj + datetime.timedelta(minutes=abs(date_count)),
|
|
3937
|
+
freq='min')
|
|
3938
|
+
else:
|
|
3939
|
+
_time_points = \
|
|
3940
|
+
pd.date_range(start=datetime_obj,
|
|
3941
|
+
end=datetime_obj,
|
|
3942
|
+
freq='min')
|
|
3943
|
+
_time_points = _time_points.strftime('%Y.%m.%d %H:%M:%S')
|
|
3944
|
+
valid_time_points.extend(_time_points)
|
|
3906
3945
|
|
|
3907
3946
|
# 根据 date_count 的正负决定查询方向
|
|
3908
3947
|
if date_count < 0:
|
|
3909
3948
|
# 向前查询
|
|
3910
3949
|
result = [p for p in valid_time_points if pd.to_datetime(p) < trade_time][-abs(date_count):]
|
|
3911
|
-
|
|
3950
|
+
elif date_count > 0:
|
|
3912
3951
|
# 向后查询
|
|
3913
3952
|
result = [p for p in valid_time_points if pd.to_datetime(p) > trade_time][:date_count]
|
|
3953
|
+
else:
|
|
3954
|
+
result = [p for p in valid_time_points if pd.to_datetime(p) == trade_time]
|
|
3914
3955
|
|
|
3915
3956
|
# return sorted(result) if len(result) > 1 else result[0]
|
|
3916
3957
|
return sorted(result) if len(result) > 1 else result
|
|
@@ -5,7 +5,7 @@ with open('description_info.md', 'r', encoding='utf-8') as f:
|
|
|
5
5
|
|
|
6
6
|
setup(
|
|
7
7
|
name='gjdatac_api', # 你的包名
|
|
8
|
-
version='0.
|
|
8
|
+
version='0.3.0', # 版本号
|
|
9
9
|
description='数据接口打包', # 包的简要描述
|
|
10
10
|
long_description=long_description, # 包的详细描述
|
|
11
11
|
long_description_content_type='text/markdown', # 描述文件的类型
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|