pyqqq 0.12.177__tar.gz → 0.12.178__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.
Potentially problematic release.
This version of pyqqq might be problematic. Click here for more details.
- {pyqqq-0.12.177 → pyqqq-0.12.178}/PKG-INFO +1 -1
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyproject.toml +1 -1
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/backtest/broker.py +1 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/kis/simple.py +5 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/data/minutes.py +4 -4
- {pyqqq-0.12.177 → pyqqq-0.12.178}/README.md +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/__init__.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/ai/__init__.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/ai/daily.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/ai/domestic.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/ai/market_schedule.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/ai/minute.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/backtest/__init__.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/backtest/environment.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/backtest/logger.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/backtest/positionprovider.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/backtest/strategy.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/backtest/utils.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/backtest/wallclock.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/__init__.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/ebest/__init__.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/ebest/domestic_stock.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/ebest/oauth.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/ebest/simple.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/ebest/tr_client.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/helper.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/kis/__init__.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/kis/domestic_stock.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/kis/oauth.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/kis/overseas_stock.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/kis/simple_overseas.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/kis/tr_client.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/multiprocess_tracker.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/brokerage/tracker.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/config.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/data/__init__.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/data/daily.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/data/domestic.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/data/index.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/data/overseas.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/data/realtime.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/data/ticks.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/data/us_stocks.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/datatypes.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/executors/__init__.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/executors/hook.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/__init__.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/api_client.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/array.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/casting.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/compute.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/copycat.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/daily_tickers.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/display.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/kvstore.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/limiter.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/local_cache.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/logger.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/market_schedule.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/mock_api.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/position_classifier.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/retry.py +0 -0
- {pyqqq-0.12.177 → pyqqq-0.12.178}/pyqqq/utils/singleton.py +0 -0
|
@@ -314,6 +314,7 @@ class TradingBroker(BaseBroker):
|
|
|
314
314
|
result = self.data_api.get_historical_daily_data(code, from_date, to_date, adjusted_price=True, data_exchange=DataExchange.KRX)
|
|
315
315
|
else:
|
|
316
316
|
result = self.data_api.get_historical_daily_data(code, from_date, to_date, adjusted_price=True, data_exchange=DataExchange.KRX)
|
|
317
|
+
result = result.sort_index(ascending=True)
|
|
317
318
|
return result
|
|
318
319
|
|
|
319
320
|
def get_orderbook(self, code: str, data_exchange: Optional[DataExchange] = None):
|
|
@@ -291,6 +291,7 @@ class KISSimpleDomesticStock:
|
|
|
291
291
|
분봉 데이터 검색
|
|
292
292
|
|
|
293
293
|
Note:
|
|
294
|
+
- 시간외 종가, 시간외 단일가 데이터는 포함되어 있지 않습니다.
|
|
294
295
|
- 두 거래소에서 공통으로 거래정지된 종목의 시가/고가/저가/종가는 모두 동일하며, 그 외 값은 모두 0 입니다.
|
|
295
296
|
- NXT 매매체결 종목이 아니거나, NXT 거래소에서 거래가 불가능한 종목을 DataExchange.NXT 또는 DataExchange.UN으로 조회하면, 모든 값은 0 입니다.
|
|
296
297
|
|
|
@@ -307,6 +308,10 @@ class KISSimpleDomesticStock:
|
|
|
307
308
|
result = []
|
|
308
309
|
schedule = get_market_schedule(dtm.date.today(), exchange="KRX" if data_exchange == DataExchange.KRX else "NXT")
|
|
309
310
|
|
|
311
|
+
# 만약 현재 시간이 거래소 마감 시간을 지났다면, 마감 시간으로 설정
|
|
312
|
+
if request_time.time() > schedule.close_time:
|
|
313
|
+
request_time = request_datetime.replace(hour=schedule.close_time.hour, minute=schedule.close_time.minute)
|
|
314
|
+
|
|
310
315
|
while True:
|
|
311
316
|
r = self.stock_api.inquire_time_itemchartprice(
|
|
312
317
|
asset_code,
|
|
@@ -18,7 +18,7 @@ minuteCache = DiskCacheManager("minute_cache")
|
|
|
18
18
|
@minuteCache.memoize()
|
|
19
19
|
def get_all_minute_data(
|
|
20
20
|
time: datetime.datetime,
|
|
21
|
-
source: str = "
|
|
21
|
+
source: str = "kis",
|
|
22
22
|
adjusted: bool = True,
|
|
23
23
|
exchange: Union[str, DataExchange] = "KRX",
|
|
24
24
|
) -> pd.DataFrame:
|
|
@@ -31,7 +31,7 @@ def get_all_minute_data(
|
|
|
31
31
|
|
|
32
32
|
Args:
|
|
33
33
|
time (datetime.datetime): 조회할 시간
|
|
34
|
-
source (str): 데이터를 검색할 API. 'ebest' 또는 'kis'를 지정할 수 있습니다. 기본값은 '
|
|
34
|
+
source (str): 데이터를 검색할 API. 'ebest' 또는 'kis'를 지정할 수 있습니다. 기본값은 'kis'입니다.
|
|
35
35
|
adjusted (bool): 수정주가 여부. 기본값은 True.
|
|
36
36
|
exchange (Union[str, DataExchange]): 거래소. 기본값은 KRX.
|
|
37
37
|
|
|
@@ -130,7 +130,7 @@ def get_all_day_data(
|
|
|
130
130
|
date: datetime.date,
|
|
131
131
|
codes: list[str] | str,
|
|
132
132
|
period: datetime.timedelta = datetime.timedelta(minutes=1),
|
|
133
|
-
source: str = "
|
|
133
|
+
source: str = "kis",
|
|
134
134
|
adjusted: bool = True,
|
|
135
135
|
ascending: bool = True,
|
|
136
136
|
exchange: Union[str, DataExchange] = "KRX",
|
|
@@ -146,7 +146,7 @@ def get_all_day_data(
|
|
|
146
146
|
date (datetime.date): 데이터를 검색할 날짜.
|
|
147
147
|
codes (list[str]): 조회할 주식 코드들의 리스트. 최대 20개까지 지정할 수 있습니다.
|
|
148
148
|
period (datetime.timedelta, optional): 반환된 데이터의 시간 간격. 기본값은 1분입니다. 30초 이상의 값을 30초간격으로 지정할 수 있습니다.
|
|
149
|
-
source (str, optional): 데이터를 검색할 API. 'ebest' 또는 'kis'를 지정할 수 있습니다. 기본값은 '
|
|
149
|
+
source (str, optional): 데이터를 검색할 API. 'ebest' 또는 'kis'를 지정할 수 있습니다. 기본값은 'kis'입니다.
|
|
150
150
|
adjusted (bool): 수정주가 여부. 기본값은 True.
|
|
151
151
|
ascending (bool): 오름차순 여부. 기본값은 True.
|
|
152
152
|
exchange (Union[str, DataExchange]): 거래소. 기본값은 KRX. (cf. NXT의 경우 해당되지 않는 종목은 Empty DataFrame이 반환됩니다.)
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|