pyqqq 0.12.192__tar.gz → 0.12.194__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.

Files changed (58) hide show
  1. {pyqqq-0.12.192 → pyqqq-0.12.194}/PKG-INFO +1 -1
  2. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyproject.toml +1 -1
  3. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/kis/tr_client.py +2 -1
  4. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/tracker.py +18 -0
  5. {pyqqq-0.12.192 → pyqqq-0.12.194}/README.md +0 -0
  6. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/__init__.py +0 -0
  7. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/backtest/__init__.py +0 -0
  8. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/backtest/broker.py +0 -0
  9. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/backtest/environment.py +0 -0
  10. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/backtest/logger.py +0 -0
  11. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/backtest/positionprovider.py +0 -0
  12. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/backtest/strategy.py +0 -0
  13. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/backtest/utils.py +0 -0
  14. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/backtest/wallclock.py +0 -0
  15. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/__init__.py +0 -0
  16. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/ebest/__init__.py +0 -0
  17. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/ebest/domestic_stock.py +0 -0
  18. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/ebest/oauth.py +0 -0
  19. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/ebest/simple.py +0 -0
  20. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/ebest/tr_client.py +0 -0
  21. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/helper.py +0 -0
  22. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/kis/__init__.py +0 -0
  23. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/kis/domestic_stock.py +0 -0
  24. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/kis/oauth.py +0 -0
  25. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/kis/overseas_stock.py +0 -0
  26. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/kis/simple.py +0 -0
  27. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/kis/simple_overseas.py +0 -0
  28. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/brokerage/multiprocess_tracker.py +0 -0
  29. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/config.py +0 -0
  30. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/data/__init__.py +0 -0
  31. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/data/daily.py +0 -0
  32. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/data/domestic.py +0 -0
  33. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/data/index.py +0 -0
  34. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/data/minutes.py +0 -0
  35. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/data/overseas.py +0 -0
  36. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/data/realtime.py +0 -0
  37. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/data/ticks.py +0 -0
  38. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/data/us_stocks.py +0 -0
  39. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/datatypes.py +0 -0
  40. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/executors/__init__.py +0 -0
  41. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/executors/hook.py +0 -0
  42. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/__init__.py +0 -0
  43. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/api_client.py +0 -0
  44. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/array.py +0 -0
  45. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/casting.py +0 -0
  46. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/compute.py +0 -0
  47. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/copycat.py +0 -0
  48. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/daily_tickers.py +0 -0
  49. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/display.py +0 -0
  50. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/kvstore.py +0 -0
  51. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/limiter.py +0 -0
  52. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/local_cache.py +0 -0
  53. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/logger.py +0 -0
  54. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/market_schedule.py +0 -0
  55. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/mock_api.py +0 -0
  56. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/position_classifier.py +0 -0
  57. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/retry.py +0 -0
  58. {pyqqq-0.12.192 → pyqqq-0.12.194}/pyqqq/utils/singleton.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyqqq
3
- Version: 0.12.192
3
+ Version: 0.12.194
4
4
  Summary: Package for quantitative strategy development on the PyQQQ platform
5
5
  License: MIT
6
6
  Author: PyQQQ team
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "pyqqq"
3
- version = "0.12.192"
3
+ version = "0.12.194"
4
4
  description = "Package for quantitative strategy development on the PyQQQ platform"
5
5
  authors = ["PyQQQ team <pyqqq.cs@gmail.com>"]
6
6
  readme = "README.md"
@@ -23,6 +23,7 @@ class KISTRClient:
23
23
  def __init__(self, auth: KISAuth, corp_data: dict = None):
24
24
  self.auth = auth
25
25
  self.corp_data = corp_data
26
+ self.session = requests.Session()
26
27
 
27
28
  @retry(requests.HTTPError)
28
29
  def request(self, path: str, tr_id: str, tr_cont: str = "", params: dict = None, body: dict = None, method: str = "GET"):
@@ -57,7 +58,7 @@ class KISTRClient:
57
58
 
58
59
  url = f"{self.auth.host_url}{path}"
59
60
 
60
- r = requests.request(method=method, url=url, headers=headers, params=params, json=body)
61
+ r = self.session.request(method=method, url=url, headers=headers, params=params, json=body)
61
62
 
62
63
  if r.status_code != 200:
63
64
  try:
@@ -31,6 +31,7 @@ class TrackerSocket:
31
31
  self.stop_event = asyncio.Event()
32
32
  self.logger = get_logger(__name__ + ".TrackerSocket")
33
33
  self.trading_tracker_counter = 1
34
+ self.only_my_account = True
34
35
  self.event_callbacks: Dict[callable] = {}
35
36
 
36
37
  async def start(self):
@@ -64,6 +65,9 @@ class TrackerSocket:
64
65
  Args:
65
66
  event (OrderEvent): 주문 이벤트 객체
66
67
  """
68
+ if event is None or (self.only_my_account and not self._check_account_match(event.account_no)):
69
+ return
70
+
67
71
  self.logger.debug(f"Relay order event: {event}")
68
72
 
69
73
  for callback in self.event_callbacks.values():
@@ -120,6 +124,20 @@ class TrackerSocket:
120
124
 
121
125
  self.task = asyncio.create_task(self._monitor_schedule())
122
126
 
127
+ def _check_account_match(self, event_account_no):
128
+ my_account_no = f"{self.simple_api.account_no}{self.simple_api.account_product_code}"
129
+
130
+ if event_account_no is not None and my_account_no == event_account_no:
131
+ return True
132
+ else:
133
+ return False
134
+
135
+ def activate_all_account_event(self):
136
+ """
137
+ 내 hts_id에 연동된 모든 계좌의 주문을 수신하도록 설정합니다.
138
+ """
139
+ self.only_my_account = False
140
+
123
141
 
124
142
  class TradingTracker:
125
143
  """
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