Skip to content

8280998/hyperliquidbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 

Repository files navigation

hyperliquid多策略自动调仓机器人

根据 https://nof1.ai/ 的启发, 编写一个由代码判断多策略(当前启用4种)自主调仓交易模型,代码已开源,在进行交易前请先使用测试网进行交易测试。

实盘观察地址:https://hyperbot.network/trader/0x8aDaCE41Ec579423F149d7402f282301fCFaFF36

运行了2个月,成绩很失败。从2026年1月1日号更新了策略,地址不变。 重新编写了整个交易流程和策略,截止2026年2月4号止,目前演示地址已涨到约1300。从跌倒最少时只有450左右,到现在回本并赚取30%左右。感觉已经成熟,但还需继续测试。

免责声明:本程序为明文代码,由AI编写。请先进行代码安全检查。因执行本程序造成的任何损失,均与本程序无关,否则请不要运行。

程序使用策略的数据为币安历史数据,数据源为api.binance.com。如果无法访问到binance.com,请不要运行程序。

环境配置

1.安装官方SDk pip install git+https://github.com/hyperliquid-dex/hyperliquid-python-sdk.git

2.其他模块,如果运行后提示缺少某个模块,比如pandas,运行如下

pip install pandas

策略性质

交易策略暂定四个:均线,RSI,MACD,布林带(从币安获取100个数据点,但当前代码中使用最多为35个数据点)。不同的K线周期对策略的信号影响很大,建议谨慎设置。

✅ 均线策略:基于移动平均线的趋势跟踪。短期均线上穿/下穿长期均线产生信号,买入:短均线 > 长均线 且 价格 > 短均线 |卖出:短均线 < 长均线 且 价格 < 短均线。

基于1天和1小时双时间框架,四个技术指标的建议参数设置如下:

1小时框架:短期:20周期(20小时) 长期:50周期(50小时)

1天框架: 短期:10周期(10天) 长期:30周期(30天)

当前代码中的均线周期短期为10个数据点,均线周期长期为20个数据点。可自定义修改,代码如下:

ma_short = np.mean(prices[-10:])
ma_long = np.mean(prices[-20:])

✅ RSI策略:相对强弱指标,识别超买超卖。超买区域:RSI > 70,考虑卖出 |超卖区域:RSI < 30,考虑买入|中性区域:RSI 45-55,持有。

基于1天和1小时双时间框架,四个技术指标的建议参数设置均使用14个周期数据点。

当前代码中的RSI计算周期为14个数据点,但至少需要15个数据点才能计算生成14个周期数据点,可自定义修改,代码如下:

def calculate_rsi(self, prices, period=14):

✅ MACD策略:移动平均收敛散度,趋势动量。MACD线与信号线的交叉,金叉:MACD > 信号线,买入信号 |死叉:MACD < 信号线,卖出信号。

基于1天和1小时双时间框架,四个技术指标的建议参数设置如下:

1小时框架:快线:12 慢线:26 信号线:9

1天框架:快线:8 慢线:21 信号线:5

当前代码中的快线EMA为12个数据点,慢线MEA为26个数据点,信号线为为9个数据点。至少使用35个数据点。可自定义修改,代码如下:

def calculate_macd(self, prices, fast=12, slow=26, signal=9)

✅ 布林策略:布林带,波动率策略。价格在布林带中的位置,上轨突破:价格 > 上轨,卖出信号 |下轨突破:价格 < 下轨,买入信号 |中轨附近:价格接近中轨,持有。

基于1天和1小时双时间框架,四个技术指标的建议参数设置如下:

1小时框架: 周期:20 标准差:2

1天框架: 周期:20 标准差:2.5

当前代码中的使用周期为20个数据点,标准差2倍,至少需要20个数据点。可自定义修改,代码如下:

def calculate_bollinger_bands_enhanced(self, prices, period=20, std_dev=2):

1 模型算法:

模型算法有三种,权重模式,严格模式,多数模式。运行时只能使用一个模式

1.1 权重模式交易决策公式

权重预设详解: QQ_1761397382486

1.1.1 第一步:收集策略信号,假设有4个策略,每个策略发出信号:

🟢 买入 = +1分

🟡 持有 = 0分

🔴 卖出 = -1分

1.1.2. 第二步:乘以权重

总买入分 = (策略1信号 × 权重1) + (策略2信号 × 权重2) + ...

总卖出分 = (策略1信号 × 权重1) + (策略2信号 × 权重2) + ...

1.1.3. 第三步:计算信号强度

买入强度 = 总买入分 ÷ 总权重

卖出强度 = 总卖出分 ÷ 总权重

1.1.4. 第四步:阈值判断

如果 买入强度 > 阈值 → 执行买入

如果 卖出强度 > 阈值 → 执行卖出

否则 → 持有

1.1.5. 实际计算示例

权重配置:MA(1.0), RSI(1.8), MACD(1.5), 布林(0.5)

信号情况:

MA: 🟢买入 → +1 × 1.0 = +1.0

RSI: 🟢买入 → +1 × 1.8 = +1.8

MACD: 🟡持有 → 0 × 1.5 = 0

布林: 🔴卖出 → -1 × 0.5 = -0.5

计算:

总权重 = 1.0 + 1.8 + 1.5 + 0.5 = 4.8

买入强度 = (1.0 + 1.8) ÷ 4.8 = 2.8 ÷ 4.8 ≈ 0.58

卖出强度 = (0.5) ÷ 4.8 ≈ 0.10

1.1.6 决策。当阈值0.6时,执行逻辑判断如下:

买入强度 0.58 < 0.60 → ❌不买入

卖出强度 0.10 < 0.60 → ❌不卖出

结果:🟡持有,不执行任何交易操作

1.2 严格模式 不受阈值限制

严格模式是针对当前启用策略的选择进行执行交易。

启用4个策略,运行时4个策略同时发出做多或做空,才会执行交易。低于4个相同方向则不操作。是一个非常保守的模式。尚未测试正确性,因为很难触发这个条件。

启用3个策略,需要3个策略都发出相同信号才执行交易逻辑。低于3个相同方向不操作。

1.3 多数模式 不受阈值限制

多数模式是超过半数策略的信号才会触发交易逻辑。

启用4个策略,如果有3个策略是做多信号,1个策略是做空信号,则执行买入逻辑。

如果2个策略发出做多信号,2个策略发出做空信号。则不会有任何操作,没有达到交易逻辑。

2 信号阈值与交易频率的关系 阈值仅作用于权重模式

2025-11-18 增加一个副信号功能。主要功能为双保险,如果启用后,必须主信号和副信号都发出相同策略发进行交易。避免单个K线产生的信号的过于灵敏或滞后。(尚未更新到github代码中)

阈值越低 → 越容易交易。信号强度要求更低,更频繁的交易触发更高的交易活跃度。但也可能增加错误信号的风险。

阈值越高 → 越难交易。信号强度要求更高,更严格的交易条件,减少交易频率。提高信号质量,但可能错过机会。

具体示例:

阈值 0.4(宽松):单个高权重策略就可能触发交易,2个中等权重策略就能达到阈值,交易频率:⚡⚡⚡⚡(高)

阈值 0.6(适中):需要多个策略一致支持,交易质量相对较高,交易频率:⚡⚡⚡(中)

阈值 0.8(严格):需要几乎所有策略强烈一致,极少触发交易,但信号质量很高,交易频率:⚡(低)

极限情况:阈值不能低于0.33,否则会发出严重失真策略信号,导致交易方向错误。

建议设置:

激进型:0.5-0.6

平衡型:0.6-0.7

保守型:0.7-0.8

3 止盈阈值 在现有信号强度基础上增加止盈判断条件(目前只是理想状态,在测试网中运行尚未触发到这个条件)

0.0-0.49 : 不交易(在信号阈值0.5默认情况下视为无效信号)

0.5-0.6 : 正常交易,正常止盈 |当前盈亏: +18%✅ (达到止盈条件)|信号强度: 0.58|决策: 执行止盈 ✅

0.61+ : 强信号,跳过止盈让利润加速增长 |当前盈亏: +19% ✅ (已超过18%止盈线)|信号强度: 0.72|决策: 跳过止盈,继续持仓赚取更大利润|理由: 趋势强劲,可能还有更大上涨空间

止盈阈值策略的优势:

避免过早止盈:强趋势中不因固定止盈比例而错过更大行情

动态风险控制:根据市场动能智能调整止盈时机

趋势跟踪友好:符合"让利润加速奔跑,截断亏损"的交易理念

量化决策:避免情绪化止盈,完全基于信号强度决策。人性的情绪化操作很可怕,远远不如代码按条件执行

在信号阈值0.5的决策条件下,设置止盈阈值数值如下产生的效果: QQ_1761529852451

4 历史价格数据(发出策略信号的关键)

策略生成信号的历史数据已修改为币安api接口

策略信号计算(均线、RSI、MACD、布林带)基于最新的100个历史数据点,相当于最近3个月(每日间隔)。

保守使用60个数据点。低于60个数据点不会执行交易模块。以防守下载失败或少量数据时产生失真信号导致交易方向错误。

配置的时效性

以每次循环时重新读取为主,可以在运行过程灵活修改参数而不需要重启程序,每次循环时间为60秒

配置类型 读取参数

止盈信号阈值 每次循环时

策略权重 程序开始/重载时

交易列表 每次循环时

风险参数 每次循环时

5 初版运行状态

QQ_1761294877955 5.1 修复代码,已严格控制保证金在风险范围内开仓

6 更新日志

2025-10-25 添加了空翻多,多翻空的自动判断执行逻辑,空翻多的信号策略已触发并正确执行。

下午17:33 触发空翻多的逻辑并根据策略信号正确执行了交易。平掉空头并执行买入策略后,下一轮检测还没达到风险控制的20%,触发加仓的策略的。

2025-10-26 1.解决hyperliquid在精度问题下单失败的问题,精度问题包括币种下单数量,下单价格的精度问题

2025-10-26 2.加仓逻辑处理:当某个币种使用保证金低于总保证金的20%,同时又发出强烈的交易信号,自动执行加仓策略,同时控制总风险还在20%范围内。即使返回交易失败信息也需要检查持仓是否增加

2025-10-27 增加一个止盈阈值控制。在现有信号强度基础上增加止盈判断条件。

实盘测试 2025-10-30启动 日志和思考

实盘观察地址:https://hyperbot.network/trader/0x8aDaCE41Ec579423F149d7402f282301fCFaFF36

实盘使用保守的平衡稳定策略,权重值设置为:1.5,1.2,1.0,0.8。交易币种为BTC,ETH,BNB,SOL,DOGE,XPR。策略发出的信号阈值为0.55。止盈信号阈值为0.65. 第一单开的做空BNB,做空信号强度0.56,做空价格1093,后续发现一个仓位计算的错误,导致bnb做空2次。。。修复

2025-11-03 第二单在晚上21:59发出ETH做空信息,信号强度0.56,做空价格3718.1 修改止盈比例为10%,止损6%。按杠杆10X计算,等于是开仓保证金盈利100%,亏损60%

2025-11-04 昨晚23:30 止盈平仓策略正常触发。

但同时发现一个止盈的策略设置需要认真考虑,如果止盈信号阈值设置高于策略信号阈值,但策略信号阈值还是发出强信号。则触发止盈自动平仓,然后又重新开仓。BNB就是空单止盈后又重开空仓这样会导致手续费的重复和价格上的损失。考虑把止盈阈值设置为策略信号阈值一样。这样既然触发止盈,但信号依然强劲的情况不会自动止盈,而是继续持仓待涨。直接信号低于止盈阈值才平仓。

2025-11-04 昨晚设置了最大币种为3,代码中执行中选择了做空SOL

发现一个计算逻辑的问题,如果持仓币种过多,在正向收益时单币风控会持续掉到20%以下,然后代码会执行加仓逻辑。但稍有反向行情,就会超出单币20%的风控。因为只做了止盈止损的比例执行,没做超出风控的后的执行逻辑,在2个币种是相对安全的。即使在不断滚仓后出现反向行情,也能在止损比例时执行(未验证)。但过多持仓币种,会回撤很大(未验证)。所以5号早上手动平仓了后面的SOL,保持最大持仓币种为2个。

2025-11-04 从10月30号实盘测试到现在5天时间,正向收益目前还不错,代码正确判断了行情的趋势。截止早上9点实盘已有翻倍收益

2025-11-05 受一个QQ朋友启发,增加一个减仓逻辑。按单仓保证金40%为限制,因币价波动超出这个比例则进行减仓。

2025-11-07 根据日线的策略来生成信号相对会滞后,添加1h,4h,6h,12h及之前的1d选择供策略生成更灵敏的信号

2025-11-08 使用4小时线的策略生成信号,代码容易产生更多的交易,一觉醒来都开始亏损了。还是使用回日线比较稳妥。

2025-11-09 开放源代码

2025-11-10 周期数据添加5m和30m,删除4h技术线

2025-11-16 测试了几个策略,于11月14号改回使用1天K线,权重使用趋势跟踪型,信号阈值为0.55.到16号截止基本回归到正常波动。使用分钟K线和小时K线时发出的策略信号更容易变动,导致交易方向频繁变化。

2025-11-18 发现一个严重问题,如果获取币安api数据出错,但达到止盈止损条件会导致代码这个逻辑。

2025-11-18 增加一个副信号功能。主要功能为双保险,如果启用后,必须主信号和副信号都发出相同策略发进行交易。避免单个K线产生的信号的过于灵敏或滞后。(尚未更新到github代码中),当前实盘已启用副信号功能(主信号1d+副信号30m,趋势跟踪型)。

2026-02-05 2026年初到现在,全部重新编写,但保留技术指标为策略生成信号。目前已平稳运行且盈利状态不错。从1000测试起步跌到最低450,到目前回升到1400左右。并且周胜率保持在80%以上。

QQ_1770269284010

About

https://nof1.ai/ 启发编写的策略信号自动交易模型

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages