signalflow-trading 0.2.1__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.
- signalflow/__init__.py +21 -0
- signalflow/analytics/__init__.py +0 -0
- signalflow/core/__init__.py +46 -0
- signalflow/core/base_mixin.py +232 -0
- signalflow/core/containers/__init__.py +21 -0
- signalflow/core/containers/order.py +216 -0
- signalflow/core/containers/portfolio.py +211 -0
- signalflow/core/containers/position.py +296 -0
- signalflow/core/containers/raw_data.py +167 -0
- signalflow/core/containers/raw_data_view.py +169 -0
- signalflow/core/containers/signals.py +198 -0
- signalflow/core/containers/strategy_state.py +147 -0
- signalflow/core/containers/trade.py +112 -0
- signalflow/core/decorators.py +103 -0
- signalflow/core/enums.py +270 -0
- signalflow/core/registry.py +322 -0
- signalflow/core/rolling_aggregator.py +362 -0
- signalflow/core/signal_transforms/__init__.py +5 -0
- signalflow/core/signal_transforms/base_signal_transform.py +186 -0
- signalflow/data/__init__.py +11 -0
- signalflow/data/raw_data_factory.py +225 -0
- signalflow/data/raw_store/__init__.py +7 -0
- signalflow/data/raw_store/base.py +271 -0
- signalflow/data/raw_store/duckdb_stores.py +696 -0
- signalflow/data/source/__init__.py +10 -0
- signalflow/data/source/base.py +300 -0
- signalflow/data/source/binance.py +442 -0
- signalflow/data/strategy_store/__init__.py +8 -0
- signalflow/data/strategy_store/base.py +278 -0
- signalflow/data/strategy_store/duckdb.py +409 -0
- signalflow/data/strategy_store/schema.py +36 -0
- signalflow/detector/__init__.py +7 -0
- signalflow/detector/adapter/__init__.py +5 -0
- signalflow/detector/adapter/pandas_detector.py +46 -0
- signalflow/detector/base.py +390 -0
- signalflow/detector/sma_cross.py +105 -0
- signalflow/feature/__init__.py +16 -0
- signalflow/feature/adapter/__init__.py +5 -0
- signalflow/feature/adapter/pandas_feature_extractor.py +54 -0
- signalflow/feature/base.py +330 -0
- signalflow/feature/feature_set.py +286 -0
- signalflow/feature/oscillator/__init__.py +5 -0
- signalflow/feature/oscillator/rsi_extractor.py +42 -0
- signalflow/feature/pandasta/__init__.py +10 -0
- signalflow/feature/pandasta/pandas_ta_extractor.py +141 -0
- signalflow/feature/pandasta/top_pandasta_extractors.py +64 -0
- signalflow/feature/smoother/__init__.py +5 -0
- signalflow/feature/smoother/sma_extractor.py +46 -0
- signalflow/strategy/__init__.py +9 -0
- signalflow/strategy/broker/__init__.py +15 -0
- signalflow/strategy/broker/backtest.py +172 -0
- signalflow/strategy/broker/base.py +186 -0
- signalflow/strategy/broker/executor/__init__.py +9 -0
- signalflow/strategy/broker/executor/base.py +35 -0
- signalflow/strategy/broker/executor/binance_spot.py +12 -0
- signalflow/strategy/broker/executor/virtual_spot.py +81 -0
- signalflow/strategy/broker/realtime_spot.py +12 -0
- signalflow/strategy/component/__init__.py +9 -0
- signalflow/strategy/component/base.py +65 -0
- signalflow/strategy/component/entry/__init__.py +7 -0
- signalflow/strategy/component/entry/fixed_size.py +57 -0
- signalflow/strategy/component/entry/signal.py +127 -0
- signalflow/strategy/component/exit/__init__.py +5 -0
- signalflow/strategy/component/exit/time_based.py +47 -0
- signalflow/strategy/component/exit/tp_sl.py +80 -0
- signalflow/strategy/component/metric/__init__.py +8 -0
- signalflow/strategy/component/metric/main_metrics.py +181 -0
- signalflow/strategy/runner/__init__.py +8 -0
- signalflow/strategy/runner/backtest_runner.py +208 -0
- signalflow/strategy/runner/base.py +19 -0
- signalflow/strategy/runner/optimized_backtest_runner.py +178 -0
- signalflow/strategy/runner/realtime_runner.py +0 -0
- signalflow/target/__init__.py +14 -0
- signalflow/target/adapter/__init__.py +5 -0
- signalflow/target/adapter/pandas_labeler.py +45 -0
- signalflow/target/base.py +409 -0
- signalflow/target/fixed_horizon_labeler.py +93 -0
- signalflow/target/static_triple_barrier.py +162 -0
- signalflow/target/triple_barrier.py +188 -0
- signalflow/utils/__init__.py +7 -0
- signalflow/utils/import_utils.py +11 -0
- signalflow/utils/tune_utils.py +19 -0
- signalflow/validator/__init__.py +6 -0
- signalflow/validator/base.py +139 -0
- signalflow/validator/sklearn_validator.py +527 -0
- signalflow_trading-0.2.1.dist-info/METADATA +149 -0
- signalflow_trading-0.2.1.dist-info/RECORD +90 -0
- signalflow_trading-0.2.1.dist-info/WHEEL +5 -0
- signalflow_trading-0.2.1.dist-info/licenses/LICENSE +21 -0
- signalflow_trading-0.2.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
signalflow/__init__.py,sha256=cZ4pwepo47slGko66hhseKuNaXCviZpvzL53J_bSeMA,416
|
|
2
|
+
signalflow/analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
signalflow/core/__init__.py,sha256=U6djGSz-DzAOH7tIeSsovgowBlUKqxqVthoYHWYZebk,1033
|
|
4
|
+
signalflow/core/base_mixin.py,sha256=O5VmdlUJaepLfX4kIcm2E42baQCOGbPHrBD5bC9702g,8411
|
|
5
|
+
signalflow/core/decorators.py,sha256=DcqZBR_6w-E6PiqjSe0kLKVLyerwlNkAE2ROzweo-TI,3426
|
|
6
|
+
signalflow/core/enums.py,sha256=OSPaWZ1dMZ6pJui5DFyDXvycjUK3IpiBsw1lJ1Bdjbg,8468
|
|
7
|
+
signalflow/core/registry.py,sha256=_i0XwYGbW62oUYGIPS_9NF2WtPc94v6aP6MNKBwISJk,10689
|
|
8
|
+
signalflow/core/rolling_aggregator.py,sha256=j-AFacNMl1eK17aoeipWQpHav-4NPSLWqhFMStASDjE,12851
|
|
9
|
+
signalflow/core/containers/__init__.py,sha256=gETfae5Vnm69kAa3tA70imnlbu4E-m92cLGgUyJVW4w,640
|
|
10
|
+
signalflow/core/containers/order.py,sha256=yUoo4lh68dZN6Wvj0WPtnorKzA6doeCcoI9F2ZDm6Og,6349
|
|
11
|
+
signalflow/core/containers/portfolio.py,sha256=xNO9_92R3kv3E5Ps9Cg5fe3vQ7Ejf7PdHGCNK3iVil0,6477
|
|
12
|
+
signalflow/core/containers/position.py,sha256=TNpZWyMFMz3ZovodmzLdJphHmVh_t05LVBWpBmVN3mo,8943
|
|
13
|
+
signalflow/core/containers/raw_data.py,sha256=UgxO15_pNhudGTTLjQbjl6DLqQlQjD22W8U1V88uJGE,4586
|
|
14
|
+
signalflow/core/containers/raw_data_view.py,sha256=WybqY7Pd3FktIPGEEIqV8VtbS7jDm4yceAhyquOhNWE,5493
|
|
15
|
+
signalflow/core/containers/signals.py,sha256=Hll6mAiqYZd6Dhmhar1h5761v7-4DRPE1-1W1dRwlTw,5693
|
|
16
|
+
signalflow/core/containers/strategy_state.py,sha256=TYbpADk4jI3MO0pYkUOSSTyn8QiSvTLuM9xeVcj9uQI,5156
|
|
17
|
+
signalflow/core/containers/trade.py,sha256=A2odxHKxo-hoCj3Vj55Au3VlPxq0eW1wOF5xPPp742k,3274
|
|
18
|
+
signalflow/core/signal_transforms/__init__.py,sha256=UTQkVnGfS3a3_lAAo9DLr1aOKd0n0TZ1JOrHb_xCypg,90
|
|
19
|
+
signalflow/core/signal_transforms/base_signal_transform.py,sha256=Trk8C5kKcr-M6Ufm6b4OsZnhF4pSnArjSRKRSRgfO4g,6597
|
|
20
|
+
signalflow/data/__init__.py,sha256=Y6fwFmp5pmiU9oR39zZZRELxiX8lpHAg7lmOiXWiHNI,291
|
|
21
|
+
signalflow/data/raw_data_factory.py,sha256=a6pTLnV4NvhPP8YLsaCrK7aRuaDxJ8VZR8xbf_oVNfo,8010
|
|
22
|
+
signalflow/data/raw_store/__init__.py,sha256=Dqca1oqtXbDdSvcGkTcSyC1Oq8udqu5FF7Fsa4hXz_k,181
|
|
23
|
+
signalflow/data/raw_store/base.py,sha256=gWUO_m-NfnfP8Y8YQI85DDYaEcm6NA78Jquy3OPUmtg,9701
|
|
24
|
+
signalflow/data/raw_store/duckdb_stores.py,sha256=Zay7__fI06QJlFWWQ-4pbUWCtmLwL3GtKaBr1mSb2l0,23609
|
|
25
|
+
signalflow/data/source/__init__.py,sha256=KmPvn6nK6gHPxN5ZqEa328W9LMHNGmj3s1ceYU8tcdw,249
|
|
26
|
+
signalflow/data/source/base.py,sha256=xBKMRROn7TrvibaDFZsfFVlsvG91WrpakGdgVbWlpFc,10485
|
|
27
|
+
signalflow/data/source/binance.py,sha256=4O5H5HP3qIhjyTWUkVaccSx3xQZzWiujqtuERvpallQ,15135
|
|
28
|
+
signalflow/data/strategy_store/__init__.py,sha256=lUspCXH6SvHTUj55WLMdFS-KzKYzHvEXEf2ARyXa94s,195
|
|
29
|
+
signalflow/data/strategy_store/base.py,sha256=PyY5zYQx8fmYZ5PXTlpZ_rc6vf6zXzopLZySQXw3Jjc,8781
|
|
30
|
+
signalflow/data/strategy_store/duckdb.py,sha256=VgBvdXP3_JsGBxHmJAiSTBwWRfseCxAgO_DzrMUy8jA,12615
|
|
31
|
+
signalflow/data/strategy_store/schema.py,sha256=n1mAZNDWQK20fsFtvGRzkxWk82dIj5StQCqU_UwIngA,953
|
|
32
|
+
signalflow/detector/__init__.py,sha256=otKlqDdGj550wRSy_nvhpG2QoLTJ22E-tlf7640s3oE,183
|
|
33
|
+
signalflow/detector/base.py,sha256=94UY9tzUDSJrN0J2tZB-kQUjhxZE84urb1jGrX7sQiU,14388
|
|
34
|
+
signalflow/detector/sma_cross.py,sha256=73P_dIyexJryCWbJPcscAaJfRG4X8E4K3tgzes6OWRY,3769
|
|
35
|
+
signalflow/detector/adapter/__init__.py,sha256=n5HmJRzhsAXuA23kwMEAQ0IoWVCkVOsdRhHtH8KY1wc,119
|
|
36
|
+
signalflow/detector/adapter/pandas_detector.py,sha256=ZxY2nAXK5BtM9q7nKfGEXOkwvpmHt4d0FPlQmhDnRaE,1550
|
|
37
|
+
signalflow/feature/__init__.py,sha256=va-bkjA2GmQTrGHKqVrm1v2NJc9Z5i-61BwDoMKLXRs,420
|
|
38
|
+
signalflow/feature/base.py,sha256=3mFzgdzqBv7TxMdXL7rz9yBIdKfURa-FjYIiFF7rUOc,12050
|
|
39
|
+
signalflow/feature/feature_set.py,sha256=HwuzTWursc-OSBFseBVWdhN1rUDX5APv4rFosQr0Wr0,10149
|
|
40
|
+
signalflow/feature/adapter/__init__.py,sha256=GamYhEuXIfd2TnzgImBdHSSB8bhBcF6nLiSeOV8jm7k,131
|
|
41
|
+
signalflow/feature/adapter/pandas_feature_extractor.py,sha256=VBg2kDTYJwpNa-aqMByapgBr5_FJMD34E2K7JvHcaVE,1946
|
|
42
|
+
signalflow/feature/oscillator/__init__.py,sha256=uy_imbKnWqK6nIU7iZZ_CBLg9SD4HHdR6BdYvoB0TNY,103
|
|
43
|
+
signalflow/feature/oscillator/rsi_extractor.py,sha256=BPNRwqlGzUY70j-8XUEy1VwZzxeO6f87L6RIzhr7RWU,1150
|
|
44
|
+
signalflow/feature/pandasta/__init__.py,sha256=KsMTyB-Ac7XqUaPpgwHtJZu-4W14hP1H3q9hw2uNi9g,388
|
|
45
|
+
signalflow/feature/pandasta/pandas_ta_extractor.py,sha256=w5ZLIBjVVUxL7l5jg7E7ua8Som48RD3PddZrtuQf-wg,5297
|
|
46
|
+
signalflow/feature/pandasta/top_pandasta_extractors.py,sha256=4IA7SAT33m480XINnf-ls0ZLe9wA8j3ygY7zsM3jE0I,1926
|
|
47
|
+
signalflow/feature/smoother/__init__.py,sha256=oaz64ukgOdUWLkGfGXcAKrPeH_ds3jmWFX8uCTLHnb0,104
|
|
48
|
+
signalflow/feature/smoother/sma_extractor.py,sha256=Dh1yvmttrYbFYQVkFepPDgwpHD8uM88NCHxae9UjtCo,1400
|
|
49
|
+
signalflow/strategy/__init__.py,sha256=wplmGZAeKO7UPeztwXHrHCJBX_HS-ERbkXhvJ_4S7wI,197
|
|
50
|
+
signalflow/strategy/broker/__init__.py,sha256=02Z5b6kLKEOFg5-JklJ7WmcV6FgayS9xa_ePVgkcs_o,325
|
|
51
|
+
signalflow/strategy/broker/backtest.py,sha256=sok1HK8EX50igcVsU960WOJuu1N9I3O_NnY3ai3PZvs,5860
|
|
52
|
+
signalflow/strategy/broker/base.py,sha256=WEldr-FbvZNRJ3r8eaudU5DtDGCbXdr9AdrC0T5MDRY,5245
|
|
53
|
+
signalflow/strategy/broker/realtime_spot.py,sha256=dKVYX0vGvZxkGgXAVlCOCR99wt4bVD5nGbri3-alb7I,291
|
|
54
|
+
signalflow/strategy/broker/executor/__init__.py,sha256=17ULlt5g5lz4UF-FE3LI3rZ9GDKo1JnY-2X8WUVhFjA,318
|
|
55
|
+
signalflow/strategy/broker/executor/base.py,sha256=-xIrEtGqyWsDISACz6ExTgZli5FmvgOXOc4NTIekvOA,962
|
|
56
|
+
signalflow/strategy/broker/executor/binance_spot.py,sha256=NryEBeJWM89oC8urXWOKNzIpRIikvpQVhglHC-GFnaU,306
|
|
57
|
+
signalflow/strategy/broker/executor/virtual_spot.py,sha256=5rLLyn2gqRBMSVDFcwvDScLdRKFYOrsGFEssjHIPrds,2396
|
|
58
|
+
signalflow/strategy/component/__init__.py,sha256=KFpSlnPXdH5j6GWRYVD3_JCnNhbrx33jD6BoCCE_AYk,252
|
|
59
|
+
signalflow/strategy/component/base.py,sha256=HUQvv6kvJ6GTrEtygTatejVU7cqFEk0Ornc5P1l-mBU,1595
|
|
60
|
+
signalflow/strategy/component/entry/__init__.py,sha256=s8Aj4mEIRqOtc53QyKGJVVn6oWbIc2MXg-bqcdNiUhs,212
|
|
61
|
+
signalflow/strategy/component/entry/fixed_size.py,sha256=w5YxxLJHdioGah7ub6hiERzCsWRofUaBD6bn5jYou0Y,1798
|
|
62
|
+
signalflow/strategy/component/entry/signal.py,sha256=gvBK_JKzVnKRybGdUYzAeZJ3inXDwDUBJxQLMHPg-sM,4288
|
|
63
|
+
signalflow/strategy/component/exit/__init__.py,sha256=yQilkQrxCOXooatZC6xizxkRoIB4YW6fVRDyhXSznIo,121
|
|
64
|
+
signalflow/strategy/component/exit/time_based.py,sha256=IVQn5QRzu7WOSg7cX1H7DqAP6FrMcNqiAAtD50lIjos,1472
|
|
65
|
+
signalflow/strategy/component/exit/tp_sl.py,sha256=9ay3v_sz44Q-BINZpl-Kf577FrfXINLtJAdntHPELtk,2857
|
|
66
|
+
signalflow/strategy/component/metric/__init__.py,sha256=hkfjgTHSn_SrAzX_1QL6OHFh_SiVQkES-8NV_cn5HsU,295
|
|
67
|
+
signalflow/strategy/component/metric/main_metrics.py,sha256=iyunowZ8L69oUmW1NHD31xWXt1-Oa6fmkr5ACvAmOlQ,5871
|
|
68
|
+
signalflow/strategy/runner/__init__.py,sha256=1UUN17td2xJoN0tYbyJvyF3GPswslohH6GfVhBPxZso,306
|
|
69
|
+
signalflow/strategy/runner/backtest_runner.py,sha256=ALssOT_t7R5quDXjf6uLGnsQycRxf7NN1BwVZXj4-tE,7408
|
|
70
|
+
signalflow/strategy/runner/base.py,sha256=fDMAf0z1qHrFaON37-ITwwxOwmA1WOm4DAvxVyf9PK0,779
|
|
71
|
+
signalflow/strategy/runner/optimized_backtest_runner.py,sha256=gVpYqSQpRXY5UPdLPJ6Ri2IKlBeRyfNKaObkbqu07D8,6713
|
|
72
|
+
signalflow/strategy/runner/realtime_runner.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
|
+
signalflow/target/__init__.py,sha256=lHSGUdl3AwuwwMsscMJnjh9QsUaEHbeGbvltht7fNCA,438
|
|
74
|
+
signalflow/target/base.py,sha256=e_yUfbTdRLmLzxvivYublxhCt8-r5YWTfEkuTWB1_x0,14889
|
|
75
|
+
signalflow/target/fixed_horizon_labeler.py,sha256=0a_I2q68ItimNYoi4vSFloo5s8K7qfJKZJ0hu0Ij6n8,2880
|
|
76
|
+
signalflow/target/static_triple_barrier.py,sha256=bXHmmTXiTomMTAE5b_h96IS8WMpmZXsIrzAlMa9OFMY,4933
|
|
77
|
+
signalflow/target/triple_barrier.py,sha256=Z44rjbW97B-5UktBIdIN60N4fLkrnZJ4MIqBnolrK6A,5855
|
|
78
|
+
signalflow/target/adapter/__init__.py,sha256=Ta0vGp_hkGaZJTc1m-bldqTeAlsxaLcZulrL27Z5KaA,102
|
|
79
|
+
signalflow/target/adapter/pandas_labeler.py,sha256=gaX2xmKWOzvexSTAgKAcYN29qCi9SdWJVuXq-_spXYc,1617
|
|
80
|
+
signalflow/utils/__init__.py,sha256=HYwFAacAmrVwKxG2xGLT3PWpqwuru4Uxq8Pwc6cmEKM,189
|
|
81
|
+
signalflow/utils/import_utils.py,sha256=E8BurCuPpT9qpf4t7yY065keXA6-7dovD3uuPJ90rxU,393
|
|
82
|
+
signalflow/utils/tune_utils.py,sha256=wGRrBjBeuPKL4bsc_y3IPBawxvFG9ARKiQZxuUWF5Nw,729
|
|
83
|
+
signalflow/validator/__init__.py,sha256=VN2IEmK8fguFe35eAXDJaVICtrGXCIdg4YeJZ1-kTx0,194
|
|
84
|
+
signalflow/validator/base.py,sha256=5jx3M9jpqaZ4pvq3XcySrR1Irtkaqjvb9aeZeFdzaPo,4670
|
|
85
|
+
signalflow/validator/sklearn_validator.py,sha256=8Qtq9-TN9YQGyDmBPqbfeGmZ-wJaj4_sHOCgc4K9K-4,17988
|
|
86
|
+
signalflow_trading-0.2.1.dist-info/licenses/LICENSE,sha256=y6Ms2T8DsEjwjogkirtEukIB2vrri88GtW4yZ3kl_FA,1074
|
|
87
|
+
signalflow_trading-0.2.1.dist-info/METADATA,sha256=G6GkTqH-SrIwCstR7XgIfqIGPmPXac8hJC2TU5fnrOc,5347
|
|
88
|
+
signalflow_trading-0.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
89
|
+
signalflow_trading-0.2.1.dist-info/top_level.txt,sha256=ldV25g_QcNLctaiBnmuwmryxtsKsoiyDvvKqqbuVl2g,11
|
|
90
|
+
signalflow_trading-0.2.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 SignalFlow-Trading
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
signalflow
|