这是一个基于 Python 和 Selenium 的全自动对冲交易脚本,可以同时控制两个浏览器窗口,在一个浏览器中开多单,另一个浏览器中开空单,实现完全对冲的交易策略。脚本会自动监控持仓状态,当其中一个持仓触发止盈或止损时,会自动平掉另一个持仓。
新增加了exe版本,内置了variational和backpack两个项目的对冲脚本,py脚本不会使用的话,需要使用请联系推特@ferdie_jhovie或者Tg:sdohuajia
- ✅ 双浏览器同步交易:同时控制两个浏览器窗口进行对冲交易
- ✅ 自动开仓:自动选择交易币种、设置方向、填写数量、设置止盈止损
- ✅ 同步下单:两个浏览器在指定时间点同步下单,确保价格一致
- ✅ 自动平仓:当一个持仓平仓时,自动平掉另一个持仓
- ✅ 自动补设TP/SL:如果开仓时未成功设置止盈止损,会自动补设
- ✅ 定时启动:支持设置启动时间,在指定时间自动开始运行
- ✅ MoreLogin 支持:支持通过 MoreLogin 管理浏览器环境,避免账号关联
- Windows 10/11
- Python 3.7 或更高版本
-
Python 3.7+
- 下载地址:https://www.python.org/downloads/
- 安装时勾选 "Add Python to PATH"
-
MoreLogin 客户端
- 用于管理浏览器环境,避免账号关联
- 下载地址:https://www.morelogin.com/
- 推荐码:AAQyOd2HcKBg
-
ChromeDriver(可选)
- 如果使用浏览器路径方式,可能需要手动安装 ChromeDriver
- 推荐使用
webdriver-manager自动管理(见安装步骤)
git clone https://github.com/sdohuajia/Variational.git 将项目文件下载到本地目录,确保包含以下文件:
hedge_bot.py- 主脚本文件config.py- 配置文件
- 下载并安装 MoreLogin 客户端
- 登录 MoreLogin 账号
- 创建两个浏览器环境(用于对冲的两个账号)
- 在 MoreLogin 中配置 API(如果使用 API 方式)
所有配置都在 config.py 文件中进行。打开 config.py 文件,根据你的需求修改以下配置:
# 交易页面 URL
URL = "https://omni.variational.io/perpetual/BTC"
# 启动时间(可选)
# 格式: "HH:MM:SS",例如 "14:30:00"
# 设置为 None 表示立即启动
START_TIME = None脚本支持三种方式连接 MoreLogin 浏览器,推荐使用方式2(远程调试端口),最稳定可靠。
# 浏览器1的环境ID或序号
# 环境ID 通常是长数字字符串,环境序号是整数(1, 2, 3...)
MORELOGIN_ENV1 = None # 例如: 1760643143825055744 或 1
# 浏览器2的环境ID或序号
MORELOGIN_ENV2 = None # 例如: 1760644815993397248 或 2
# MoreLogin API 地址(默认是本地40000端口)
MORELOGIN_API_URL = "http://127.0.0.1:40000"
# MoreLogin API 认证信息(在 MoreLogin 客户端中查看)
MORELOGIN_API_ID = "None" # 在 MoreLogin API 设置中查看
MORELOGIN_API_KEY = "None" # 在 MoreLogin API 设置中查看配置步骤:
- 在 MoreLogin 客户端中:设置 -> API -> 查看 API ID 和 API Key
- 在 MoreLogin 客户端中找到两个浏览器环境的 ID 或序号
- 填写到配置文件中
注意: 如果 API 出现 "Http message not readable" 错误,请使用方式2(远程调试端口)
这是最稳定可靠的方式,推荐使用。
# 浏览器1的远程调试端口
MORELOGIN_PORT1 = None # 例如: 9222
# 浏览器2的远程调试端口
MORELOGIN_PORT2 = None # 例如: 9223配置步骤:
- 在 MoreLogin 中手动打开两个浏览器窗口
- 导航到交易页面:
https://omni.variational.io/perpetual/BTC - 在 MoreLogin 中,右键浏览器 -> 设置 -> 启用远程调试
- 记录下端口号(通常是 9222, 9223 等)
- 填写到配置文件中
优点:
- 最稳定可靠
- 不需要 API 配置
- 如果 API 失败,脚本会自动尝试使用远程调试端口
# MoreLogin 浏览器的 chrome.exe 路径
MORELOGIN_PATH1 = None # 例如: r"C:\Users\YourName\AppData\Local\MoreLogin\Browser\Application\chrome.exe"
MORELOGIN_PATH2 = None # 例如: r"C:\Users\YourName\AppData\Local\MoreLogin\Browser\Application\chrome.exe"配置步骤:
- 找到 MoreLogin 浏览器的 chrome.exe 路径
- 填写到配置文件中
# 交易币种
TRADING_PAIR = 'BTC' # 例如: 'BTC', 'ETH', 'SOL' 等
# 开仓数量
ORDER_QUANTITY = '0.015' # 例如: '0.01' 表示 0.01 BTC
# 止盈数值 (%)
TP_VALUE = '3' # 例如: '3' 表示 3%
# 止损数值 (%)
SL_VALUE = '3' # 例如: '3' 表示 3%
# 下单对齐周期(秒)
# 例如 10 表示在 :00, :10, :20, :30, :40, :50 秒下单
ORDER_INTERVAL = 10说明:
- 脚本会自动随机分配方向:浏览器1开多,浏览器2开空(或相反),确保对冲
- 两个浏览器会使用相同的交易币种、数量和止盈止损设置
# 平仓后等待多少秒再开新仓(给另一个浏览器时间)
COOLDOWN_AFTER_CLOSE = 120 # 默认 120 秒
# 一个浏览器平仓后,等待多少秒再检查并平掉另一个浏览器的持仓
WAIT_BEFORE_FORCE_CLOSE = 30 # 默认 30 秒如果使用远程调试端口方式(推荐):
- 打开 MoreLogin 客户端
- 启动两个浏览器环境
- 在两个浏览器中都导航到交易页面:
https://omni.variational.io/perpetual/BTC - 确保两个浏览器都已登录各自的交易账号
- 在 MoreLogin 中,右键每个浏览器 -> 设置 -> 启用远程调试
- 记录下两个浏览器的端口号(例如:9222 和 9223)
- 在
config.py中配置MORELOGIN_PORT1和MORELOGIN_PORT2
打开 config.py,根据你的需求修改配置:
- 交易币种、数量
- 止盈止损百分比
- MoreLogin 连接方式
- 其他参数
在命令行中进入项目目录,执行:
python hedge_bot.py脚本运行后,会在控制台输出详细的运行日志,包括:
- 浏览器连接状态
- 开仓操作
- 持仓状态
- 平仓操作
- 错误信息
按 Ctrl + C 停止脚本运行。
-
初始化阶段
- 连接两个 MoreLogin 浏览器
- 导航到交易页面
- 等待启动时间(如果配置了)
-
开仓阶段
- 检查两个浏览器是否都没有持仓
- 如果都没有持仓,准备开新单:
- 选择交易币种
- 随机分配方向(一个开多,一个开空)
- 填写开仓数量
- 设置止盈止损
- 在指定时间点同步下单
-
监控阶段
- 持续监控两个浏览器的持仓状态
- 如果检测到新持仓,自动补设止盈止损(如果需要)
- 如果其中一个持仓平仓(触发止盈或止损),立即平掉另一个持仓
-
循环阶段
- 平仓后等待冷却时间
- 重新开始开仓流程
-
账号安全
- 确保两个浏览器使用不同的账号(避免账号关联)
- 不要在脚本运行时手动操作浏览器(可能导致脚本识别错误)
-
网络连接
- 确保网络连接稳定
- 如果网络中断,脚本可能会出错
-
浏览器状态
- 使用远程调试端口方式时,不要关闭 MoreLogin 中的浏览器窗口
- 确保浏览器页面已加载完成再运行脚本
-
交易风险
- 本脚本仅用于自动化交易,不保证盈利
- 请充分了解交易风险后再使用
- 建议先在测试环境或小额资金下测试
-
配置检查
- 运行前请仔细检查配置文件
- 确保交易币种、数量、止盈止损设置正确
- 确保 MoreLogin 配置正确
解决方案:
- 确保浏览器页面已完全加载
- 不要最小化浏览器窗口
- 检查交易页面 URL 是否正确
A: 检查 ORDER_INTERVAL 配置是否正确。脚本会在每个对齐周期(例如每10秒)同步下单。
A: 可能的原因:
- 页面元素发生变化
- 平仓按钮被遮挡
- 网络延迟
解决方案:
- 检查浏览器控制台是否有错误
- 手动检查页面是否可以正常平仓
- 如果问题持续,可能需要更新脚本以适配新的页面结构
A: 脚本会在控制台输出详细的运行日志,包括:
[浏览器1]和[浏览器2]的操作日志- 开仓、平仓、设置止盈止损等操作的详细信息
- 错误信息和警告
- 初始版本
- 支持双浏览器对冲交易
- 支持三种 MoreLogin 连接方式
- 自动开仓、平仓、设置止盈止损
- 同步下单功能
本项目仅供学习和研究使用。使用本脚本进行交易的风险由使用者自行承担。
如有问题或建议,欢迎提交 Issue 或 Pull Request。
免责声明: 本脚本仅用于自动化交易工具,不构成任何投资建议。使用本脚本进行交易存在风险,可能导致资金损失。请充分了解交易风险后再使用,并自行承担所有责任。