Python股票量化交易到入门实战02

笔者按:

熟悉回测框架以及绘图是为了进行界面化处理的准备,在看到元宵作者的作品中有一些不错的亮点,需要学习的还有很多,比如实现实盘交易过程中的多线程处理要考虑好,我能够想到的就是通过多线程下载数据到CSV或者sql中,然后再对数据进行重采样,形成自己需要的数据周期,然后生成相应的均线或者其他技术指标,然后再进行判断,模拟下单,最后实盘化处理,最后进行可视化或者界面化,程序化展示。

书本中,文章进行了阶段性的解读,必须进行一段一段的学习和总结,搞清楚作者的变量命名,由此可见,很多时候还是需要写使用手册或者注释的,不然真的很多地方都看不懂。

是以为文。

系列文章:

Python股票量化交易到入门实战01

Python股票量化交易到入门实战03

三、常用图标类型的绘制

案例一:折线图

import pandas as pd
import numpy as np
import time
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']# 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号

fig=plt.figure(figsize=(12,8))
ax=fig.add_subplot(111)

start_val=0
stop_val=10
num_val=1000
x=np.linspace(start_val,stop_val,num_val)
y=np.sin(x)

'''
y=sin(x)
'--g':format_string方式,等同于linestyle,color,marker的结合,即破折线,绿色,像素点
lw:linewidth,用于设置线条宽度
label:设置线条的标签为sin(x)

'''
ax.plot(x,y,'--g',lw=2,label='sin(x)')

#本案例主要是掌握折线图的参数

案例二:标注点的绘制

这个是可视化中非常重要的地方,通过标注点使得图例的展示更加详细和具有说服力,主要是通过annotate()函数进行赋值。

import pandas as pd
import numpy as np
import time
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']# 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号

fig=plt.figure(figsize=(12,8))
ax=fig.add_subplot(111)

x=np.arange(10,20)
y=np.around(np.log(x),2)

ax.plot(x,y,marker='o')

ax.annotate('sample_one',xy=(x[1],y[1]),xytext=(80,10),textcoords='offset points',\
            arrowprops=dict(arrowstyle='->',connectionstyle='angle3,angleA=80,angleB=50'))
ax.annotate('sample_two',xy=(x[3],y[3]),xytext=(80,10),textcoords='offset points',\
            arrowprops=dict(facecolor='black',shrink=0.05,width=5))
ax.annotate('sample_three',xy=(x[5],y[5]),xytext=(80,10),textcoords='offset points',\
            arrowprops=dict(facecolor='green',headwidth=5,headlength=10),\
            bbox=dict(boxstyle='circle,pad=0.5',fc='yellow',ec='k',lw=1,alpha=0.5))
ax.annotate('sample_four',xy=(x[7],y[7]),xytext=(80,10),textcoords='offset points',\
            arrowprops=dict(facecolor='blue',headwidth=5,headlength=10),\
            bbox=dict(boxstyle='round,pad=0.5',fc='gray',ec='k',lw=1,alpha=0.5))
plt.show()

图例展示:

Python股票量化交易到入门实战02

学习感悟:

通过自己敲代码,感觉到annotate分为几个部分:一个是xy的位置需要赋值,一个是xy的大小赋值,一个是被注视点的坐标系属性,一个是注释文本的坐标系属性,一个设置各类箭头,最后就是文本外框进行赋值。

其中重点是把握xy的位置赋值,xy的大小赋值等,箭头设置等,其他的可以根据实际需要进行调整。

【笔者不由感慨,这些库能够写出来的都是大神,比自己写的类牛逼太多了】

实际在对于复杂的,经常调用的,可以通过书写一次,然后进行调整和修改就可以了,达到自身需要的目的和要求就可以了。

其他案例就不书写了,作为未来备查或者网络搜索的工具就可以了。

案例三:标记最大值,最小值(通过找到最大值和最小值即可)

案例四:参考线或者区域的绘制(调用参数axhline()函数即可,主要参数有四个:获取x轴的分布范围(最小值,最大值),指定颜色,透明度四个参数。)

ax.axhspan(ymin=0,ymax=1,facecolor='purple',alpha=0.3)
ax.axvspan(xmin=np.pi*2,xmax=np.pi*5/2,facecolor='g',alpha=0.3)

图例展示:

Python股票量化交易到入门实战02

案例五:双y轴本书有自身的写法,但是笔者可以通过对函数进行调用实现。

假定df=df[[‘close’,’vol’,’money’]],考虑到vol,money因子的维度要高于close,则通过调用plot中的函数进行书写,不必写的非常复杂。作者写的作为备案考虑,主要是考虑到那种调用更适合于函数调用。

df[['close','vol','money']].plot(secondary_y=['close'])

案例六:条形图的绘制

主要是用于绘制【成交量】等参数的可视化。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/496102
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 1小时前
下一篇 1小时前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注