前言
关于 LightGBM 是什么本文不做介绍,具体的原理其实我也没有仔细了解过,有想深入了解的朋友可以直接访问 LightGBM 官网了解,官网地址: lightgbm.readthedocs.io/en/stable/.
本文主要是讲解如何利用 LightGBM 中的分类算法对目标的股票进行分类,重点的工作内容如下:
- 如何获取股票数据,包括天级别、分钟级别历史行情数据,这个主要通过 baostock 这个网站获取。
- 如何设计股票分类,纯粹的判断涨跌在股票买卖实践过程中没有任何意义,必须要要有具体的止盈止损点。
- 如何判断预测结果好坏,由于股票的规律性不是很强,分类算法分类的效果并不会太好,一般认为准确率在 0.5 以上即可
正文
核心思路
-
确定盈利公式: 止盈率 x 止盈点 + 止损率 x 止损点 + 到期未止盈止损总点数, 举个例子:
假设持股周期是 5 天,一共买了 10 只股票,每只股票买入金额一致,止盈点位是 8 个点,止损是 3 个点,现在到期后一共有 3 只股票止盈,5 只止损,还有 2 只一个是 -2 个点 一个是 3 个点.
利润: 3x8 + 5x-3 + -2 + 3 = 24 - 15 + 1 = 10 个点,这个结果是按照单只股票的买入金额得出的点数,因为一共买入了 10 只股票,按照全部的持仓来算只有 1 个点的盈利, 5 天时间 1% 的收益其实已经很好了
-
基于止盈和止损点确定股票的分类,一共有三类,其中只有两类参与训练
- Y=1:在指定周期内最高价高于止盈价且在此之前未出现最低价低于止损价,这种属于被止盈
- Y=0:在制定周期内最低价低于止损价且在此之前未出现最高价高于止盈价,这种属于被止损
- Y=-:在制定周期内最高价未高于止盈价,最低价未低于止损价, 这种属于到期收盘卖的票
- 如何判断模型好坏? 预测结果是一个 (0,1) 之间的分数,理论上分数越高表示 Y=1 (止盈)概率越高,分数越低表示Y=0 (止损)的概率越高,我们买股票肯定是需要去购买止盈概率高的
- 需要总体上分数越高止盈要越高,这个需要基数相对较大,比如某个高分只出现了一次,然后止损了,这种就不能作为比较判断的依据
- 某个分数段上的股票出现的次数需要足够的多,一年下来可能止盈率很高,但是一年没有几只可以买,这种其实就不符合我们收益最大化的要求
开干
未完待续
PS: 目前已经在实际测盘中,有想详细了解的朋友可以直接评论区留言