mt5-hedge 0.1.0__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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 cloudformer
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,75 @@
1
+ Metadata-Version: 2.4
2
+ Name: mt5-hedge
3
+ Version: 0.1.0
4
+ Summary: One Windows, two MT5 terminals, one hedged pair: page, watchdog, logging. Zero config.
5
+ License-Expression: MIT
6
+ Project-URL: Homepage, https://github.com/cloudformer/mt5-hedge
7
+ Classifier: Operating System :: Microsoft :: Windows
8
+ Classifier: Programming Language :: Python :: 3
9
+ Requires-Python: >=3.10
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: MetaTrader5==5.0.*; sys_platform == "win32"
13
+ Requires-Dist: fastapi==0.115.*
14
+ Requires-Dist: uvicorn[standard]==0.34.*
15
+ Requires-Dist: requests==2.32.*
16
+ Dynamic: license-file
17
+
18
+ # mt5-hedge
19
+
20
+ 一台 Windows、两个 MT5(两家券商、两个账户)、一对对冲单。页面开仓、改止损止盈、平仓;一腿先出场另一腿自动补平;每个动作记日志到本地 CSV 并发到你自己的 AWS。
21
+
22
+ ## Windows 怎么用
23
+
24
+ **1. 安装**(管理员 PowerShell,一行,重跑 = 升级)
25
+
26
+ ```powershell
27
+ irm https://raw.githubusercontent.com/cloudformer/mt5-hedge/main/installers/install.ps1 | iex
28
+ ```
29
+
30
+ 装完桌面有三个图标:`MT5-A`、`MT5-B`、`mt5-hedge`。
31
+
32
+ **2. 登录**:双击 `MT5-A`,登录券商 1 的账户,勾「记住密码」,关掉。`MT5-B` 同样登录券商 2。
33
+
34
+ **3. 启动**:双击 `mt5-hedge`。浏览器打开 `http://127.0.0.1:8000/`,顶部绿条「两腿就绪」就能用;红条写着哪腿为什么不能交易。
35
+
36
+ **4. 用**:
37
+ - 开一对:品种、手数、止损=止盈美元数(一个值)、方向(A 买涨·B 买跌 或反过来),确认。
38
+ - 平一对:随时点;「更新止损止盈」两腿一起改。
39
+ - 最下面「日志」:每对一个折叠条,在场的展开,已结的折叠,净值、平仓原因、两腿账号都在一行。
40
+
41
+ 以后每次只做第 3 步。关掉黑窗口 = 全停,持仓不受影响(券商侧止损止盈还在)。
42
+
43
+ **日志发到 AWS**:`%USERPROFILE%\mt5-hedge\hedge.json` 里 `log_url` 填 terraform 输出的地址。不填只记本地。
44
+
45
+ **局域网访问**:`http://<这台机的IP>:8000/`,Windows 防火墙放行 8000 即可。
46
+
47
+ ## 文件在哪
48
+
49
+ | 东西 | 位置 |
50
+ |---|---|
51
+ | 两个 MT5 | `C:\Program Files\MT5-A`、`MT5-B`(便携模式,登录各自保存) |
52
+ | 配置 hedge.json、日志 CSV、运行日志 | `%USERPROFILE%\mt5-hedge\` |
53
+ | 代码 | PyPI 包 `mt5-hedge`(https://pypi.org/project/mt5-hedge/) |
54
+
55
+ ## AWS(一次)
56
+
57
+ ```
58
+ cd terraform
59
+ cp example.tfvars prod.tfvars # 填 AK/SK、桶名、库密码
60
+ terraform init && terraform apply -var-file=prod.tfvars
61
+ ```
62
+
63
+ 输出 `log_url`(填进 hedge.json)和 `console_url`(浏览器看 `hedge_log` 表,用户名密码 = tfvars 里的)。建的东西:一个私有 S3 桶、数据库 Lambda(s3rds)、收日志 Lambda,表自动建好。
64
+
65
+ ## 日志表 hedge_log
66
+
67
+ 一腿一动作一行,一对走完 4 行:open A、open B、close A、close B(中途改过止损止盈再加 modify 行)。每行自带全部上下文:时间、pair_id、腿、方向、手数、ticket、开仓价、止损止盈、平仓原因(manual / auto_naked / sl / tp)、券商侧 profit / swap / commission / total、平完余额、券商、账号、机器名、IP、进程号。主键 `key` 幂等,重发覆盖。表结构在 `terraform/schema/hedge_log.sql`。
68
+
69
+ ## 纪律
70
+
71
+ - 每腿必带券商侧止损止盈,美元按该券商合约规格现算。
72
+ - 一腿开成功另一腿失败,自动平掉已开的腿。
73
+ - 一对只剩一腿,3 秒内市价补平。
74
+ - 两家合约规格不同,页面红条拦住,同手数不是对冲。
75
+ - 一次只允许一对在场。
@@ -0,0 +1,58 @@
1
+ # mt5-hedge
2
+
3
+ 一台 Windows、两个 MT5(两家券商、两个账户)、一对对冲单。页面开仓、改止损止盈、平仓;一腿先出场另一腿自动补平;每个动作记日志到本地 CSV 并发到你自己的 AWS。
4
+
5
+ ## Windows 怎么用
6
+
7
+ **1. 安装**(管理员 PowerShell,一行,重跑 = 升级)
8
+
9
+ ```powershell
10
+ irm https://raw.githubusercontent.com/cloudformer/mt5-hedge/main/installers/install.ps1 | iex
11
+ ```
12
+
13
+ 装完桌面有三个图标:`MT5-A`、`MT5-B`、`mt5-hedge`。
14
+
15
+ **2. 登录**:双击 `MT5-A`,登录券商 1 的账户,勾「记住密码」,关掉。`MT5-B` 同样登录券商 2。
16
+
17
+ **3. 启动**:双击 `mt5-hedge`。浏览器打开 `http://127.0.0.1:8000/`,顶部绿条「两腿就绪」就能用;红条写着哪腿为什么不能交易。
18
+
19
+ **4. 用**:
20
+ - 开一对:品种、手数、止损=止盈美元数(一个值)、方向(A 买涨·B 买跌 或反过来),确认。
21
+ - 平一对:随时点;「更新止损止盈」两腿一起改。
22
+ - 最下面「日志」:每对一个折叠条,在场的展开,已结的折叠,净值、平仓原因、两腿账号都在一行。
23
+
24
+ 以后每次只做第 3 步。关掉黑窗口 = 全停,持仓不受影响(券商侧止损止盈还在)。
25
+
26
+ **日志发到 AWS**:`%USERPROFILE%\mt5-hedge\hedge.json` 里 `log_url` 填 terraform 输出的地址。不填只记本地。
27
+
28
+ **局域网访问**:`http://<这台机的IP>:8000/`,Windows 防火墙放行 8000 即可。
29
+
30
+ ## 文件在哪
31
+
32
+ | 东西 | 位置 |
33
+ |---|---|
34
+ | 两个 MT5 | `C:\Program Files\MT5-A`、`MT5-B`(便携模式,登录各自保存) |
35
+ | 配置 hedge.json、日志 CSV、运行日志 | `%USERPROFILE%\mt5-hedge\` |
36
+ | 代码 | PyPI 包 `mt5-hedge`(https://pypi.org/project/mt5-hedge/) |
37
+
38
+ ## AWS(一次)
39
+
40
+ ```
41
+ cd terraform
42
+ cp example.tfvars prod.tfvars # 填 AK/SK、桶名、库密码
43
+ terraform init && terraform apply -var-file=prod.tfvars
44
+ ```
45
+
46
+ 输出 `log_url`(填进 hedge.json)和 `console_url`(浏览器看 `hedge_log` 表,用户名密码 = tfvars 里的)。建的东西:一个私有 S3 桶、数据库 Lambda(s3rds)、收日志 Lambda,表自动建好。
47
+
48
+ ## 日志表 hedge_log
49
+
50
+ 一腿一动作一行,一对走完 4 行:open A、open B、close A、close B(中途改过止损止盈再加 modify 行)。每行自带全部上下文:时间、pair_id、腿、方向、手数、ticket、开仓价、止损止盈、平仓原因(manual / auto_naked / sl / tp)、券商侧 profit / swap / commission / total、平完余额、券商、账号、机器名、IP、进程号。主键 `key` 幂等,重发覆盖。表结构在 `terraform/schema/hedge_log.sql`。
51
+
52
+ ## 纪律
53
+
54
+ - 每腿必带券商侧止损止盈,美元按该券商合约规格现算。
55
+ - 一腿开成功另一腿失败,自动平掉已开的腿。
56
+ - 一对只剩一腿,3 秒内市价补平。
57
+ - 两家合约规格不同,页面红条拦住,同手数不是对冲。
58
+ - 一次只允许一对在场。
@@ -0,0 +1,2 @@
1
+ """mt5-hedge: 一台 Windows、两个 MT5、一对对冲单. 见 README."""
2
+ __version__ = "0.1.0"