siglab-py 0.5.0__py3-none-any.whl → 0.5.2__py3-none-any.whl
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.
- siglab_py/ordergateway/gateway.py +14 -1
- siglab_py/tests/unit/trading_util_tests.py +4 -0
- siglab_py/util/trading_util.py +3 -0
- {siglab_py-0.5.0.dist-info → siglab_py-0.5.2.dist-info}/METADATA +1 -1
- {siglab_py-0.5.0.dist-info → siglab_py-0.5.2.dist-info}/RECORD +7 -7
- {siglab_py-0.5.0.dist-info → siglab_py-0.5.2.dist-info}/WHEEL +0 -0
- {siglab_py-0.5.0.dist-info → siglab_py-0.5.2.dist-info}/top_level.txt +0 -0
|
@@ -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
|
|
@@ -456,7 +463,13 @@ async def execute_one_position(
|
|
|
456
463
|
'reduceOnly': slice.reduce_only
|
|
457
464
|
}
|
|
458
465
|
if position.order_type=='limit':
|
|
459
|
-
|
|
466
|
+
if position.leg_room_bps<0:
|
|
467
|
+
order_params['postOnly'] = True
|
|
468
|
+
else:
|
|
469
|
+
log(
|
|
470
|
+
f"{position.side} {rounded_slice_amount_in_base_ccy} {position.ticker}. Limit order to be sent as Market order. Invalid leg_room_bps: {position.leg_room_bps}. By convention, leg_room_bps more positive means you want your order to get filled more aggressively. To post limit orders, leg_room_bps should be negative.",
|
|
471
|
+
log_level=LogLevel.WARNING
|
|
472
|
+
)
|
|
460
473
|
|
|
461
474
|
if not param['dry_run']:
|
|
462
475
|
executed_order = await exchange.create_order( # type: ignore
|
|
@@ -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):
|
siglab_py/util/trading_util.py
CHANGED
|
@@ -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,
|
|
@@ -15,7 +15,7 @@ siglab_py/market_data_providers/test_provider.py,sha256=wBLCgcWjs7FGZJXWsNyn30lk
|
|
|
15
15
|
siglab_py/ordergateway/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
siglab_py/ordergateway/client.py,sha256=LvtrYirrdFOcKgTkvuqwdEN7r3nurjX320ESnk7tHE0,15095
|
|
17
17
|
siglab_py/ordergateway/encrypt_keys_util.py,sha256=-qi87db8To8Yf1WS1Q_Cp2Ya7ZqgWlRqSHfNXCM7wE4,1339
|
|
18
|
-
siglab_py/ordergateway/gateway.py,sha256
|
|
18
|
+
siglab_py/ordergateway/gateway.py,sha256=Z-BQ-Z9gXoNrKQHzRIy9R1mnCybf9QwWhHpqkSI7bBM,43901
|
|
19
19
|
siglab_py/ordergateway/test_ordergateway.py,sha256=4PE2flp_soGcD3DrI7zJOzZndjkb6I5XaDrFNNq4Huo,4009
|
|
20
20
|
siglab_py/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
21
|
siglab_py/tests/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -23,7 +23,7 @@ siglab_py/tests/integration/market_data_util_tests.py,sha256=p-RWIJZLyj0lAdfi4QT
|
|
|
23
23
|
siglab_py/tests/unit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
24
|
siglab_py/tests/unit/analytic_util_tests.py,sha256=eeusM5zkQR2QyVhT7nqF0mwHVg7vlxwtgv2JnLqwQgY,3852
|
|
25
25
|
siglab_py/tests/unit/market_data_util_tests.py,sha256=A1y83itISmMJdn6wLpfwcr4tGola8wTf1D1xbelMvgw,2026
|
|
26
|
-
siglab_py/tests/unit/trading_util_tests.py,sha256=
|
|
26
|
+
siglab_py/tests/unit/trading_util_tests.py,sha256=664pnAwhdwfRI21ktPpuAxNydz6XtxBrU_Dm1rTGquQ,2883
|
|
27
27
|
siglab_py/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
siglab_py/util/analytic_util.py,sha256=blFJ1kY_aSJeuzzk28vdB4nhLgmosz0L8IJaJCZy9OM,47272
|
|
29
29
|
siglab_py/util/aws_util.py,sha256=KGmjHrr1rpnnxr33nXHNzTul4tvyyxl9p6gpwNv0Ygc,2557
|
|
@@ -31,8 +31,8 @@ siglab_py/util/market_data_util.py,sha256=mUXg4uaiX3b6_klgJWIEgnUQU4IUd6CwTOqKLi
|
|
|
31
31
|
siglab_py/util/notification_util.py,sha256=vySgHjpHgwFDLW0tHSi_AGh9JBbPc25IUgvWxmjAeT8,2658
|
|
32
32
|
siglab_py/util/retry_util.py,sha256=g-UU6pkPouWZZRZEqP99R2Z0lX5xzckYkzjwqqSDpVQ,922
|
|
33
33
|
siglab_py/util/slack_notification_util.py,sha256=G27n-adbT3Q6oaHSMvu_Nom794rrda5PprSF-zvmzkM,1912
|
|
34
|
-
siglab_py/util/trading_util.py,sha256=
|
|
35
|
-
siglab_py-0.5.
|
|
36
|
-
siglab_py-0.5.
|
|
37
|
-
siglab_py-0.5.
|
|
38
|
-
siglab_py-0.5.
|
|
34
|
+
siglab_py/util/trading_util.py,sha256=Z-sK4cTi-5rIXYVgmIMgOWlIaxcCEX1lXlCKTweg6-U,3233
|
|
35
|
+
siglab_py-0.5.2.dist-info/METADATA,sha256=yL1RdzFxrjYNgzdB18G-XtbaM-HLC0NWeWcqXLws6Vw,979
|
|
36
|
+
siglab_py-0.5.2.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
37
|
+
siglab_py-0.5.2.dist-info/top_level.txt,sha256=AbD4VR9OqmMOGlMJLkAVPGQMtUPIQv0t1BF5xmcLJSk,10
|
|
38
|
+
siglab_py-0.5.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|