siglab-py 0.5.1__tar.gz → 0.5.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.

Potentially problematic release.


This version of siglab-py might be problematic. Click here for more details.

Files changed (42) hide show
  1. {siglab_py-0.5.1 → siglab_py-0.5.2}/PKG-INFO +1 -1
  2. {siglab_py-0.5.1 → siglab_py-0.5.2}/pyproject.toml +1 -1
  3. {siglab_py-0.5.1 → siglab_py-0.5.2}/setup.cfg +1 -1
  4. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/ordergateway/gateway.py +7 -0
  5. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/ordergateway/test_ordergateway.py +5 -5
  6. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/tests/unit/trading_util_tests.py +4 -0
  7. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/util/trading_util.py +3 -0
  8. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py.egg-info/PKG-INFO +1 -1
  9. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/__init__.py +0 -0
  10. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/constants.py +0 -0
  11. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/exchanges/__init__.py +0 -0
  12. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/exchanges/any_exchange.py +0 -0
  13. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/exchanges/futubull.py +0 -0
  14. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/market_data_providers/__init__.py +0 -0
  15. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/market_data_providers/aggregated_orderbook_provider.py +0 -0
  16. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/market_data_providers/candles_provider.py +0 -0
  17. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/market_data_providers/candles_ta_provider.py +0 -0
  18. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/market_data_providers/ccxt_candles_ta_to_csv.py +0 -0
  19. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/market_data_providers/deribit_options_expiry_provider.py +0 -0
  20. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/market_data_providers/futu_candles_ta_to_csv.py +0 -0
  21. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/market_data_providers/orderbooks_provider.py +0 -0
  22. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/market_data_providers/test_provider.py +0 -0
  23. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/ordergateway/__init__.py +0 -0
  24. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/ordergateway/client.py +0 -0
  25. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/ordergateway/encrypt_keys_util.py +0 -0
  26. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/tests/__init__.py +0 -0
  27. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/tests/integration/__init__.py +0 -0
  28. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/tests/integration/market_data_util_tests.py +0 -0
  29. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/tests/unit/__init__.py +0 -0
  30. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/tests/unit/analytic_util_tests.py +0 -0
  31. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/tests/unit/market_data_util_tests.py +0 -0
  32. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/util/__init__.py +0 -0
  33. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/util/analytic_util.py +0 -0
  34. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/util/aws_util.py +0 -0
  35. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/util/market_data_util.py +0 -0
  36. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/util/notification_util.py +0 -0
  37. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/util/retry_util.py +0 -0
  38. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py/util/slack_notification_util.py +0 -0
  39. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py.egg-info/SOURCES.txt +0 -0
  40. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py.egg-info/dependency_links.txt +0 -0
  41. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py.egg-info/requires.txt +0 -0
  42. {siglab_py-0.5.1 → siglab_py-0.5.2}/siglab_py.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siglab_py
3
- Version: 0.5.1
3
+ Version: 0.5.2
4
4
  Summary: Market data fetches, TA calculations and generic order gateway.
5
5
  Author: r0bbarh00d
6
6
  Author-email: r0bbarh00d <r0bbarh00d@gmail.com>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "siglab_py"
7
- version = "0.5.1"
7
+ version = "0.5.2"
8
8
  description = "Market data fetches, TA calculations and generic order gateway."
9
9
  authors = [{name = "r0bbarh00d", email = "r0bbarh00d@gmail.com"}]
10
10
  license = {text = "MIT"}
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = siglab_py
3
- version = 0.5.1
3
+ version = 0.5.2
4
4
  description = Market data fetches, TA calculations and generic order gateway.
5
5
  author = r0bbarh00d
6
6
  author_email = r0bbarh00d@gmail.com
@@ -31,6 +31,13 @@ from util.notification_util import dispatch_notification
31
31
 
32
32
  current_filename = os.path.basename(__file__)
33
33
 
34
+ '''
35
+ Error: RuntimeError: aiodns needs a SelectorEventLoop on Windows.
36
+ Hack, by far the filthest hack I done in my career: Set SelectorEventLoop on Windows
37
+ '''
38
+ if sys.platform == 'win32':
39
+ asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
40
+
34
41
  '''
35
42
  Usage:
36
43
  set PYTHONPATH=%PYTHONPATH%;D:\dev\siglab\siglab_py
@@ -78,13 +78,13 @@ if __name__ == '__main__':
78
78
 
79
79
  positions_2 : List[DivisiblePosition] = [
80
80
  DivisiblePosition(
81
- ticker = 'SUSHI/USDC:USDC',
81
+ ticker = 'SUSHI/USDT:USDT',
82
82
  side = 'buy',
83
- amount = 20,
84
- leg_room_bps = -5,
83
+ amount = 10,
84
+ leg_room_bps = 5,
85
85
  reduce_only=False,
86
86
  order_type = 'limit',
87
- slices=1,
87
+ slices=5,
88
88
  wait_fill_threshold_ms=15000
89
89
  ),
90
90
  ]
@@ -106,7 +106,7 @@ if __name__ == '__main__':
106
106
 
107
107
  executed_positions : Union[Dict[JSON_SERIALIZABLE_TYPES, JSON_SERIALIZABLE_TYPES], None] = execute_positions(
108
108
  redis_client=redis_client,
109
- positions=positions_2,
109
+ positions=positions_3,
110
110
  ordergateway_pending_orders_topic=ordergateway_pending_orders_topic,
111
111
  ordergateway_executions_topic=ordergateway_executions_topic
112
112
  )
@@ -5,6 +5,10 @@ from pathlib import Path
5
5
 
6
6
  from util.trading_util import *
7
7
 
8
+ '''
9
+ Have a look at this for a visual explaination how "Gradually tightened stops" works:
10
+ https://github.com/r0bbar/siglab/blob/master/siglab_py/tests/manual/trading_util_tests.ipynb
11
+ '''
8
12
 
9
13
  # @unittest.skip("Skip all integration tests.")
10
14
  class TradingUtilTests(unittest.TestCase):
@@ -49,6 +49,9 @@ What's 'loss_trailing'? 'loss_trailing' is essentially pnl drop from max_unreali
49
49
  unrealized_pnl_live = $40
50
50
  max_unrealized_pnl_live = $100
51
51
  loss_trailing = (1 - unrealized_pnl_live/max_unrealized_pnl_live) = (1-40/100) = 0.6 (Or 60%)
52
+
53
+ Have a look at this for a visual explaination how "Gradually tightened stops" works:
54
+ https://github.com/r0bbar/siglab/blob/master/siglab_py/tests/manual/trading_util_tests.ipynb
52
55
  '''
53
56
  def calc_eff_trailing_sl(
54
57
  tp_min_percent : float,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siglab-py
3
- Version: 0.5.1
3
+ Version: 0.5.2
4
4
  Summary: Market data fetches, TA calculations and generic order gateway.
5
5
  Author: r0bbarh00d
6
6
  Author-email: r0bbarh00d <r0bbarh00d@gmail.com>