PyAlgoEngine 0.3.12.post4__tar.gz → 0.3.13.post1__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.
Files changed (19) hide show
  1. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/AlgoEngine/Engine/AlgoEngine.py +0 -0
  2. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/AlgoEngine/Engine/EventEngine.py +0 -0
  3. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/AlgoEngine/Engine/MarketEngine.py +1 -1
  4. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/AlgoEngine/Engine/TradeEngine.py +9 -2
  5. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/AlgoEngine/Engine/__init__.py +0 -0
  6. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/AlgoEngine/Strategies/BackTest.py +0 -0
  7. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/AlgoEngine/Strategies/_StrategyEngine.py +0 -0
  8. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/AlgoEngine/Strategies/__init__.py +0 -0
  9. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/AlgoEngine/__init__.py +1 -1
  10. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/LICENSE +0 -0
  11. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/PKG-INFO +6 -1
  12. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/PyAlgoEngine.egg-info/PKG-INFO +6 -1
  13. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/PyAlgoEngine.egg-info/SOURCES.txt +0 -0
  14. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/PyAlgoEngine.egg-info/dependency_links.txt +0 -0
  15. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/PyAlgoEngine.egg-info/requires.txt +0 -0
  16. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/PyAlgoEngine.egg-info/top_level.txt +0 -0
  17. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/README.md +0 -0
  18. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/setup.cfg +0 -0
  19. {PyAlgoEngine-0.3.12.post4 → pyalgoengine-0.3.13.post1}/setup.py +0 -0
@@ -1022,7 +1022,7 @@ class ProgressiveReplay(Replay):
1022
1022
  data = self.replay_task[self.task_progress]
1023
1023
  self.task_progress += 1
1024
1024
  else:
1025
- if self.eod is not None and self.date_progress and self.replay_calendar[self.date_progress] > self.start_date:
1025
+ if self.eod is not None and self.date_progress and (self.date_progress >= len(self.replay_calendar) or self.replay_calendar[self.date_progress] > self.start_date):
1026
1026
  self.eod(market_date=self.replay_calendar[self.date_progress - 1], replay=self)
1027
1027
 
1028
1028
  self.replay_task.clear()
@@ -1988,8 +1988,9 @@ class RiskProfile(object):
1988
1988
 
1989
1989
 
1990
1990
  class SimMatch(object):
1991
- def __init__(self, ticker, event_engine=None, **kwargs):
1991
+ def __init__(self, ticker, instant_fill: bool = False, event_engine=None, **kwargs):
1992
1992
  self.ticker = ticker
1993
+ self.instant_fill = instant_fill
1993
1994
  self.event_engine = event_engine if event_engine is not None else EVENT_ENGINE
1994
1995
  self.topic_set = kwargs.pop('topic_set', TOPIC)
1995
1996
 
@@ -2000,7 +2001,7 @@ class SimMatch(object):
2000
2001
  self.market_time = datetime.datetime.min
2001
2002
 
2002
2003
  def __call__(self, **kwargs):
2003
- order: TradeInstruction = kwargs.pop('order', None)
2004
+ order: TradeInstruction | None = kwargs.pop('order', None)
2004
2005
  market_data = kwargs.pop('market_data', None)
2005
2006
 
2006
2007
  if order is not None:
@@ -2052,6 +2053,12 @@ class SimMatch(object):
2052
2053
  kwargs['market_time'] = self.market_time
2053
2054
  self.on_order(order=order, **kwargs)
2054
2055
 
2056
+ if self.instant_fill:
2057
+ if order.limit_price:
2058
+ self._match(order=order, match_price=order.limit_price)
2059
+ else:
2060
+ LOGGER.warning(f'No limit price provided for {order}, instant_fill mode not available.')
2061
+
2055
2062
  def cancel_order(self, order: TradeInstruction = None, order_id: str = None, **kwargs):
2056
2063
  if order is None and order_id is None:
2057
2064
  raise ValueError('Must assign a order or order_id to cancel order')
@@ -1,4 +1,4 @@
1
- __version__ = "0.3.12.post4"
1
+ __version__ = "0.3.13.post1"
2
2
 
3
3
  import traceback
4
4
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyAlgoEngine
3
- Version: 0.3.12.post4
3
+ Version: 0.3.13.post1
4
4
  Summary: Basic algo engine
5
5
  Home-page: https://github.com/BolunHan/PyAlgoEngine
6
6
  Author: Bolun.Han
@@ -12,6 +12,11 @@ Classifier: Operating System :: OS Independent
12
12
  Requires-Python: >=3.8
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
+ Requires-Dist: numpy
16
+ Requires-Dist: pandas
17
+ Requires-Dist: exchange_calendars
18
+ Requires-Dist: PyQuantKit
19
+ Requires-Dist: PyEventEngine
15
20
 
16
21
  # PyAlgoEngine
17
22
  python algo trading engine
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyAlgoEngine
3
- Version: 0.3.12.post4
3
+ Version: 0.3.13.post1
4
4
  Summary: Basic algo engine
5
5
  Home-page: https://github.com/BolunHan/PyAlgoEngine
6
6
  Author: Bolun.Han
@@ -12,6 +12,11 @@ Classifier: Operating System :: OS Independent
12
12
  Requires-Python: >=3.8
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
+ Requires-Dist: numpy
16
+ Requires-Dist: pandas
17
+ Requires-Dist: exchange_calendars
18
+ Requires-Dist: PyQuantKit
19
+ Requires-Dist: PyEventEngine
15
20
 
16
21
  # PyAlgoEngine
17
22
  python algo trading engine