cyqnt-trd 0.1.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.
- cyqnt_trd/__init__.py +26 -0
- cyqnt_trd/backtesting/README.md +264 -0
- cyqnt_trd/backtesting/__init__.py +12 -0
- cyqnt_trd/backtesting/factor_test.py +332 -0
- cyqnt_trd/backtesting/framework.py +311 -0
- cyqnt_trd/backtesting/strategy_backtest.py +545 -0
- cyqnt_trd/diagnose_api.py +28 -0
- cyqnt_trd/get_data/__init__.py +15 -0
- cyqnt_trd/get_data/get_futures_data.py +472 -0
- cyqnt_trd/get_data/get_trending_data.py +771 -0
- cyqnt_trd/online_trading/__init__.py +13 -0
- cyqnt_trd/online_trading/realtime_price_tracker.py +1001 -0
- cyqnt_trd/test.py +119 -0
- cyqnt_trd/test_script/README.md +411 -0
- cyqnt_trd/test_script/get_network_info.py +192 -0
- cyqnt_trd/test_script/get_symbols_by_volume.py +227 -0
- cyqnt_trd/test_script/realtime_price_tracker.py +839 -0
- cyqnt_trd/test_script/test_alpha.py +261 -0
- cyqnt_trd/test_script/test_kline_data.py +479 -0
- cyqnt_trd/test_script/test_order.py +1360 -0
- cyqnt_trd/trading_signal/README.md +276 -0
- cyqnt_trd/trading_signal/__init__.py +17 -0
- cyqnt_trd/trading_signal/example_test_alpha.py +430 -0
- cyqnt_trd/trading_signal/example_usage.py +431 -0
- cyqnt_trd/trading_signal/factor/__init__.py +18 -0
- cyqnt_trd/trading_signal/factor/ma_factor.py +75 -0
- cyqnt_trd/trading_signal/factor/rsi_factor.py +56 -0
- cyqnt_trd/trading_signal/selected_alpha/__init__.py +158 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha1.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha10.py +90 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha100.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha101.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha11.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha12.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha13.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha14.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha15.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha16.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha17.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha18.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha19.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha2.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha20.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha21.py +89 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha22.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha23.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha24.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha25.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha26.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha27.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha28.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha29.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha3.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha30.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha31.py +90 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha32.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha33.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha34.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha35.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha36.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha37.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha38.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha39.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha4.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha40.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha41.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha42.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha43.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha44.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha45.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha46.py +89 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha47.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha48.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha49.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha5.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha50.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha51.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha52.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha53.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha54.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha55.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha56.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha57.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha58.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha59.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha6.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha60.py +89 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha61.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha62.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha63.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha64.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha65.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha66.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha67.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha68.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha69.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha7.py +88 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha70.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha71.py +92 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha72.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha73.py +91 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha74.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha75.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha76.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha77.py +92 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha78.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha79.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha8.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha80.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha81.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha82.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha83.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha84.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha85.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha86.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha87.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha88.py +92 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha89.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha9.py +90 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha90.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha91.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha92.py +92 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha93.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha94.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha95.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha96.py +92 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha97.py +74 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha98.py +87 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha99.py +86 -0
- cyqnt_trd/trading_signal/selected_alpha/alpha_utils.py +342 -0
- cyqnt_trd/trading_signal/selected_alpha/create_all_alphas.py +279 -0
- cyqnt_trd/trading_signal/selected_alpha/generate_alphas.py +133 -0
- cyqnt_trd/trading_signal/selected_alpha/test_alpha.py +261 -0
- cyqnt_trd/trading_signal/signal/__init__.py +20 -0
- cyqnt_trd/trading_signal/signal/factor_based_signal.py +387 -0
- cyqnt_trd/trading_signal/signal/ma_signal.py +163 -0
- cyqnt_trd/utils/__init__.py +3 -0
- cyqnt_trd/utils/set_user.py +33 -0
- cyqnt_trd-0.1.2.dist-info/METADATA +148 -0
- cyqnt_trd-0.1.2.dist-info/RECORD +147 -0
- cyqnt_trd-0.1.2.dist-info/WHEEL +5 -0
- cyqnt_trd-0.1.2.dist-info/licenses/LICENSE +21 -0
- cyqnt_trd-0.1.2.dist-info/top_level.txt +2 -0
- test/real_time_trade.py +746 -0
- test/test_example_usage.py +381 -0
- test/test_get_data.py +310 -0
- test/test_realtime_price_tracker.py +546 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: cyqnt-trd
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: A cryptocurrency trading toolkit with data fetching, signal generation, and backtesting capabilities
|
|
5
|
+
Author-email: Haowen Wang <wanghw@zju.edu.cn>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/whw199833/cyqnt_trd
|
|
8
|
+
Project-URL: Repository, https://github.com/whw199833/cyqnt_trd
|
|
9
|
+
Project-URL: Issues, https://github.com/whw199833/cyqnt_trd/issues
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Intended Audience :: Financial and Insurance Industry
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Office/Business :: Financial :: Investment
|
|
19
|
+
Requires-Python: >=3.9
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Requires-Dist: pandas>=1.5.0
|
|
23
|
+
Requires-Dist: numpy>=1.23.0
|
|
24
|
+
Requires-Dist: matplotlib>=3.5.0
|
|
25
|
+
Requires-Dist: requests>=2.28.0
|
|
26
|
+
Provides-Extra: dev
|
|
27
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
28
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
29
|
+
Requires-Dist: black>=22.0.0; extra == "dev"
|
|
30
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
|
|
33
|
+
# cyqnt_trd
|
|
34
|
+
|
|
35
|
+
一个用于加密货币交易的工具包,包含数据获取、交易信号生成和回测功能。
|
|
36
|
+
|
|
37
|
+
## 功能特性
|
|
38
|
+
|
|
39
|
+
- **数据获取**: 从 Binance 获取期货和现货K线数据
|
|
40
|
+
- **交易信号**: 提供多种技术指标因子和信号策略
|
|
41
|
+
- **回测框架**: 支持因子测试和策略回测
|
|
42
|
+
|
|
43
|
+
## 安装
|
|
44
|
+
|
|
45
|
+
### 方式1: 作为可编辑包安装(推荐用于开发)
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
cd /path/to/cyqnt_trd
|
|
49
|
+
pip install -e .
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 方式2: 直接安装
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
cd /path/to/cyqnt_trd
|
|
56
|
+
pip install .
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### 方式3: 从源码安装
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
cd /path/to/cyqnt_trd
|
|
63
|
+
python setup.py install
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 依赖
|
|
67
|
+
|
|
68
|
+
主要依赖包:
|
|
69
|
+
- pandas >= 1.5.0
|
|
70
|
+
- numpy >= 1.23.0
|
|
71
|
+
- matplotlib >= 3.5.0
|
|
72
|
+
- requests >= 2.28.0
|
|
73
|
+
|
|
74
|
+
Binance SDK 依赖(需要单独安装):
|
|
75
|
+
- binance-sdk-spot
|
|
76
|
+
- binance-sdk-derivatives-trading-usds-futures
|
|
77
|
+
- binance-sdk-algo
|
|
78
|
+
- binance-common
|
|
79
|
+
|
|
80
|
+
安装依赖:
|
|
81
|
+
```bash
|
|
82
|
+
pip install -r requirements.txt
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## 使用方法
|
|
86
|
+
|
|
87
|
+
### 作为 Python Package 使用
|
|
88
|
+
|
|
89
|
+
安装后,可以直接导入使用:
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
# 导入数据获取模块
|
|
93
|
+
from cyqnt_trd.get_data import get_and_save_futures_klines, get_and_save_klines
|
|
94
|
+
|
|
95
|
+
# 导入交易信号模块
|
|
96
|
+
from cyqnt_trd.trading_signal.factor import ma_factor, rsi_factor
|
|
97
|
+
from cyqnt_trd.trading_signal.signal import ma_signal, factor_based_signal
|
|
98
|
+
|
|
99
|
+
# 导入回测框架
|
|
100
|
+
from cyqnt_trd.backtesting import BacktestFramework, FactorTester, StrategyBacktester
|
|
101
|
+
|
|
102
|
+
# 使用示例
|
|
103
|
+
data = get_and_save_futures_klines("BTCUSDT", interval="1h", limit=100)
|
|
104
|
+
framework = BacktestFramework(data_path="data/BTCUSDT_1h.json")
|
|
105
|
+
result = framework.test_factor(ma_factor, short_window=5, long_window=20)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 运行示例脚本
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# 作为模块运行
|
|
112
|
+
python -m cyqnt_trd.trading_signal.example_usage
|
|
113
|
+
|
|
114
|
+
# 运行测试脚本
|
|
115
|
+
python -m cyqnt_trd.test_script.realtime_price_tracker
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## 项目结构
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
cyqnt_trd/
|
|
122
|
+
├── cyqnt_trd/ # 主包目录
|
|
123
|
+
│ ├── __init__.py # 包初始化文件
|
|
124
|
+
│ ├── get_data/ # 数据获取模块
|
|
125
|
+
│ │ ├── __init__.py
|
|
126
|
+
│ │ ├── get_futures_data.py
|
|
127
|
+
│ │ └── get_trending_data.py
|
|
128
|
+
│ ├── trading_signal/ # 交易信号模块
|
|
129
|
+
│ │ ├── __init__.py
|
|
130
|
+
│ │ ├── factor/ # 因子模块
|
|
131
|
+
│ │ ├── signal/ # 信号策略模块
|
|
132
|
+
│ │ └── selected_alpha/ # Alpha因子模块
|
|
133
|
+
│ ├── backtesting/ # 回测框架
|
|
134
|
+
│ │ ├── __init__.py
|
|
135
|
+
│ │ ├── framework.py
|
|
136
|
+
│ │ ├── factor_test.py
|
|
137
|
+
│ │ └── strategy_backtest.py
|
|
138
|
+
│ └── test_script/ # 测试脚本
|
|
139
|
+
├── pyproject.toml # 包配置文件
|
|
140
|
+
├── requirements.txt # 依赖列表
|
|
141
|
+
└── README.md # 说明文档
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 许可证
|
|
145
|
+
|
|
146
|
+
MIT License
|
|
147
|
+
|
|
148
|
+
Copyright (c) 2025 Haowen Wang
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
cyqnt_trd/__init__.py,sha256=lzlnwwFKgLYRO8na8LLhUYrAgAgWv1GIpOyre_ZO2r8,593
|
|
2
|
+
cyqnt_trd/diagnose_api.py,sha256=9ZMZP2dPXOe9GsqzJLgoFIAGf8C0oXwDqBWQiQ-vfis,1047
|
|
3
|
+
cyqnt_trd/test.py,sha256=OhVgsWCudxuV29qs6JnvIzmrHa9HD2LftbKTj-paXMI,4948
|
|
4
|
+
cyqnt_trd/backtesting/README.md,sha256=ziH7-MOTTt5eJTYvbQW01z8gJwXr9IsN6SCnYDrupvM,7021
|
|
5
|
+
cyqnt_trd/backtesting/__init__.py,sha256=SjqWkR8cJrt9LThucELRbv461_uoVD555qN4mAf3FZ0,279
|
|
6
|
+
cyqnt_trd/backtesting/factor_test.py,sha256=MxGm6_wmoLceEJtJhYENWCTlnECwxVRKEixrzAulsWk,14581
|
|
7
|
+
cyqnt_trd/backtesting/framework.py,sha256=5fq8bMo77Nn0J8RFNIWCY1ZBEZZV4IxwcbfDAEWkLbw,11788
|
|
8
|
+
cyqnt_trd/backtesting/strategy_backtest.py,sha256=ofi4mCR_0HKUOms-0N2F4LDHs2p2VOFhC471pkC0lPs,25233
|
|
9
|
+
cyqnt_trd/get_data/__init__.py,sha256=1OVW78wk5FMKMhWE6kpkeadwMP0dQ9iDp-GAOr7mVWU,337
|
|
10
|
+
cyqnt_trd/get_data/get_futures_data.py,sha256=J1d0n66q1Fz0416bPvwRgE63pAawM_p8gwG0WCHh4N8,20170
|
|
11
|
+
cyqnt_trd/get_data/get_trending_data.py,sha256=hQEWfY-dNeii_rT8nbJ1LbqPAx-X8OgCl9ngaoeEU4o,34918
|
|
12
|
+
cyqnt_trd/online_trading/__init__.py,sha256=-jxQV_8gaJLT98Smyce6XYFgA5mwQCqQHrbQNvyUkbI,177
|
|
13
|
+
cyqnt_trd/online_trading/realtime_price_tracker.py,sha256=L8GdhDmHFNFlwhNPJksSDWUq85rSRPFOWeKcNgGVJyo,42118
|
|
14
|
+
cyqnt_trd/test_script/README.md,sha256=HrbudShRxkKS2yWguW2kJKAIps623hU4-PNQhCg8eqY,12864
|
|
15
|
+
cyqnt_trd/test_script/get_network_info.py,sha256=9AI71GLTUv4nT4ZW4B9vJ44SM8GhZhW7Y9vdeQ2-aYk,5617
|
|
16
|
+
cyqnt_trd/test_script/get_symbols_by_volume.py,sha256=Ut2lcUmBKRz09AAvorFtt86sx7_bmE3NxJnWGhgJrgw,8717
|
|
17
|
+
cyqnt_trd/test_script/realtime_price_tracker.py,sha256=6v4bhdNYY3PnxQdTpEYx6VnQblCgWK8tRsyxKkg6VHE,35650
|
|
18
|
+
cyqnt_trd/test_script/test_alpha.py,sha256=XShIPooIXJrntmAIPknpF3BrlHE-vdZOEDoumrxG3sI,9388
|
|
19
|
+
cyqnt_trd/test_script/test_kline_data.py,sha256=TBSs8F1lqZDxyw0Aax6_0m9OWrQKVphn-6afEMrpmCE,17673
|
|
20
|
+
cyqnt_trd/test_script/test_order.py,sha256=blEsmDJOpvjW8cyx0q0IgmkNX25TPZRZjjkizKKxkEE,47942
|
|
21
|
+
cyqnt_trd/trading_signal/README.md,sha256=Y6u7T25PgHc1Om96zUuL2WmFIn3EIrZp5tA49uL7BBE,8785
|
|
22
|
+
cyqnt_trd/trading_signal/__init__.py,sha256=_LRP8MwMd092eEFPiGq1WF9HYns9IuJaY86BRV34Ovw,230
|
|
23
|
+
cyqnt_trd/trading_signal/example_test_alpha.py,sha256=iuF6yMr5HKgc-6Hpu2rgR4DQA1-YSYyAi82UrEan02I,14548
|
|
24
|
+
cyqnt_trd/trading_signal/example_usage.py,sha256=ZErVHhTQ5NaqZ2QtPTpyBHjopKkUiKn_J5pyD6Pz53k,15421
|
|
25
|
+
cyqnt_trd/trading_signal/factor/__init__.py,sha256=XGRyTOog7XsGoboi85O1LQRwPylCnWXAQbgmlZeh3ck,392
|
|
26
|
+
cyqnt_trd/trading_signal/factor/ma_factor.py,sha256=bLH7FilEryaD9ZdgV95UqUOvfiTa3H1VO-AKcUFa7AQ,2656
|
|
27
|
+
cyqnt_trd/trading_signal/factor/rsi_factor.py,sha256=LBYq2D49Ru1z-03zdyVIoooCnKIxipN0IMNzsTKaXkc,1544
|
|
28
|
+
cyqnt_trd/trading_signal/selected_alpha/__init__.py,sha256=epcci935tZj-aIpvRxsV-8JbK5KZikkrywynLhvP0R8,7861
|
|
29
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha1.py,sha256=aJCvggxSQPuvWYTh00F_EWvgC0THzNot3xbENz-AQPw,2803
|
|
30
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha10.py,sha256=ywEnCEG8ZqU9Vu1nwUGzyteIF61YBW2TunPg-LaSFEM,2955
|
|
31
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha100.py,sha256=dGkZ1RzfWtmDExLfs2u_NjPWswGOLyv-mtFBDyCULPs,2294
|
|
32
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha101.py,sha256=DHeOAmOfzP3gvb93l70bWXYbjSkllMouqJrMcGmpB28,2717
|
|
33
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha11.py,sha256=2dASgbFMI0qWcrTA6ipniABi9v9A9sBCWJk5xPlI3kg,2810
|
|
34
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha12.py,sha256=A-iTjpqzRd-899sjtMDAFvX_Fu9mrw1DAZfN35cECh0,2714
|
|
35
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha13.py,sha256=WO-e0X_tq0580RtKNO8Cti53S3GQa_BVWQ-RwDNZEME,2722
|
|
36
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha14.py,sha256=SodD-15NQLYozRwTvWWBFf0Feb524lVlMyGAzExbCYw,2811
|
|
37
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha15.py,sha256=NQsJOatchUX298jpcrf1ghLKUY07GQdX_txq9FAdpPE,2810
|
|
38
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha16.py,sha256=FaaqlUASoaEXG2wTinrG4sSnNDZBSs6VT-ERzSK3s98,2720
|
|
39
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha17.py,sha256=SatLwYzcuuiFrXv0WRfeofD5ieyybHQaWX-U0gplRxU,2896
|
|
40
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha18.py,sha256=n4ALyfd_6iWGgzxi84tq9E3EhStdCgM5DSu226bxlTg,2930
|
|
41
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha19.py,sha256=aDQZAro6DvjYqDDDZQ8TqSDX-cPFscecvnMixjYukvs,2840
|
|
42
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha2.py,sha256=qa9laQkFIKSUYke5mQA5-ssw3gYaV9vjW-B-4fvsWA8,2838
|
|
43
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha20.py,sha256=Hscs2gv0DfakEw1DJDXDA7Zvkxc4WseMB7gbUCIyo_o,2887
|
|
44
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha21.py,sha256=ElG_jK32aUKdPswJq6Yfz1egVDWj85Dd82HARLJaO48,3071
|
|
45
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha22.py,sha256=h6ivuBjFHz0X_nSx1OXJyhaqHgSsbV-_-4gaqZyJb1E,2835
|
|
46
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha23.py,sha256=hqwvDVk-7-jODZvgDW4w9Ftxj2zzf_w_kzSvwC-35cs,2858
|
|
47
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha24.py,sha256=r0U2fRn02WzJyoVlP7sLuYDjSOoR5ruJUAiOS_L32KM,3004
|
|
48
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha25.py,sha256=bhvxb23qQAVrsG_WlKGZJufyGldQHUXxnTbWvDl65yA,2763
|
|
49
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha26.py,sha256=-QQVa4YNCK6WXrmuLHtzaXQIn5IjD6sSKp6G8-_K5O8,2825
|
|
50
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha27.py,sha256=FlH9QVp4Ixyj-NlFliK8_uYGaolGyHyP-1UaotyzYyA,2836
|
|
51
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha28.py,sha256=umhl2TjCLkKtTvBntZ4TroiRfCuvj_ejH6NV88xo2oo,2869
|
|
52
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha29.py,sha256=gRd1TiiIficNeKni3TB4az9kpzVdpm9yaOXb3zSyTwU,2914
|
|
53
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha3.py,sha256=M0xS3aRnmVQchHL5RaxlgV-NgwFuBBnc96B9h6f0DXI,2762
|
|
54
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha30.py,sha256=hdjmDVZfI8SrdorcIofQpzJDrL7h7YldGx1OMp-FQc8,2978
|
|
55
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha31.py,sha256=d72fHwAUZlA7hTsHez_tuYmt0DkhGerjddempUCg8tg,3056
|
|
56
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha32.py,sha256=TDfI3y1NAPHfIA556P_2eiOPTR5lPSt5z6sOmWfT4IU,2814
|
|
57
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha33.py,sha256=Y7Ugrj4alfe7F90UGGltR0k6nhdJ8CwUW2dUqIs7tXM,2686
|
|
58
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha34.py,sha256=afSGrICSA4CYDHvFFreieKsxt18X0J7MwT4ZApDXZlA,2869
|
|
59
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha35.py,sha256=D7Mnew0UhxeBzIIavYmBmNY0k_zSvzCVl9JMaWqCnzI,2850
|
|
60
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha36.py,sha256=x6Tt9waRBCA4Iv_0M3rKmryRV0muc6TUQhbBHdcZTec,3211
|
|
61
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha37.py,sha256=G5YhpZbxwKAkuBfr4u97klj7aomgh0yLUQ8d9NkyXQk,2796
|
|
62
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha38.py,sha256=UOB8z_NzbUpzE0FqyZqSicD2XNvYNLZ76tWfZc-_3ok,2816
|
|
63
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha39.py,sha256=EnVMTqmIkEfI6SrunexB6aOPUCftsk2KaYqSfQhYN_M,2878
|
|
64
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha4.py,sha256=8592hmawnk2hcddD9qYJCNEIB-0fuqW-7MBGg4YgRP0,2669
|
|
65
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha40.py,sha256=D3v5JZHHG9aRFXzBiU5FtTreqm3ce9ej2aFU9xBg0p0,2746
|
|
66
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha41.py,sha256=RBu2F44tj6iR27QRkosnIVdDuBEndxUlAV9fRFFgxy4,2679
|
|
67
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha42.py,sha256=ia7QJXeGuXzsIbQvyRmgrxZOqFJWn2ugII-Le-P0BEo,2712
|
|
68
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha43.py,sha256=ZDBXvKZrNWItf_fHnKEoncSBKxrd1fcVlqfJxMLnECo,2773
|
|
69
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha44.py,sha256=8P1WfhKrqzkAxIHA3gHVzJlURcgF_INdkFpMWlG_oUM,2767
|
|
70
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha45.py,sha256=j2GOEbQIMgO99iGIUocDNGFqgAHPK4PTlaBxo5BP5vI,2988
|
|
71
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha46.py,sha256=hDsQ3koE6O--YPPoJ56ojWB9187wnvjsQEqE1OHQ8lY,3073
|
|
72
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha47.py,sha256=Uuj5pVdk_50kuNy3Dh3esuNkuK99t6zC0CHF1wQtbQg,2921
|
|
73
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha48.py,sha256=GjLP3H2pqzsYlMlgQ2HFcus_DmAm6UpIHkfdB9e9E44,2288
|
|
74
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha49.py,sha256=t5ZALCAEKLW0gMWFI8Et81ClAv7e5YtctfOFBN2mdqY,2948
|
|
75
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha5.py,sha256=sGqmReWdbDSxCS8_0aYIZllyeh32Ysb5tjanvTeqVOQ,2768
|
|
76
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha50.py,sha256=nPeqdUzw7Yn-l1hevkoT3ufUaH9ZXZeZgtJhOYi-hMk,2740
|
|
77
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha51.py,sha256=pjDumRm_nd9tOFk_scb9rRoFXzlihUVhVzXrPRKsJT0,2950
|
|
78
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha52.py,sha256=C5PjrrHiwD269Q32l_IrA9_0DQiiEhQAmMI85eUNa5Y,2881
|
|
79
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha53.py,sha256=9E4XaI8sZMg_YKemyoEEvQ4ueQmo4B3D7ooGWTPZha4,2812
|
|
80
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha54.py,sha256=FDoP1iJkv2Ra1WYmhIZidhCulVOdRwn_hP6NzfNHm-A,2809
|
|
81
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha55.py,sha256=kUR-nEeiQXX58rxK9oHSwhCHg84eV4-MfKTGRfntZRo,2971
|
|
82
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha56.py,sha256=p4dASQfke9dQctgXrd9K0_8EuTSUmkowgL8hgwvuDoY,2794
|
|
83
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha57.py,sha256=kvaVQMxaw_JNTWSVrvf41-UsRE5FF1mewIDR4u9qk_k,2772
|
|
84
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha58.py,sha256=mFjxVjmB7J-dEvicPy-PCoSE7b6nXznreurqmGl1vog,2288
|
|
85
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha59.py,sha256=2BY0Ld1azrocHrh1Qeba0geOURaacVjnc5oZWOihUIc,2288
|
|
86
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha6.py,sha256=zMIiryK_uxdpJYCMwRlf7IepFqReXnZOYMoRN0EAtp4,2738
|
|
87
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha60.py,sha256=KPKZBFsN7KdRScicmAXyGcsihtxou0zcW7zwKELyidQ,3055
|
|
88
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha61.py,sha256=NdlnHR5-ScIe5JyX3X2Qvowdq1LIxGoCJeXMGC7TqAg,2947
|
|
89
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha62.py,sha256=4H5HUS0GlWvmRVIQNytSOyjUa5vVVFvkq-XzcQziRNo,2933
|
|
90
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha63.py,sha256=bpgO912e0suwvHmbFcRSf8-3GWyMpfd088y5ryklMRo,2288
|
|
91
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha64.py,sha256=UgQrJDieKvpM0RpEc6lpEdy2gpFawYJ7hJQXy-cmaUs,3044
|
|
92
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha65.py,sha256=57jY3lUFN1yMkGfbBinbdUS9w8IMYDLB05CckekS3vo,2924
|
|
93
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha66.py,sha256=aQeZOmV5vLX2BE5beIGv9g8pWPR0uA6b_Hn0Ak9cDKY,2985
|
|
94
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha67.py,sha256=ZxBiZKbJjS-7YAXoJWrcGCb3BzL4Wglk1U6nvhQn7bM,2288
|
|
95
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha68.py,sha256=eg_dlfhQR_hCUMMUrPWJG9WgvCcHBo5vNRfhD8WB9NY,2924
|
|
96
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha69.py,sha256=rs8FQTJWMhWTEIsCg3P5AZcolcZ5-FA_EMLaEH-0CPY,2288
|
|
97
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha7.py,sha256=SzUuAIlTaKtiUJssOFWhEt8CHb1i9j4uxkgby3Jhg28,2861
|
|
98
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha70.py,sha256=ZSyO73e_yWzsJaqq0Zhs7rjLoWhVRoXTAq1IBA_Unnc,2288
|
|
99
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha71.py,sha256=yyNUnzxElTOKWvES1dVPkRjCKlmR2Y7-NJyy0O0hjZg,3362
|
|
100
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha72.py,sha256=aca_74jEXDvFVb_UgGCbyatTtk6B2wlLwx0sEF8kV90,2969
|
|
101
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha73.py,sha256=i94PnLAygrDwboYc1Weu1BK5FiwOL4v07CNsO59vqQ4,3406
|
|
102
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha74.py,sha256=US7rwBho09rf1QCC04OmL4VUKamOjj4bm2dsIRo_Zp8,2950
|
|
103
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha75.py,sha256=OL5Jj5aSwgesAz7Sct6MFvjRKvjm-RT7Ve3ZKk6IGW0,2818
|
|
104
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha76.py,sha256=3EJBqHb8OIJ-7ZDBqI4NtTzUpefVwavOt6sGNOhTzOE,2288
|
|
105
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha77.py,sha256=kwTj7PshamibYLFOiv9NEmyROWRXsXxxAGecwhbKec0,3303
|
|
106
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha78.py,sha256=nUDmRtisk8CQXYh02B2WyGR39axpi3zYaJMQ5AnGWWQ,2951
|
|
107
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha79.py,sha256=zhJVA0kmdN79Sra7szUYAbVwyQUy1oLKafRUtOmbaFY,2288
|
|
108
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha8.py,sha256=Us_DXU_7aBKrWGtOF_QBgEi1f080jn6wns9g6XroRYQ,2845
|
|
109
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha80.py,sha256=B7ve8V6yhZDjXHoc2NHz0MlDGMWsMM0yBntnFi06A74,2288
|
|
110
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha81.py,sha256=6ngetxWqR0y8EOiyuwbnJLX-LqXELW6J3Fwubtnxakc,2931
|
|
111
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha82.py,sha256=21sx8efKM1_upuJTeApiU8xHMfRaJeXSa4DXAXeTtd8,2288
|
|
112
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha83.py,sha256=8AuE-Yiwu9VM5_6euPpyf6j-hyX-PMkOWy0Y9jKFzr0,2928
|
|
113
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha84.py,sha256=JAHff0ofH0o8wpx6Jy71VTmsb5yJiczF8NCbQ7QX3Y0,2760
|
|
114
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha85.py,sha256=fV3JchpGVL5zQsBrvau4Dhid1JWZBdpD86IDVnr4rpE,2986
|
|
115
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha86.py,sha256=YYSZiLA3Ig8PO6JR97NHc1QL0QNTGsqeSzdenR5amRY,2872
|
|
116
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha87.py,sha256=Bo1k21BAy-UI3HQRgkYqzqIcCxOIWnNgmbW4Z3iKJ-w,2288
|
|
117
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha88.py,sha256=MBPhW20sCBVqX8CoJQUJtqZob5flRQmUdXcjRNQmreI,3392
|
|
118
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha89.py,sha256=CRS501W7z7NKPqR2fcZLwFC9GGZF7Ps5-1zukhs65wM,2288
|
|
119
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha9.py,sha256=oyPY7wg8YGuwUR0kua1dvBbaijVXOG_2XdAGPU7ref0,2946
|
|
120
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha90.py,sha256=_24NFtxF-9mFrUsIWmQWgrQvLTf1qpPJMug57tQr15A,2288
|
|
121
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha91.py,sha256=kfNelNSIwxKjNpu48_wEWSUFYEfCPfMGEW3gG7Hju1M,2288
|
|
122
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha92.py,sha256=g7LQv3MZqyzjhTyGiACYanvkQAaQt4Pe8EnQka1pr2c,3342
|
|
123
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha93.py,sha256=70zXN-9RKE2MUz-KXrzcmq2-Q--sXEY7LsqrGQCEqlk,2288
|
|
124
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha94.py,sha256=qUT-rPKo1g2i16YCvGT_52ir6UCR2XrDc8KzOt7JNsQ,2877
|
|
125
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha95.py,sha256=FaURxJpX048RWMX-ksaW2738l96Sd3iPNsUxHkKnpTo,2925
|
|
126
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha96.py,sha256=8fYQKfjwfFmv70YnoBS3ivaBb0alUWsgmupr7XtBQeI,3393
|
|
127
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha97.py,sha256=1OKoVgSVBi3pRfVlwQzK9E0qTLBC8BZ_vba7j3Z5jxo,2288
|
|
128
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha98.py,sha256=uGFGwKXgZWDY5Nc8RIZCYMFz5IH1esuklRJNFJ_TwKk,3011
|
|
129
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha99.py,sha256=5vCLbGCDep35A7lgC0jQjkiUHGYai9Xxba8aHM03iJg,2898
|
|
130
|
+
cyqnt_trd/trading_signal/selected_alpha/alpha_utils.py,sha256=LKKr1mA-RMICrW0IMbpirTQ-RWTcHcJbtKubn6oviVU,7216
|
|
131
|
+
cyqnt_trd/trading_signal/selected_alpha/create_all_alphas.py,sha256=prgd-hqzDf5cRJnGTNNTzvlyNONuEHlNoqB1PKro2oA,9278
|
|
132
|
+
cyqnt_trd/trading_signal/selected_alpha/generate_alphas.py,sha256=K-VgFGhojzpfxlpq-vlEU983bT3hxqw_h-bWLltptZE,4958
|
|
133
|
+
cyqnt_trd/trading_signal/selected_alpha/test_alpha.py,sha256=i8jLeGwX3I9wykmx9skWRmSxvVHCggxfhw5NQVeTSQA,9544
|
|
134
|
+
cyqnt_trd/trading_signal/signal/__init__.py,sha256=ySAXp03m12xZPRFuQf0YZSUvx0ckb2WaNbExnOK3iLk,619
|
|
135
|
+
cyqnt_trd/trading_signal/signal/factor_based_signal.py,sha256=Yx3ZTu1b2hsQP6EXSNbdMzKN87eA_p-zIlzz1-fUR8Y,15692
|
|
136
|
+
cyqnt_trd/trading_signal/signal/ma_signal.py,sha256=JrJfxrIF5qOCEU0wIbghDj--tPxbIGWaiJLZyPPdytw,6319
|
|
137
|
+
cyqnt_trd/utils/__init__.py,sha256=nivIRoiWxotHFb2wbXi6HQMDPetcBqA45JiTiRLnPV8,54
|
|
138
|
+
cyqnt_trd/utils/set_user.py,sha256=dwpVtKHuHnoPJIUg6k-jCAY7TCeIU3raGoCJu16oY5c,1120
|
|
139
|
+
cyqnt_trd-0.1.2.dist-info/licenses/LICENSE,sha256=0aipQu2q3DtGr_O6tjt9uXgeJTbeQS0wQXaecMumNxo,1068
|
|
140
|
+
test/real_time_trade.py,sha256=5wBfrG_Reu6bOKuyjH_1mAM7feoJiewUAgwB3y5tCTk,27909
|
|
141
|
+
test/test_example_usage.py,sha256=oJBe4G1juHMi2enU5cyzW-q7ruGnlwbQ98C0kBEwiTw,11816
|
|
142
|
+
test/test_get_data.py,sha256=W7IdBdyryPT08p7YL8xWoDrpcsRFED3LQGPtrwZboFM,10859
|
|
143
|
+
test/test_realtime_price_tracker.py,sha256=55v8HIsCPF88P4VBjaSUpqI7m1mX_TkN9FW84VLa1Wo,19870
|
|
144
|
+
cyqnt_trd-0.1.2.dist-info/METADATA,sha256=Wn41ore1yPeLOTmaprUG5KSIqG5UcszRlluUuAsUwqY,4193
|
|
145
|
+
cyqnt_trd-0.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
146
|
+
cyqnt_trd-0.1.2.dist-info/top_level.txt,sha256=X_e0adWwso6qLx6oaGHNQFNFwTtSDP-2G-W0A1o-jnc,15
|
|
147
|
+
cyqnt_trd-0.1.2.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Haowen Wang
|
|
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.
|