PyAlgoEngine 0.8.0a2__tar.gz → 0.8.0a3__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 (55) hide show
  1. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/PKG-INFO +1 -1
  2. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/PyAlgoEngine.egg-info/PKG-INFO +1 -1
  3. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/PyAlgoEngine.egg-info/SOURCES.txt +0 -3
  4. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/__init__.py +1 -1
  5. pyalgoengine-0.8.0a3/algo_engine/base/__init__.py +61 -0
  6. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/setup.py +35 -3
  7. pyalgoengine-0.8.0a2/algo_engine/base/__init__.py +0 -44
  8. pyalgoengine-0.8.0a2/algo_engine/base/market_buffer.py +0 -571
  9. pyalgoengine-0.8.0a2/algo_engine/base/market_data_wrapper.py +0 -483
  10. pyalgoengine-0.8.0a2/algo_engine/base/market_utils.py +0 -3092
  11. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/LICENSE +0 -0
  12. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/PyAlgoEngine.egg-info/dependency_links.txt +0 -0
  13. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/PyAlgoEngine.egg-info/requires.txt +0 -0
  14. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/PyAlgoEngine.egg-info/top_level.txt +0 -0
  15. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/README.md +0 -0
  16. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/__init__.py +0 -0
  17. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/backtest/__init__.py +0 -0
  18. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/backtest/doc_server.py +0 -0
  19. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/backtest/tester.py +0 -0
  20. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/backtest/web_app.py +0 -0
  21. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/bokeh_server.py +0 -0
  22. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/demo/__init__.py +0 -0
  23. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/demo/test.py +0 -0
  24. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/sim_input/__init__.py +0 -0
  25. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/sim_input/client.py +0 -0
  26. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/sim_input/sim_keyboard.py +0 -0
  27. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/sim_input/sim_mouse.py +0 -0
  28. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/apps/sim_input/window.py +0 -0
  29. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/backtest/__init__.py +0 -0
  30. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/backtest/__main__.py +0 -0
  31. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/backtest/metrics.py +0 -0
  32. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/backtest/replay.py +0 -0
  33. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/backtest/sim_match.py +0 -0
  34. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/base/console_utils.py +0 -0
  35. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/base/finance_decimal.py +0 -0
  36. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/base/market_utils_nt.py +0 -0
  37. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/base/market_utils_posix.py +0 -0
  38. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/base/technical_analysis.py +0 -0
  39. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/base/telemetrics.py +0 -0
  40. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/base/trade_utils.py +0 -0
  41. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/engine/__init__.py +0 -0
  42. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/engine/algo_engine.py +0 -0
  43. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/engine/event_engine.py +0 -0
  44. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/engine/market_engine.py +0 -0
  45. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/engine/trade_engine.py +0 -0
  46. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/monitor/__init__.py +0 -0
  47. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/monitor/advanced_data_interface.py +0 -0
  48. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/profile/__init__.py +0 -0
  49. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/profile/cn.py +0 -0
  50. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/strategy/__init__.py +0 -0
  51. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/strategy/strategy_engine.py +0 -0
  52. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/utils/__init__.py +0 -0
  53. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/utils/commit_regularizer.py +0 -0
  54. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/algo_engine/utils/data_utils.py +0 -0
  55. {pyalgoengine-0.8.0a2 → pyalgoengine-0.8.0a3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyAlgoEngine
3
- Version: 0.8.0a2
3
+ Version: 0.8.0a3
4
4
  Summary: Basic algo engine
5
5
  Home-page: https://github.com/BolunHan/PyAlgoEngine
6
6
  Author: Bolun.Han
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyAlgoEngine
3
- Version: 0.8.0a2
3
+ Version: 0.8.0a3
4
4
  Summary: Basic algo engine
5
5
  Home-page: https://github.com/BolunHan/PyAlgoEngine
6
6
  Author: Bolun.Han
@@ -28,9 +28,6 @@ algo_engine/backtest/sim_match.py
28
28
  algo_engine/base/__init__.py
29
29
  algo_engine/base/console_utils.py
30
30
  algo_engine/base/finance_decimal.py
31
- algo_engine/base/market_buffer.py
32
- algo_engine/base/market_data_wrapper.py
33
- algo_engine/base/market_utils.py
34
31
  algo_engine/base/market_utils_nt.py
35
32
  algo_engine/base/market_utils_posix.py
36
33
  algo_engine/base/technical_analysis.py
@@ -1,4 +1,4 @@
1
- __version__ = "0.8.0.alpha2"
1
+ __version__ = "0.8.0.alpha3"
2
2
 
3
3
  import logging
4
4
  import os
@@ -0,0 +1,61 @@
1
+ import logging
2
+ import os
3
+ import pathlib
4
+
5
+ from .telemetrics import LOGGER
6
+ from ..profile import PROFILE
7
+
8
+
9
+ def set_logger(logger: logging.Logger):
10
+ global LOGGER
11
+ LOGGER = logger
12
+
13
+ if os.name == 'nt':
14
+ market_utils_nt.LOGGER = logger.getChild('MarketUtils')
15
+ else:
16
+ market_utils_posix.LOGGER = logger.getChild('MarketUtils')
17
+
18
+ trade_utils.LOGGER = logger.getChild('TradeUtils')
19
+ technical_analysis.LOGGER = logger.getChild('TA')
20
+ console_utils.LOGGER = logger.getChild('Console')
21
+
22
+
23
+ def check_cython_module() -> bool:
24
+ for name in ['market_data', 'transaction', 'tick', 'candlestick']:
25
+ cython_ext = '.pyd' if os.name == 'nt' else '.so'
26
+ for file in pathlib.Path(__file__).parent.glob(f'*{cython_ext}'):
27
+ if file.name.startswith(name):
28
+ break
29
+ else:
30
+ LOGGER.warning(f'Cython module {name} not found!')
31
+ return False
32
+
33
+ return True
34
+
35
+
36
+ from .finance_decimal import FinancialDecimal
37
+
38
+ if check_cython_module():
39
+ from .market_data import MarketData
40
+ from .transaction import TransactionDirection, TransactionOffset, TransactionSide, OrderType, TransactionData, TradeData, OrderData
41
+ from .tick import TickDataLite, TickData
42
+ from .candlestick import BarData, DailyBar
43
+ elif os.name == 'nt':
44
+ from .market_utils_nt import TransactionSide, OrderType, MarketData, OrderBook, BarData, DailyBar, CandleStick, TickData, TransactionData, TradeData, OrderData, MarketDataBuffer, MarketDataRingBuffer
45
+ else:
46
+ from .market_utils_posix import TransactionSide, OrderType, MarketData, OrderBook, BarData, DailyBar, CandleStick, TickData, TransactionData, TradeData, OrderData, MarketDataBuffer, MarketDataRingBuffer
47
+
48
+ from .technical_analysis import TechnicalAnalysis
49
+ from .trade_utils import OrderState, TradeInstruction, TradeReport
50
+ from .console_utils import Progress, GetInput, GetArgs, count_ordinal, TerminalStyle, InteractiveShell, ShellTransfer
51
+
52
+ __all__ = [
53
+ 'PROFILE',
54
+ 'FinancialDecimal',
55
+ 'TransactionSide', 'OrderType', 'MarketData', 'BarData', 'DailyBar', 'TickDataLite', 'TickData', 'TransactionData', 'TradeData', 'OrderData',
56
+ # 'MarketDataMemoryBuffer', 'OrderBookBuffer', 'BarDataBuffer', 'TickDataBuffer', 'TransactionDataBuffer',
57
+ # 'MarketDataPointer', 'OrderBookPointer', 'BarDataPointer', 'TickDataPointer', 'TransactionDataPointer',
58
+ 'TechnicalAnalysis',
59
+ 'OrderState', 'TradeInstruction', 'TradeReport',
60
+ 'Progress', 'GetInput', 'GetArgs', 'count_ordinal', 'TerminalStyle', 'InteractiveShell', 'ShellTransfer'
61
+ ]
@@ -41,13 +41,45 @@ if os.getenv('GITHUB_ACTIONS') == 'true':
41
41
  ext_modules = []
42
42
  else:
43
43
  # Define Cython extension (use the .pyx file)
44
- ext_modules = [
44
+ from Cython.Build import cythonize
45
+
46
+ cython_ext = [
47
+ Extension(
48
+ name="algo_engine.base.market_data",
49
+ sources=["algo_engine/base/market_data.pyx"],
50
+ extra_compile_args=['-O3', '-flto'],
51
+ extra_link_args=['-flto', '-s']
52
+ ),
53
+ Extension(
54
+ name="algo_engine.base.transaction",
55
+ sources=["algo_engine/base/transaction.pyx"],
56
+ extra_compile_args=['-O3', '-flto'],
57
+ extra_link_args=['-flto', '-s']
58
+ ),
59
+ Extension(
60
+ name="algo_engine.base.candlestick",
61
+ sources=["algo_engine/base/candlestick.pyx"],
62
+ extra_compile_args=['-O3', '-flto'],
63
+ extra_link_args=['-flto', '-s']
64
+ ),
45
65
  Extension(
46
- "algo_engine.base.market_utils_posix",
47
- ["algo_engine/base/market_utils_posix.pyx"],
66
+ name="algo_engine.base.tick",
67
+ sources=["algo_engine/base/tick.pyx"],
68
+ extra_compile_args=['-O3', '-flto'],
69
+ extra_link_args=['-flto', '-s']
48
70
  )
49
71
  ]
50
72
 
73
+ ext_modules = cythonize(
74
+ cython_ext,
75
+ compiler_directives={
76
+ 'language_level': "3",
77
+ 'optimize.use_switch': True,
78
+ 'optimize.unpack_method_calls': True,
79
+ 'binding': False
80
+ },
81
+ annotate=False
82
+ )
51
83
 
52
84
  long_description = read("README.md")
53
85
 
@@ -1,44 +0,0 @@
1
- import logging
2
- import os
3
-
4
- from .telemetrics import LOGGER
5
- from ..profile import PROFILE
6
-
7
-
8
- def set_logger(logger: logging.Logger):
9
- global LOGGER
10
- LOGGER = logger
11
-
12
- if os.name == 'nt':
13
- market_utils_nt.LOGGER = logger.getChild('MarketUtils')
14
- else:
15
- market_utils_posix.LOGGER = logger.getChild('MarketUtils')
16
-
17
- trade_utils.LOGGER = logger.getChild('TradeUtils')
18
- technical_analysis.LOGGER = logger.getChild('TA')
19
- console_utils.LOGGER = logger.getChild('Console')
20
-
21
-
22
- from .finance_decimal import FinancialDecimal
23
-
24
- if os.name == 'nt':
25
- from .market_utils_nt import TransactionSide, OrderType, MarketData, OrderBook, BarData, DailyBar, CandleStick, TickData, TransactionData, TradeData, OrderData, MarketDataBuffer, MarketDataRingBuffer
26
- else:
27
- from .market_utils_posix import TransactionSide, OrderType, MarketData, OrderBook, BarData, DailyBar, CandleStick, TickData, TransactionData, TradeData, OrderData, MarketDataBuffer, MarketDataRingBuffer
28
-
29
- # from .market_utils_posix import OrderType
30
- # from .market_utils import TransactionSide, MarketData, OrderBook, BarData, DailyBar, CandleStick, TickData, TransactionData, TradeData
31
- # from .market_buffer import MarketDataPointer, MarketDataMemoryBuffer, OrderBookPointer, OrderBookBuffer, BarDataPointer, BarDataBuffer, TickDataPointer, TickDataBuffer, TransactionDataPointer, TransactionDataBuffer
32
-
33
- from .technical_analysis import TechnicalAnalysis
34
- from .trade_utils import OrderState, TradeInstruction, TradeReport
35
- from .console_utils import Progress, GetInput, GetArgs, count_ordinal, TerminalStyle, InteractiveShell, ShellTransfer
36
-
37
- __all__ = ['PROFILE',
38
- 'FinancialDecimal',
39
- 'TransactionSide', 'OrderType', 'MarketData', 'OrderBook', 'BarData', 'DailyBar', 'CandleStick', 'TickData', 'TransactionData', 'TradeData', 'OrderData', 'MarketDataBuffer', 'MarketDataRingBuffer',
40
- # 'MarketDataMemoryBuffer', 'OrderBookBuffer', 'BarDataBuffer', 'TickDataBuffer', 'TransactionDataBuffer',
41
- # 'MarketDataPointer', 'OrderBookPointer', 'BarDataPointer', 'TickDataPointer', 'TransactionDataPointer',
42
- 'TechnicalAnalysis',
43
- 'OrderState', 'TradeInstruction', 'TradeReport',
44
- 'Progress', 'GetInput', 'GetArgs', 'count_ordinal', 'TerminalStyle', 'InteractiveShell', 'ShellTransfer']