PyAlgoEngine 0.4.0.post2__tar.gz → 0.4.2__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 (34) hide show
  1. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/PKG-INFO +1 -6
  2. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/PyAlgoEngine.egg-info/PKG-INFO +1 -6
  3. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/PyAlgoEngine.egg-info/SOURCES.txt +9 -2
  4. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/PyAlgoEngine.egg-info/requires.txt +0 -1
  5. PyAlgoEngine-0.4.2/algo_engine/__init__.py +39 -0
  6. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/back_test/__init__.py +11 -0
  7. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/back_test/__main__.py +4 -4
  8. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/back_test/replay.py +3 -2
  9. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/back_test/sim_match.py +5 -3
  10. PyAlgoEngine-0.4.2/algo_engine/base/__init__.py +28 -0
  11. PyAlgoEngine-0.4.2/algo_engine/base/console_utils.py +1070 -0
  12. PyAlgoEngine-0.4.2/algo_engine/base/finance_decimal.py +258 -0
  13. PyAlgoEngine-0.4.2/algo_engine/base/market_utils.py +1522 -0
  14. PyAlgoEngine-0.4.2/algo_engine/base/technical_analysis.py +406 -0
  15. PyAlgoEngine-0.4.2/algo_engine/base/telemetrics.py +78 -0
  16. PyAlgoEngine-0.4.2/algo_engine/base/trade_utils.py +709 -0
  17. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/engine/__init__.py +13 -0
  18. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/engine/algo_engine.py +82 -46
  19. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/engine/event_engine.py +1 -1
  20. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/engine/market_engine.py +8 -10
  21. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/engine/trade_engine.py +2 -1
  22. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/monitor/advanced_data_interface.py +1 -2
  23. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/profile/__init__.py +28 -10
  24. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/profile/cn.py +44 -31
  25. {pyalgoengine-0.4.0.post2/algo_engine/strategie → PyAlgoEngine-0.4.2/algo_engine/strategy}/__init__.py +10 -3
  26. {pyalgoengine-0.4.0.post2/algo_engine/strategie → PyAlgoEngine-0.4.2/algo_engine/strategy}/strategy_engine.py +3 -2
  27. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/setup.py +0 -1
  28. pyalgoengine-0.4.0.post2/algo_engine/__init__.py +0 -74
  29. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/LICENSE +0 -0
  30. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/PyAlgoEngine.egg-info/dependency_links.txt +0 -0
  31. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/PyAlgoEngine.egg-info/top_level.txt +0 -0
  32. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/README.md +0 -0
  33. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/algo_engine/monitor/__init__.py +0 -0
  34. {pyalgoengine-0.4.0.post2 → PyAlgoEngine-0.4.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyAlgoEngine
3
- Version: 0.4.0.post2
3
+ Version: 0.4.2
4
4
  Summary: Basic algo engine
5
5
  Home-page: https://github.com/BolunHan/PyAlgoEngine
6
6
  Author: Bolun.Han
@@ -14,11 +14,6 @@ Classifier: Operating System :: OS Independent
14
14
  Requires-Python: >=3.1
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: numpy
18
- Requires-Dist: pandas
19
- Requires-Dist: exchange_calendars
20
- Requires-Dist: PyQuantKit>=0.3.1
21
- Requires-Dist: PyEventEngine>=0.3.0.post4
22
17
 
23
18
  # PyAlgoEngine
24
19
  python algo trading engine
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyAlgoEngine
3
- Version: 0.4.0.post2
3
+ Version: 0.4.2
4
4
  Summary: Basic algo engine
5
5
  Home-page: https://github.com/BolunHan/PyAlgoEngine
6
6
  Author: Bolun.Han
@@ -14,11 +14,6 @@ Classifier: Operating System :: OS Independent
14
14
  Requires-Python: >=3.1
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: numpy
18
- Requires-Dist: pandas
19
- Requires-Dist: exchange_calendars
20
- Requires-Dist: PyQuantKit>=0.3.1
21
- Requires-Dist: PyEventEngine>=0.3.0.post4
22
17
 
23
18
  # PyAlgoEngine
24
19
  python algo trading engine
@@ -11,6 +11,13 @@ algo_engine/back_test/__init__.py
11
11
  algo_engine/back_test/__main__.py
12
12
  algo_engine/back_test/replay.py
13
13
  algo_engine/back_test/sim_match.py
14
+ algo_engine/base/__init__.py
15
+ algo_engine/base/console_utils.py
16
+ algo_engine/base/finance_decimal.py
17
+ algo_engine/base/market_utils.py
18
+ algo_engine/base/technical_analysis.py
19
+ algo_engine/base/telemetrics.py
20
+ algo_engine/base/trade_utils.py
14
21
  algo_engine/engine/__init__.py
15
22
  algo_engine/engine/algo_engine.py
16
23
  algo_engine/engine/event_engine.py
@@ -20,5 +27,5 @@ algo_engine/monitor/__init__.py
20
27
  algo_engine/monitor/advanced_data_interface.py
21
28
  algo_engine/profile/__init__.py
22
29
  algo_engine/profile/cn.py
23
- algo_engine/strategie/__init__.py
24
- algo_engine/strategie/strategy_engine.py
30
+ algo_engine/strategy/__init__.py
31
+ algo_engine/strategy/strategy_engine.py
@@ -1,5 +1,4 @@
1
1
  numpy
2
2
  pandas
3
3
  exchange_calendars
4
- PyQuantKit>=0.3.1
5
4
  PyEventEngine>=0.3.0.post4
@@ -0,0 +1,39 @@
1
+ __version__ = "0.4.2"
2
+
3
+ import logging
4
+ import os
5
+ import traceback
6
+
7
+ from . import profile
8
+ from .base.telemetrics import LOGGER
9
+
10
+ if 'ALGO_DIR' in os.environ:
11
+ WORKING_DIRECTORY = os.path.realpath(os.environ['ALGO_DIR'])
12
+ else:
13
+ WORKING_DIRECTORY = str(os.getcwd())
14
+
15
+
16
+ def set_logger(logger: logging.Logger):
17
+ base.set_logger(logger=logger)
18
+ engine.set_logger(logger=logger.getChild('Engine'))
19
+ back_test.set_logger(logger=logger.getChild('BackTest'))
20
+ strategy.set_logger(logger=logger.getChild('Strategy'))
21
+
22
+
23
+ from . import base
24
+ from . import engine
25
+ from . import back_test
26
+ from . import strategy
27
+
28
+ engine.LOGGER.info(f'AlgoEngine version {__version__}')
29
+
30
+ # import addon module
31
+ try:
32
+ from . import algo_addon
33
+
34
+ engine.LOGGER.info(f'PyAlgoEngineAddons import successful, version {algo_addon.__version__}')
35
+ except ImportError:
36
+ algo_addon = None
37
+ engine.LOGGER.debug(f'Install PyAlgoEngineAddons to use additional trading algos module\n{traceback.format_exc()}')
38
+
39
+ __all__ = ['LOGGER', 'base', 'engine', 'back_test', 'strategy', 'algo_addon']
@@ -1,7 +1,18 @@
1
+ import logging
2
+
1
3
  from .. import LOGGER
2
4
 
3
5
  LOGGER = LOGGER.getChild('BackTest')
4
6
 
7
+
8
+ def set_logger(logger: logging.Logger):
9
+ global LOGGER
10
+ LOGGER = logger
11
+
12
+ replay.LOGGER = LOGGER.getChild('Replay')
13
+ sim_match.LOGGER = LOGGER.getChild('SimMatch')
14
+
15
+
5
16
  from .replay import Replay, SimpleReplay, ProgressiveReplay
6
17
  from .sim_match import SimMatch
7
18
 
@@ -3,12 +3,12 @@ __package__ = 'algo_engine.back_test'
3
3
  import datetime
4
4
  from typing import Callable
5
5
 
6
- import EventEngine
6
+ import event_engine
7
7
 
8
8
  from ..engine import TOPIC, MarketDataService, Balance, RiskProfile, PositionManagementService
9
9
  from ..engine.algo_engine import AlgoRegistry, AlgoEngine
10
- from ..strategie import EventDMA
11
- from ..strategie.strategy_engine import StrategyEngine
10
+ from ..strategy import EventDMA
11
+ from ..strategy.strategy_engine import StrategyEngine
12
12
 
13
13
 
14
14
  def test_stop(code=0):
@@ -29,7 +29,7 @@ def test_start(start_date: datetime.date, end_date: datetime.date, data_loader:
29
29
 
30
30
 
31
31
  # in backtest, the global objects is newly inited to separate from production
32
- EVENT_ENGINE = EventEngine.EventEngine()
32
+ EVENT_ENGINE = event_engine.EventEngine()
33
33
  MDS = MarketDataService()
34
34
  ALGO_REGISTRY = AlgoRegistry()
35
35
  ALGO_ENGINE = AlgoEngine(mds=MDS, registry=ALGO_REGISTRY)
@@ -3,9 +3,10 @@ import datetime
3
3
  import inspect
4
4
  from typing import Iterable
5
5
 
6
- from PyQuantKit import Progress, TickData, TransactionData, TradeData, OrderBook
7
-
8
6
  from . import LOGGER
7
+ from ..base import Progress, TickData, TransactionData, TradeData, OrderBook
8
+
9
+ LOGGER = LOGGER.getChild('Replay')
9
10
 
10
11
 
11
12
  class Replay(object, metaclass=abc.ABCMeta):
@@ -1,9 +1,11 @@
1
1
  import datetime
2
2
 
3
- from PyQuantKit import OrderType, MarketData, BarData, TradeData, TickData, OrderState, OrderBook, TradeReport, TradeInstruction
4
-
5
3
  from . import LOGGER
4
+ from ..base import OrderType, MarketData, BarData, TradeData, TickData, OrderState, OrderBook, TradeReport, TradeInstruction
6
5
  from ..engine.event_engine import TOPIC, EVENT_ENGINE
6
+ from ..profile import PROFILE
7
+
8
+ LOGGER = LOGGER.getChild('SimMatch')
7
9
 
8
10
 
9
11
  class SimMatch(object):
@@ -290,4 +292,4 @@ class SimMatch(object):
290
292
 
291
293
  @property
292
294
  def market_time(self) -> datetime.datetime:
293
- return datetime.datetime.fromtimestamp(self.timestamp)
295
+ return datetime.datetime.fromtimestamp(self.timestamp, tz=PROFILE.time_zone)
@@ -0,0 +1,28 @@
1
+ import logging
2
+
3
+ from .telemetrics import LOGGER
4
+ from ..profile import PROFILE
5
+
6
+
7
+ def set_logger(logger: logging.Logger):
8
+ global LOGGER
9
+ LOGGER = logger
10
+
11
+ market_utils.LOGGER = logger.getChild('MarketUtils')
12
+ trade_utils.LOGGER = logger.getChild('TradeUtils')
13
+ technical_analysis.LOGGER = logger.getChild('TA')
14
+ console_utils.LOGGER = logger.getChild('Console')
15
+
16
+
17
+ from .finance_decimal import FinancialDecimal
18
+ from .market_utils import TransactionSide, MarketData, OrderBook, BarData, TickData, TransactionData, TradeData, OrderBookBuffer, BarDataBuffer, TickDataBuffer, TransactionDataBuffer
19
+ from .technical_analysis import TechnicalAnalysis
20
+ from .trade_utils import OrderState, OrderType, TradeInstruction, TradeReport
21
+ from .console_utils import Progress, GetInput, GetArgs, count_ordinal, TerminalStyle, InteractiveShell, ShellTransfer
22
+
23
+ __all__ = ['PROFILE',
24
+ 'FinancialDecimal',
25
+ 'TransactionSide', 'MarketData', 'OrderBook', 'BarData', 'TickData', 'TransactionData', 'TradeData', 'OrderBookBuffer', 'BarDataBuffer', 'TickDataBuffer', 'TransactionDataBuffer',
26
+ 'TechnicalAnalysis',
27
+ 'OrderState', 'OrderType', 'TradeInstruction', 'TradeReport',
28
+ 'Progress', 'GetInput', 'GetArgs', 'count_ordinal', 'TerminalStyle', 'InteractiveShell', 'ShellTransfer']