PyAlgoEngine 0.7.6.post6__tar.gz → 0.7.6.post8__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.
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/PKG-INFO +1 -1
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/PyAlgoEngine.egg-info/PKG-INFO +1 -1
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/__init__.py +1 -1
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/engine/__init__.py +3 -3
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/engine/algo_engine.py +3 -5
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/engine/market_engine.py +1 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/LICENSE +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/PyAlgoEngine.egg-info/SOURCES.txt +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/PyAlgoEngine.egg-info/dependency_links.txt +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/PyAlgoEngine.egg-info/requires.txt +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/PyAlgoEngine.egg-info/top_level.txt +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/README.md +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/__init__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/backtest/__init__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/backtest/doc_server.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/backtest/tester.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/backtest/web_app.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/bokeh_server.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/demo/__init__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/demo/test.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/sim_input/__init__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/sim_input/client.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/sim_input/sim_keyboard.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/sim_input/sim_mouse.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/sim_input/window.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/backtest/__init__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/backtest/__main__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/backtest/metrics.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/backtest/replay.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/backtest/sim_match.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/__init__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/console_utils.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/finance_decimal.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/market_buffer.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/market_utils.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/market_utils_nt.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/market_utils_posix.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/technical_analysis.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/telemetrics.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/trade_utils.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/engine/event_engine.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/engine/trade_engine.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/monitor/__init__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/monitor/advanced_data_interface.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/profile/__init__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/profile/cn.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/strategy/__init__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/strategy/strategy_engine.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/utils/__init__.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/utils/commit_regularizer.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/utils/data_utils.py +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/setup.cfg +0 -0
- {pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/setup.py +0 -0
|
@@ -17,12 +17,12 @@ def set_logger(logger: logging.Logger):
|
|
|
17
17
|
trade_engine.LOGGER = logger.getChild('TradeEngine')
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
from .algo_engine import AlgoTemplate, ALGO_ENGINE, ALGO_REGISTRY
|
|
21
20
|
from .event_engine import EVENT_ENGINE, TOPIC
|
|
22
|
-
from .market_engine import MDS, MarketDataService, MarketDataMonitor, MonitorManager
|
|
21
|
+
from .market_engine import MDS, MarketDataService, MarketDataMonitor, MonitorManager, Singleton
|
|
22
|
+
from .algo_engine import AlgoTemplate, ALGO_ENGINE, ALGO_REGISTRY
|
|
23
23
|
from .trade_engine import DirectMarketAccess, Balance, PositionManagementService, Inventory, RiskProfile
|
|
24
24
|
|
|
25
25
|
__all__ = ['EVENT_ENGINE', 'TOPIC',
|
|
26
26
|
'AlgoTemplate', 'ALGO_ENGINE', 'ALGO_REGISTRY',
|
|
27
|
-
'MDS', 'MarketDataService', 'MarketDataMonitor', 'MonitorManager',
|
|
27
|
+
'MDS', 'MarketDataService', 'MarketDataMonitor', 'MonitorManager', 'Singleton',
|
|
28
28
|
'DirectMarketAccess', 'Balance', 'PositionManagementService', 'Inventory', 'RiskProfile']
|
|
@@ -10,7 +10,7 @@ from typing import Type, TYPE_CHECKING
|
|
|
10
10
|
import numpy as np
|
|
11
11
|
|
|
12
12
|
from . import LOGGER
|
|
13
|
-
from .market_engine import MDS
|
|
13
|
+
from .market_engine import MDS, Singleton
|
|
14
14
|
from ..base import TransactionSide, TradeInstruction, MarketData, TradeReport, OrderState, OrderType
|
|
15
15
|
|
|
16
16
|
LOGGER = LOGGER.getChild('AlgoEngine')
|
|
@@ -712,7 +712,7 @@ class AggressiveTimeout(PassiveTimeout, Aggressive):
|
|
|
712
712
|
return Aggressive._canceled(self=self, order=order, **kwargs)
|
|
713
713
|
|
|
714
714
|
|
|
715
|
-
class AlgoEngine(object):
|
|
715
|
+
class AlgoEngine(object, metaclass=Singleton):
|
|
716
716
|
def __init__(self, mds=None, registry=None):
|
|
717
717
|
self.mds = mds if mds is not None else MDS
|
|
718
718
|
self.registry = registry if registry is not None else ALGO_REGISTRY
|
|
@@ -837,7 +837,7 @@ class AlgoEngine(object):
|
|
|
837
837
|
return algo
|
|
838
838
|
|
|
839
839
|
|
|
840
|
-
class AlgoRegistry(object):
|
|
840
|
+
class AlgoRegistry(object, metaclass=Singleton):
|
|
841
841
|
"""
|
|
842
842
|
registry for trade algos
|
|
843
843
|
|
|
@@ -847,8 +847,6 @@ class AlgoRegistry(object):
|
|
|
847
847
|
"""
|
|
848
848
|
|
|
849
849
|
def __init__(self):
|
|
850
|
-
super().__init__()
|
|
851
|
-
|
|
852
850
|
self.alias = {}
|
|
853
851
|
self.registry = {}
|
|
854
852
|
|
|
@@ -189,6 +189,7 @@ class MarketDataService(object, metaclass=Singleton):
|
|
|
189
189
|
def add_monitor(self, monitor: MarketDataMonitor):
|
|
190
190
|
self.monitor[monitor.monitor_id] = monitor
|
|
191
191
|
self.monitor_manager.add_monitor(monitor)
|
|
192
|
+
monitor.mds = self
|
|
192
193
|
|
|
193
194
|
def pop_monitor(self, monitor: MarketDataMonitor = None, monitor_id: str = None, monitor_name: str = None):
|
|
194
195
|
if monitor_id is not None:
|
|
File without changes
|
|
File without changes
|
{pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/PyAlgoEngine.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/backtest/doc_server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/sim_input/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/sim_input/sim_keyboard.py
RENAMED
|
File without changes
|
{pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/apps/sim_input/sim_mouse.py
RENAMED
|
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
|
{pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/market_utils_posix.py
RENAMED
|
File without changes
|
{pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/base/technical_analysis.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/monitor/advanced_data_interface.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/strategy/strategy_engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyalgoengine-0.7.6.post6 → pyalgoengine-0.7.6.post8}/algo_engine/utils/commit_regularizer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|