策略设计框架:信号生成、风险控制、资金管理、执行算法

做暗池交易这几年,我最大的体会是:策略不是写出来的,是搭出来的。就像盖房子,你得先有地基、框架、水电、装修。信号生成、风险控制、资金管理、执行算法,这四个模块缺一不可。

今天我就把这套框架掰开揉碎了讲给你听。嗯,都是实战中踩过坑换来的经验。

一、信号生成:你的策略凭什么赚钱?

信号生成是整个策略的大脑。说白了,就是回答一个问题:什么时候该买,什么时候该卖?

我个人习惯把信号分成三类:

  • 价格信号:基于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}'

你想想看,如果执行算法写得好,一年下来光滑点就能省下好几个点的收益。这就是细节的力量。

五、整体框架图

下面这张图是我自己画的策略框架。每次写新策略,我都会对着这张图检查一遍,看看哪个环节漏了。

暗池交易策略设计框架 信号生成 价格信号 链上信号 流动性信号 风险控制 单笔亏损限制 日亏损暂停 黑天鹅熔断 资金管理 凯利公式 分仓策略 稳定币储备 执行算法 时间选择 订单拆分 滑点控制 反馈与优化 回测 → 实盘 → 数据收集 → 参数调优 每两周复盘一次,调整信号权重和风控参数 虚线表示反馈循环:实盘数据反哺信号生成和参数优化

这张图我用了很久。每次迭代策略,都会从信号生成开始,一路走到执行算法,然后通过反馈循环回到起点。说白了,这是一个永不停机的优化过程。

最后说一句:框架是死的,人是活的。别死磕某个模块,要动态调整。市场在变,你的策略也得跟着变。

好了,这一章的内容就到这里。记住这四个模块,你的策略就有了骨架。剩下的,就是往里面填肉了。

专注资料整理