首页 > 都市小说 > AI时代:码农的涅盘重生 > 第68章 第一个策略

第68章 第一个策略(1/2)

目录

书房的空调嗡嗡作响,努力对抗着鹏城3月的闷热。

林晨盯着屏幕上密密麻麻的代码,眼神专注。过去一周,他像蚂蚁搬家一样,从thare和akshare上抓取了沪深300成分股过去五年的日线数据——开盘价、收盘价、最高价、最低价、成交量。然后用pandas清洗、处理,计算出一系列技术指标:移动平均线(MA)、相对强弱指数(RSI)、布林带(BollgerBands)、MACD……这些指标被拼接成一个个“特征向量”,按时间顺序排列,形成了他模型的“饲料”。

数据准备好了。接下来,是给这些数据找一个能消化它们、并预测未来的“大脑”。

他选择了LSTM(长短期记忆网络)。这是一种特殊的循环神经网络(RNN),擅长处理像股价序列这样具有时间依赖性的数据。普通的RNN在传递长期信息时容易“遗忘”,而LSTM通过精巧的“门”结构(输入门、遗忘门、输出门)控制信息流,能更好地记住序列中的长期模式。这听起来很像是为捕捉股市那些若隐若现的“趋势”和“周期”量身定做的。

“理论上是这样”,林晨揉了揉发酸的眼睛,自言自语。实践是另一回事。

他打开PyTorch,开始搭建模型结构。输入层对应特征维度,接着是两层LSTM层,用于捕捉不同时间尺度的依赖关系,然后是Dropout层——随机“丢弃”一部分神经元连接,防止过拟合的常用手段,最后是全连接层输出预测值:下一个交易日的收盘价。

定义损失函数(MeanSquaredError,均方误差),选择优化器(Ada),设置学习率、训练轮数(epoch)……

敲下最后一行代码,林晨深吸一口气,点击运行。

风扇的转速明显加快,笔记本电脑的散热口发出轻微的嘶鸣。屏幕上,代表损失值的曲线开始跳动,随着迭代轮数的增加,那条曲线缓缓向下探去。训练集上的损失在下降,这意味着模型正在从历史数据中学习规律。

同时,他也预留了一部分从未见过的数据作为验证集,用来监控模型在“新数据”上的表现,防止它只死记硬背训练数据。

训练持续了将近四十分钟。当进度条走到终点,林晨立刻启动了回测程序。

回测,就是用训练好的模型,在另一段历史数据(测试集)上模拟交易,检验策略盈利能力。他设定了简单的规则:如果模型预测明日收盘价高于今日收盘价一定阈值(比如0.5%),则模拟买入;如果预测低于今日收盘价一定阈值,则模拟卖出;否则持有。

程序开始运行,一行行日志快速滚动。林晨的心跳也跟着加快。他仿佛能听到虚拟资金在K线图上流动的声音。

终于,回测报告生成了。

他的目光第一时间锁定在几个关键数字上:

测试集累计收益率:18.7%

年化收益率:约32.5%

夏普比率:1.2

最大回撤:-8.3%

林晨的呼吸停滞了一瞬,随即,一股强烈的热流从胸腔直冲头顶。十八个点!超过三十的年化!夏普比率大于1意味着风险调整后的收益还算不错,最大回撤控制得也尚可。

本章未完,点击下一页继续阅读。

目录
返回顶部