策略设计框架:信号生成、风险控制、资金管理、执行算法
做暗池交易这几年,我最大的体会是:策略不是写出来的,是搭出来的。就像盖房子,你得先有地基、框架、水电、装修。信号生成、风险控制、资金管理、执行算法,这四个模块缺一不可。
今天我就把这套框架掰开揉碎了讲给你听。嗯,都是实战中踩过坑换来的经验。
一、信号生成:你的策略凭什么赚钱?
信号生成是整个策略的大脑。说白了,就是回答一个问题:什么时候该买,什么时候该卖?
我个人习惯把信号分成三类:
- 价格信号:基于K线形态、均线、布林带等传统指标
- 链上信号:大额转账、合约交互、Gas异常波动
- 流动性信号:暗池深度变化、挂单撤单频率
我在项目中遇到过最典型的例子:一个朋友只靠链上大额转账信号做交易,前三个月收益不错。后来有人专门用拆分交易来迷惑他,亏得很惨。所以我现在做信号,至少叠加两个维度的数据。
核心原则:信号要快,但不能假。宁可错过,不要做错。
举个具体的例子。我在做暗池流动性挖掘时,常用这样一个信号组合:
# 伪代码示例:暗池信号生成逻辑
def generate_signal(pool_data, onchain_data):
# 1. 检测流动性突变
if pool_data['depth_change'] > 15%:
signal['liquidity'] = 'alert'
# 2. 检测大额转账
if onchain_data['tx_value'] > 100 ETH:
signal['whale'] = 'active'
# 3. 综合判断
if signal['liquidity'] == 'alert' and signal['whale'] == 'active':
return 'enter'
else:
return 'wait'
你想想看,如果只靠一个信号就进场,跟闭着眼睛扔飞镖有什么区别?
二、风险控制:活下来比什么都重要
做量化交易,我见过太多人死在风控上。不是策略不好,是没管住风险。
我曾经犯过一个低级错误:在Uniswap V3的某个池子里做流动性挖掘,没设单笔最大亏损限制。结果一次滑点异常,直接亏掉半个月的收益。从那以后,我的风控框架变成了这样:
| 风控维度 | 具体规则 | 我的经验值 |
|---|---|---|
| 单笔亏损 | 不超过总资金的2% | 1%更安全 |
| 日亏损 | 达到5%暂停交易 | 我设3%就停 |
| 最大回撤 | 超过15%清仓复盘 | 10%是警戒线 |
| 黑天鹅 | 合约漏洞、预言机攻击 | 手动熔断开关 |
警告:别以为暗池就安全。暗池只是隐藏了订单,不隐藏风险。合约漏洞、MEV攻击一样能让你血本无归。
我建议你做一个「风控清单」,每次交易前过一遍。就像飞行员起飞前的检查单,看着繁琐,关键时刻能救命。
三、资金管理:别把鸡蛋放一个篮子里
资金管理这块,其实很多人不重视。觉得信号准了就能赚钱,大错特错。
我个人习惯用「凯利公式」的简化版:
# 简化凯利公式
f = (p * b - q) / b
# 其中:
# p = 胜率
# b = 盈亏比
# q = 1 - p
# 举个例子
p = 0.6 # 60%胜率
b = 1.5 # 赚1.5倍,亏1倍
f = (0.6 * 1.5 - 0.4) / 1.5
f = 0.33 # 建议投入33%资金
但说实话,凯利公式算出来的比例往往偏激进。我实际使用时,会再砍一半。比如算出来33%,我只投15%。为什么?因为市场不是正态分布,黑天鹅比你想象的多。
小技巧:把资金分成5-10份,每份独立运作。这样即使一份爆仓,也不影响全局。我管这叫「分仓保命法」。
资金管理的另一个要点是:永远留有余地。我账户里至少保持20%的稳定币,用来应对极端行情或者补仓机会。
四、执行算法:想法再好,执行不好等于零
信号有了,风控有了,资金分好了。最后一步就是执行。这一步最容易被忽视,但恰恰是决定成败的关键。
暗池交易和普通交易所不一样。普通交易所你直接挂单就行,暗池要考虑:
- 时间选择:什么时候进场?流动性最好的时候?还是Gas最低的时候?
- 订单拆分:大单要不要拆成小单?拆多少份?
- 滑点控制:暗池的滑点怎么算?和公开池有什么区别?
我记得有一次做一笔50 ETH的交易,没拆分直接扔进去。结果暗池深度不够,成交价滑了0.8%,多花了将近0.4 ETH。从那以后,我写了一个简单的执行算法:
# 暗池执行算法示例
def execute_in_darkpool(order_size, pool_depth):
# 如果订单小于池子深度的5%,直接执行
if order_size < pool_depth * 0.05:
return 'direct_execute'
# 否则拆分成5份,每份间隔10秒
else:
split_count = 5
interval = 10 # 秒
return f'split_{split_count}_interval_{interval}'
你想想看,如果执行算法写得好,一年下来光滑点就能省下好几个点的收益。这就是细节的力量。
五、整体框架图
下面这张图是我自己画的策略框架。每次写新策略,我都会对着这张图检查一遍,看看哪个环节漏了。
这张图我用了很久。每次迭代策略,都会从信号生成开始,一路走到执行算法,然后通过反馈循环回到起点。说白了,这是一个永不停机的优化过程。
最后说一句:框架是死的,人是活的。别死磕某个模块,要动态调整。市场在变,你的策略也得跟着变。
好了,这一章的内容就到这里。记住这四个模块,你的策略就有了骨架。剩下的,就是往里面填肉了。