分页: 1 / 1

记录运用AI研究孕线形态的交易模型

发表于 : 2026年 1月 26日 22:42
dapanji
步骤:
数据准备:获取A股从2010年至今的日线数据(至少需要开盘价、最高价、最低价、收盘价)。
形态识别:识别孕线形态(这里我们采用经典的孕线形态,即前一天是大阴线或大阳线,当天实体完全被前一天包裹,且当天最高价低于前一天最高价,最低价高于前一天最低价)。
回测逻辑:在孕线出现的第二天开盘买入,第三天收盘卖出(即持有两天)。
仓位管理:我们设定一个固定的仓位,比如每次买入固定金额(例如每只股票买入1万元),或者固定股数(例如1000股)。这里我们假设每次买入固定金额,但注意A股是100股一手,所以需要调整。
成本考虑:包括佣金(假设为0.03%)、印花税(卖出时0.1%)和滑点(假设买入卖出各0.1%?)。
回测周期:2010年至2021年作为样本内,2022年之后作为样本外。
回测结果:计算收益率、胜率、最大回撤等指标。
由于时间有限,我们可能不会做复杂的统计检验,但会给出基本的回测结果。

(注:这是观察一个公众号之后的想法,能否盈利未知,之前做过简单研究,有一定可行性)

Re: 记录运用AI研究孕线形态的交易模型

发表于 : 2026年 1月 26日 22:45
dapanji
具体步骤:

第一步:数据准备
假设我们已经有了一个结构体数组stockData,每个结构体包含以下字段:
code: 股票代码
date: 日期(格式为数字,如20130104)
open: 开盘价
high: 最高价
low: 最低价
close: 收盘价
volume: 成交量

第二步:识别孕线形态
孕线形态:
第一天:大阴线或大阳线(我们定义涨跌幅超过2%?或者实体长度超过前一天的2%?这里我们简单定义:第一天的实体长度(绝对值)大于前一天实体长度的2倍?但第一天是相对于前一天,所以我们先定义第一天的涨跌幅(收盘相对于开盘)的绝对值大于2%,并且第一天的实体完全包裹第二天的实体。
更准确的定义:
第一天:实体长度 = abs(close1 - open1)
第二天:实体长度 = abs(close2 - open2)
要求:第二天的高点低于第一天的高点,第二天的低点高于第一天的低点,并且第二天的实体完全在第一天的实体内(即第二天的开盘和收盘都在第一天的开盘和收盘之间)。
但是注意,我们回测的买入点是孕线出现的第二天开盘买入,第三天收盘卖出。所以我们需要识别出孕线形态,然后在孕线出现的第二天开盘买入。

第三步:回测
我们假设初始资金为100万,每次买入固定金额(比如1万元),那么我们可以同时买入多只股票(最多100只,但实际可能不到100只,因为资金有限)。
但是注意,如果同一天出现多个信号,我们需要按照资金分配。这里我们简单处理:如果同一天有多个信号,我们按照信号顺序买入,直到资金用完。但这样可能会导致后面的信号无法买入,所以我们假设资金充足,每次买入固定金额,不考虑资金限制,但记录每次交易的成本和收益。
由于时间有限,我们采用以下策略:
遍历每一天,找出孕线形态。
在孕线形态的第二天开盘买入,第三天收盘卖出。
计算每次交易的收益率(考虑成本)。

第四步:成本考虑
买入成本:佣金0.03%,滑点0.1%(即买入价提高0.1%)
卖出成本:佣金0.03%,印花税0.1%,滑点0.1%(即卖出价降低0.1%)
实际买入金额 = 计划买入金额 * (1 + 0.0003 + 0.001) 但是注意,我们买入股票的数量必须是100的整数倍,所以我们需要根据调整后的价格计算能够买入的股数(然后取整百),然后再计算实际花费。
我们假设每次计划买入1万元(即10000元),那么:
买入股数 = floor(10000 / (开盘价 * (1+0.0013)) / 100) * 100; 其中0.0013是买入佣金和滑点
实际买入成本 = 买入股数 * 开盘价 * (1+0.0013)
卖出时,卖出金额 = 卖出股数 * 收盘价 * (1 - 0.0013 - 0.001) 其中0.0013是卖出佣金和滑点,0.001是印花税
然后计算这次交易的收益率 = (卖出金额 - 实际买入成本) / 实际买入成本

第五步:回测结果
我们将记录每次交易的收益率,然后计算总收益率、年化收益率、胜率、最大回撤等。
由于时间有限,我们可能只计算总收益率和胜率,以及绘制资金曲线。

代码结构:
加载数据(假设已经有一个矩阵或结构体数组)
识别孕线形态,记录信号(信号出现的日期和股票代码)
按照时间顺序处理信号,进行回测
输出结果