越来越多的需求
目录
commit事件 #
- 修改了信号提醒内容,添加了字段:信号最近出现次数:
# 找到最后一次"S"出现的位置
last_s_index = len(singles) - 1 - singles[::-1].tolist().index("S")
# 计算最后一次"S"出现后,"B"出现的次数
b_count_after_last_s = singles[last_s_index:].tolist().count("B")
效果如下:
20231220
代码 | 买/卖 | 前日收盘价 | 出现次数 |
---|---|---|---|
000596 |
B | 224.13 | 3 |
603688 |
B | 72.90 | 5 |
-
修改了股票池的更新周期,由两月一次,改为两周一次。
由于加快了股票池的更新周期,因此有些股票会在交易周期内被筛选进来,所以要提示股票出现的次数。如果某支股票在刚出现时,它的次数大于2,那么需要人为判断一下当前的价格是否合适买入。
-
修改
backtest
跑批规则,改为全量跑批。之前在
SQL
中判断是否更新,现在改为在python
判断,更加灵活。
backtest #
今天的市场依然下行,估计明天还要买入一些股票。下午的时候突然好奇23年的市场会是什么样子,所以新开了个账户,回测了一下23年的市场,结果如下:

收益率比较可观,但问题是回测期间股票池没有变过,与实际情况有些出入。
只看账单的收益率并不能说明太多问题,还有很多指标需要计算:
- 最大回撤
Max. Drawdown
; - 夏普比率
Sharpe Ratio
; - 年化收益率
Return (Ann.)
; - 胜率
Win Rate
; - 盈亏比
Profit Factor
等。
跑账单的时间有点长,因为每次账单要从第一个信号开始计算,需要优化。
股市操作 #
依然买入了000596
和603688
。
开发计划 #
- 计算股票池的时候,添加一个参数:
record_date
,其用来截取历史数据; - 按照新的股票池重新
backtest
; - 计算账单的其他指标;
- 优化账单计算速度,计算
bill
的时候跑增量,而非全量;