python数据分析-价托模型下
君子以遏扬善,顺天休命。
前言
前文讲述了价托选股的模型理论部分,在这篇内容中我们会根据理论进行实际建模,来选择股票,根据模型的结果,找到对应的股票信息进行验证模型的准确性。本文有两个方面的内容,一是图形化展示均线信息,二是建立模型选择价托股票。
均线展示
均线图的展示就是使用简单移动平均计算的结果,计算的结果如下图所示:
均线图形的展示采用 matplotlib.pyplot.plot
方法进行绘图,在图形展示中需要设置以下参数:
import matplotlib.pyplot as plt
import matplotlib as mpl
# 设置字体,避免中文乱码的情况出现
mpl.rcParams['font.sans-serif'] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False
# 设置图片的宽度和高度,单位是inches
plt.rcParams['figure.figsize'] = (20.0, 8.0)
绘制均线图形的核心代码如下图所示:
# plot 展示图形,展示收盘价和5、10、20日均线
plt.plot(date_list, cl_list, label="close")
plt.plot(date_list, m5_list, label="m5")
plt.plot(date_list, ma10_list, label="m10")
plt.plot(date_list, ma20_list, label="m20")
# 设置图片名称和横坐标和纵坐标的名称
plt.title('均线图', fontsize=20)
plt.xlabel("时间", fontsize=20)
plt.ylabel("价格", fontsize=20)
# 每隔30个单位展示一个坐标,因为日期单位比较占地方,所以jian
x_major_locator = MultipleLocator(30)
ax = plt.gca()
# ax为两条坐标轴的实例
ax.xaxis.set_major_locator(x_major_locator)
# 设置 x坐标轴的斜率 和 字体大小
plt.xticks(rotation=-15, fontsize=15)
plt.yticks(fontsize=15)
# 添加网格,可有可无,只是让图像好看点
plt.grid()
# 展示图例,也就是 plot 中的 label 图标展示
plt.legend()
# 记得加这一句,不然不会显示图像
plt.show()
# 指定分辨率保存
# plt.savefig('plot123_2.png', dpi=300)
绘图展示结果如下图所示:
模型搭建
模型的计算的步骤如下:
- 1 循环遍历数据,这里将日期、日线数据使用 zip 压缩,这个可以将多个
list
或者dict
同时进行遍历,并且要保证每个节点数据不能为空。 - 2 计算当前节点和下一个节点是否满足日线交叉的情况。如果不满足交叉的情况,则返回 0,如果满足交叉的情况根据交叉的情况返回 1 或者-1。
# 如果满足条件,上穿返回1,下穿返回-1,否则返回 0
def line_cross(m1, m1_next, m2, m2_next):
if m1 < m2 and m1_next > m2_next:
return 1
if m1 > m2 and m1_next < m2_next:
return -1
return 0
- 3 交叉的点只能从 1 点到 2 点 ,2 点到 3 点,如果满足了前一个条件后过了 7 次循环依旧不能找到下一个交叉点,则从新进行计算。
最终展示的代码如下图所示:
根据以上的模型,选股的股票为中直股份(600038),输出的结果如下图所示:
结合上图的日线图和股票软件的日线图寻找,我们可以确认寻找的节点是为满足条件的。
总结
搭建模型寻找股票价托技术形态已经完成,示例中是选取的上升形态的数据,当然也可以下降形态的进行验证。至于怎么验证所有的数据,可以根据之前抓取基金数据的方法抓取目前存在的股票信息,逐个遍历获取最近发生价托的数据进行分析。具体的代码已经上传至 github
,欢迎大家关注。
转载自:https://juejin.cn/post/7060142839459479588