Thanks to visit codestin.com
Credit goes to github.com

Skip to content

sdohuajia/Variational

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

全自动对冲交易脚本使用文档

📖 项目简介

这是一个基于 Python 和 Selenium 的全自动对冲交易脚本,可以同时控制两个浏览器窗口,在一个浏览器中开多单,另一个浏览器中开空单,实现完全对冲的交易策略。脚本会自动监控持仓状态,当其中一个持仓触发止盈或止损时,会自动平掉另一个持仓。

新增加了exe版本,内置了variational和backpack两个项目的对冲脚本,py脚本不会使用的话,需要使用请联系推特@ferdie_jhovie或者Tg:sdohuajia

主要功能

  • 双浏览器同步交易:同时控制两个浏览器窗口进行对冲交易
  • 自动开仓:自动选择交易币种、设置方向、填写数量、设置止盈止损
  • 同步下单:两个浏览器在指定时间点同步下单,确保价格一致
  • 自动平仓:当一个持仓平仓时,自动平掉另一个持仓
  • 自动补设TP/SL:如果开仓时未成功设置止盈止损,会自动补设
  • 定时启动:支持设置启动时间,在指定时间自动开始运行
  • MoreLogin 支持:支持通过 MoreLogin 管理浏览器环境,避免账号关联

🔧 环境要求

系统要求

  • Windows 10/11
  • Python 3.7 或更高版本

必需软件

  1. Python 3.7+

  2. MoreLogin 客户端

  3. ChromeDriver(可选)

    • 如果使用浏览器路径方式,可能需要手动安装 ChromeDriver
    • 推荐使用 webdriver-manager 自动管理(见安装步骤)

📦 安装步骤

1. 克隆或下载项目

git clone https://github.com/sdohuajia/Variational.git 将项目文件下载到本地目录,确保包含以下文件:

  • hedge_bot.py - 主脚本文件
  • config.py - 配置文件

3. 安装并配置 MoreLogin

  1. 下载并安装 MoreLogin 客户端
  2. 登录 MoreLogin 账号
  3. 创建两个浏览器环境(用于对冲的两个账号)
  4. 在 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 配置(三选一)

脚本支持三种方式连接 MoreLogin 浏览器,推荐使用方式2(远程调试端口),最稳定可靠。

方式1:使用 MoreLogin API(需要 MoreLogin 客户端启动并登录)

# 浏览器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 设置中查看

配置步骤:

  1. 在 MoreLogin 客户端中:设置 -> API -> 查看 API ID 和 API Key
  2. 在 MoreLogin 客户端中找到两个浏览器环境的 ID 或序号
  3. 填写到配置文件中

注意: 如果 API 出现 "Http message not readable" 错误,请使用方式2(远程调试端口)

方式2:使用远程调试端口(⭐⭐⭐ 强烈推荐)

这是最稳定可靠的方式,推荐使用。

# 浏览器1的远程调试端口
MORELOGIN_PORT1 = None  # 例如: 9222

# 浏览器2的远程调试端口
MORELOGIN_PORT2 = None  # 例如: 9223

配置步骤:

  1. 在 MoreLogin 中手动打开两个浏览器窗口
  2. 导航到交易页面:https://omni.variational.io/perpetual/BTC
  3. 在 MoreLogin 中,右键浏览器 -> 设置 -> 启用远程调试
  4. 记录下端口号(通常是 9222, 9223 等)
  5. 填写到配置文件中

优点:

  • 最稳定可靠
  • 不需要 API 配置
  • 如果 API 失败,脚本会自动尝试使用远程调试端口

方式3:使用浏览器可执行文件路径

# 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"

配置步骤:

  1. 找到 MoreLogin 浏览器的 chrome.exe 路径
  2. 填写到配置文件中

交易配置

# 交易币种
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 秒

🚀 使用方法

1. 配置 MoreLogin 浏览器

如果使用远程调试端口方式(推荐):

  1. 打开 MoreLogin 客户端
  2. 启动两个浏览器环境
  3. 在两个浏览器中都导航到交易页面:https://omni.variational.io/perpetual/BTC
  4. 确保两个浏览器都已登录各自的交易账号
  5. 在 MoreLogin 中,右键每个浏览器 -> 设置 -> 启用远程调试
  6. 记录下两个浏览器的端口号(例如:9222 和 9223)
  7. config.py 中配置 MORELOGIN_PORT1MORELOGIN_PORT2

2. 修改配置文件

打开 config.py,根据你的需求修改配置:

  • 交易币种、数量
  • 止盈止损百分比
  • MoreLogin 连接方式
  • 其他参数

3. 运行脚本

在命令行中进入项目目录,执行:

python hedge_bot.py

4. 监控运行

脚本运行后,会在控制台输出详细的运行日志,包括:

  • 浏览器连接状态
  • 开仓操作
  • 持仓状态
  • 平仓操作
  • 错误信息

5. 停止脚本

Ctrl + C 停止脚本运行。

📋 工作流程

  1. 初始化阶段

    • 连接两个 MoreLogin 浏览器
    • 导航到交易页面
    • 等待启动时间(如果配置了)
  2. 开仓阶段

    • 检查两个浏览器是否都没有持仓
    • 如果都没有持仓,准备开新单:
      • 选择交易币种
      • 随机分配方向(一个开多,一个开空)
      • 填写开仓数量
      • 设置止盈止损
      • 在指定时间点同步下单
  3. 监控阶段

    • 持续监控两个浏览器的持仓状态
    • 如果检测到新持仓,自动补设止盈止损(如果需要)
    • 如果其中一个持仓平仓(触发止盈或止损),立即平掉另一个持仓
  4. 循环阶段

    • 平仓后等待冷却时间
    • 重新开始开仓流程

⚠️ 注意事项

  1. 账号安全

    • 确保两个浏览器使用不同的账号(避免账号关联)
    • 不要在脚本运行时手动操作浏览器(可能导致脚本识别错误)
  2. 网络连接

    • 确保网络连接稳定
    • 如果网络中断,脚本可能会出错
  3. 浏览器状态

    • 使用远程调试端口方式时,不要关闭 MoreLogin 中的浏览器窗口
    • 确保浏览器页面已加载完成再运行脚本
  4. 交易风险

    • 本脚本仅用于自动化交易,不保证盈利
    • 请充分了解交易风险后再使用
    • 建议先在测试环境或小额资金下测试
  5. 配置检查

    • 运行前请仔细检查配置文件
    • 确保交易币种、数量、止盈止损设置正确
    • 确保 MoreLogin 配置正确

解决方案:

  1. 确保浏览器页面已完全加载
  2. 不要最小化浏览器窗口
  3. 检查交易页面 URL 是否正确

Q4: 两个浏览器没有同步下单

A: 检查 ORDER_INTERVAL 配置是否正确。脚本会在每个对齐周期(例如每10秒)同步下单。

Q5: 脚本无法平仓

A: 可能的原因:

  1. 页面元素发生变化
  2. 平仓按钮被遮挡
  3. 网络延迟

解决方案:

  1. 检查浏览器控制台是否有错误
  2. 手动检查页面是否可以正常平仓
  3. 如果问题持续,可能需要更新脚本以适配新的页面结构

Q6: 如何查看详细的运行日志?

A: 脚本会在控制台输出详细的运行日志,包括:

  • [浏览器1][浏览器2] 的操作日志
  • 开仓、平仓、设置止盈止损等操作的详细信息
  • 错误信息和警告

🔄 更新日志

v1.0

  • 初始版本
  • 支持双浏览器对冲交易
  • 支持三种 MoreLogin 连接方式
  • 自动开仓、平仓、设置止盈止损
  • 同步下单功能

📝 许可证

本项目仅供学习和研究使用。使用本脚本进行交易的风险由使用者自行承担。

🤝 贡献

如有问题或建议,欢迎提交 Issue 或 Pull Request。


免责声明: 本脚本仅用于自动化交易工具,不构成任何投资建议。使用本脚本进行交易存在风险,可能导致资金损失。请充分了解交易风险后再使用,并自行承担所有责任。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published