2. 主体建模基础:定义交易市场中的智能体(Agent)
好,咱们进入第二章。上一章我们聊了复杂适应系统的整体框架,你可能觉得有点抽象。这一章我们来点实在的——智能体(Agent)。说白了,就是交易市场里的“人”。
我个人习惯把智能体想象成一个有脑子、有情绪、有策略的交易员。它不只是个代码模块,它得能看盘、能决策、能执行、还能学习。嗯,这里要注意,我们说的智能体,不是那种全知全能的上帝视角,而是局部信息、有限理性的参与者。
2.1 什么是交易智能体?
先给个定义:智能体是能够感知环境、自主决策并执行动作的实体。
在交易场景里,环境就是市场数据(价格、成交量、订单簿)。智能体看到这些数据,做出买卖决策,然后下单。就这么简单?不,复杂的地方在于——每个智能体的决策逻辑都不一样。
我在项目中遇到过最典型的例子:两个智能体,一个只看均线,一个看成交量异动。同样的行情,一个在涨,一个在跌。你想想看,市场就是这么被不同认知的人推着走的。
- 感知(Perception):从市场获取信息
- 决策(Decision):根据策略生成动作
- 执行(Action):提交订单到市场
2.2 智能体的内部结构
一个完整的交易智能体,我建议至少包含以下四个模块。这是我在做量化回测框架时总结出来的,少一个都不行。
| 模块 | 功能 | 举例 |
|---|---|---|
| 状态感知器 | 处理市场数据,提取特征 | 计算MACD、RSI、布林带 |
| 策略引擎 | 根据状态生成交易信号 | 突破买入、止损卖出 |
| 风险管理器 | 控制仓位、止损止盈 | 单笔亏损不超过2% |
| 学习模块 | 根据历史结果调整参数 | 强化学习、遗传算法 |
你可能会问:为什么需要学习模块?因为市场在变。我曾经写过一个策略,回测时年化50%,实盘跑了三个月就失效了。为什么?因为市场结构变了,智能体必须学会适应。
2.3 智能体的行为模式
交易智能体的行为,可以归纳为几种典型模式。我把它画成了一张图,方便你理解。
这四种模式,基本覆盖了市场上90%的交易行为。但要注意,一个智能体可以同时拥有多种模式。比如,我见过一个高频做市商,平时赚价差,遇到大行情立刻切换成趋势跟踪。这种模式切换能力,才是智能体的精髓。
2.4 智能体的交互与涌现
单个智能体没什么好玩的。真正有意思的是多个智能体之间的交互。你想想看,当1000个趋势跟踪者同时买入,会发生什么?价格被推高,然后均值回归者开始做空,接着套利者进场平衡价差……
这就是涌现(Emergence)。市场本身没有意识,但智能体之间的互动,产生了趋势、泡沫、崩盘这些宏观现象。
2.5 代码实现:一个简单的交易智能体
光说不练假把式。咱们直接上代码。这是一个最简版的交易智能体,用Python实现。
class TradingAgent:
def __init__(self, name, cash=100000):
self.name = name
self.cash = cash
self.position = 0
self.trade_history = []
def perceive(self, market_data):
"""感知市场:获取当前价格和均线"""
self.price = market_data['price']
self.ma5 = market_data['ma5']
self.ma20 = market_data['ma20']
def decide(self):
"""决策:简单的均线交叉策略"""
if self.ma5 > self.ma20 and self.cash > self.price:
return 'buy'
elif self.ma5 < self.ma20 and self.position > 0:
return 'sell'
else:
return 'hold'
def execute(self, action):
"""执行交易"""
if action == 'buy':
shares = int(self.cash / self.price)
self.position += shares
self.cash -= shares * self.price
self.trade_history.append(('buy', self.price, shares))
elif action == 'sell':
self.cash += self.position * self.price
self.trade_history.append(('sell', self.price, self.position))
self.position = 0
def learn(self, performance):
"""学习:根据表现调整参数(简化版)"""
# 这里可以加入强化学习逻辑
pass
这段代码虽然简单,但包含了智能体的所有核心要素。你可以在learn()方法里加入遗传算法或Q-learning,让它自己进化。
2.6 智能体的分类
根据我的经验,交易智能体可以从两个维度分类:
- 按理性程度:
- 完全理性:知道所有信息,能计算最优解(现实中不存在)
- 有限理性:只知道局部信息,用启发式决策(这才是真实市场)
- 零理性:随机交易,或者完全跟随(比如散户追涨)
- 按学习能力:
- 静态智能体:策略固定,不学习
- 自适应智能体:根据市场变化调整参数
- 进化智能体:通过遗传算法或强化学习进化策略
我个人建议,刚开始做仿真时,先用有限理性 + 自适应的组合。既不会太复杂,又能看到涌现现象。
2.7 小结
这一章我们聊了智能体的定义、结构、行为模式,还手写了一个简单的交易智能体。核心就一句话:智能体是市场的微观基础,市场的宏观现象源于智能体的交互。
下一章我们会把这些智能体放到一起,看看它们如何形成市场。但在此之前,我建议你动手改改上面的代码,加一个止损逻辑,或者试试不同的策略。只有亲手写过,才能真正理解。
- 智能体 = 感知 + 决策 + 执行 + 学习
- 四种典型行为模式:趋势跟踪、均值回归、套利、做市
- 多样性是市场稳定的关键
- 避免过拟合,引入随机性