机器学习(聚类)分析行情阻力支撑位(基于Ptrade)

乐游胡子
乐游胡子 任何事情都需要倾入热情。

2 People liked this article · 3484 views

今天我用Ptrade写了2个行情分析的范例,使用了用机器学习工具 Sklearn 包的聚类分析功能。借助这个工具,我们可以迅速地对某标的的历史行情做出一个阻力支撑位识别。 这两个范例中,其中一个考虑了成交量的权重关系,另一个没有,后文我还对两种分析方法的分析结果进行了简单比对。 


一、简介Sklearn

Sklearn 全称 Scikit-learn。它涵盖了分类、回归、聚类、降维、模型选择、数据预处理六大模块,降低机器学习实践门槛,将复杂的数学计算集成为简单的函数,并提供了众多公开数据集和学习案例。

官方文档:https://scikit-learn.org


二、代码截图示意(节选)

这个范例 (考虑成交量) 全文只有63行,虽然短小,但是针对成交在具体价位的权重做了特别处理,也就是说对成交量较大的价格赋予了更高的权重,所以我认为分析结果似乎更贴近我预想的结果


三、输出的结果为2个电子表格文件

下面第一个截图的是分析结果,就是我们聚类分析5个簇的质心,这里我假设它就是阻力支撑点位,图二为我们分析的价格源数据。


四、对输出结果进行可视化分析


总结,我写了两套源代码, 并且横向比对了两种聚类分析方法的结果,我个人认为纯考虑价格,不考虑成交量的分析方法确实了一些价格走势的特征,加权考虑了成交量权重的方法可能更适合一点。两份源码我都放在了附件里,有兴趣拿去玩的朋友自取。


List of attachments

范例004聚类分析阻力及支撑 2份源码.zip

4KB

18.18

线上付款

Published on 2024-03-22 12:54

Disclaimers:

This document is written by 乐游胡子 Original published on 百果量化交流平台 ,The copyright belongs to the author。

Log in,More exciting content waiting for you to find,Contribute wonderful answers,Participate in comment interaction

go Sign in! No accountgoregister

乐游胡子
2024-03-24 16:35
@linyun 随机森林应该也是可以的,你可以试试。我这里选用聚类的基本想法是:分析哪些一段时间内哪些价格聚集度比较高,相当于是分析价格在哪个区域的聚集度。这个我觉得跟聚类的概念比较契合,特别是加权考虑了成交量之后,成交量在价格走势上的影响被展开了,比较充分地考虑了价格在某些位置聚集的程度。等于说我写这个的目标其实是用一个通用算法替代人眼凭经验判断哪里是价格聚集区,避免人经验和主观上的偏差。如果你做了随机森林的算法, 我们可以对结果进行横向比较,进一步研究讨论。 关于范例中用的数据集,我用的是2024.3.1之前的500条(前复权)日线收盘价格+成交量数据。在PT内可以直接用一个“data = get_history(500, \1d\, [\close\, \volume\], \510500.SS\, fq=\pre\, include=False)”获取到。
linyun
2024-03-23 14:28
对于模型的选择,个人认为在此业务场景下,是否随机森林更适合一点,通过成交量和价格两个特征量进行聚类的无监督学习,难免会因异常数据(其他未知变量的干扰)导致聚类结果的偏差,而且无监督的聚类本身就会导致聚类结果的不确定性。如果通过历史结果数据使用大规模的决策树算法(即随机森林)可以有效的根据特征向量的值域完成分类,得出特征向量与预测结果的直接关联性。 作者是否可以将训练数据作为附件贴出来,想尝试一下。并建议作者给出训练模型更多维的评价指标,比如混淆矩阵,F1度量等
乐游胡子
2024-03-22 14:38
搞这个机器学习聚类分析重要阻力和支撑位,主要是后期可以作为入场策略的辅助,可以作为一种有价值的参考,比如每天盘前做一次分析,用来指导一段时间内的操作。

Included in the column