**注意: pyecharts本身存在bug , 如果绘图出现空白 , ctrl+shift+p 搜索 "信任notebook" ,点击信任 , 如果网页一直处于加载状态可以多刷新几次页面试试
还有问题的话可以重新建立一个notebook执行上述步骤**
****
**更新 **
2020-11-09 :
1. 增加绘制分钟bar
2019-10-09 :
1. ID变更为非必须指定的参数 ,可以不依靠回测直接绘制K线图
2. 增加指标时, 索引支持自动对齐(之前需要传入的series和trade_price的索引一致)
3. 增加bar图指标可以定义颜色
****
### 效果图:

用于在研究中获取回测信息,并将买卖点绘制在K线图中, 使用了pyecharts库 , 动手能力强的小伙伴们也可以自己更改一下增加更多功能
## (1) 初始化, 获取回测信息
回测ID(backtestId):每个回测的唯一标识

`TRADE_PLOT(ID=None,security = None,start_date=None,end_date=None):`
1. ID : 回测ID (设置ID时,start_date及end_date相当于回测中单个标的的第一次及最后一次交易日期
2. security : 需要查看的标的,也可以使用set_security方法重新设置标的
3. start_date及end_date : 观测的时间 , 不设置ID时 , 必须设置start_date/end_date
初始化后将获得 trade_data 属性 , 是回测的所有交易记录详情(不设置ID时trade_data无意义)
```
trade_plot = TRADE_PLOT(ID = "回测ID")
```
初始化后将获得 trade_data 属性 , 是回测的所有交易记录详情
## (2) 设置需要查看的标的(标的可以不存在于交易列表中)
```
trade_plot.set_security('601866.XSHG' ,fq_date="last_day" ,forward_day=20 )
```
## (3) 绘图
```
trade_plot.show()
```
****
## 额外的方法
### 添加主图指标
`trade_plot.add_main_technical(Series,name,line_width =1,line_opacity =None,line_type =None,line_color=None) `
1. Series : 一个Series 对象, index需要是datetime或者date类型(绘制时只取和K线图一致的部分数据)
2. name : 指标名
3. line_width : 线的宽度 , 默认为1
4. line_opacity : 线的透明度,0-1 , 默认为1 , 完全不透明
5. line_type : 线的类型 , 可选参数( 'solid', 'dashed', 'dotted' )
6. line_color : 线的颜色,str
### 添加副图指标(line)
`trade_plot.add_extra_line(Series,name,line_width =2,line_opacity =None,line_type =None,line_color=None)`
参数同add_main_technical
### 添加副图指标(bar)
`trade_plot.add_extra_bar(Series,name,color)`
1. Series : 一个Series 对象, index需要是datetime或者date类型(绘制时只取和K线图一致的部分数据)
2. name : 指标名
3. color : bar的颜色
### 绘制分钟级别的K线图(独立的绘制)
`trade_plot.plot_m_k(end_date,count,unit='5m',fq_ref_date=None)`
1. end_date : 结束时间
2. count : bar的个数
3. unit : bar的单位
4. fq_ref_date : 复权基准日,参考get_bars
****
同时上传了py文件 show_k.py , 可以直接上传到研究中 ,同目录下使用时 from show_k import * 就可以直接调用了
能不能改成不用一个一个查看,直接把期间所有股票都展示出来?
2019-09-29
@jq299792 pyecharts 的限制, notebook中一个cell只能输出一个图 ,无法同时输出多个图, 可以考虑将图像全部绘制到一张图中, 不过交易标的过多的话估计绘制出的图像将会很大
2019-09-29
```
page = Page()
for s in ['600741.XSHG','600507.XSHG','000001.XSHE']:
trade_plot.set_security(s)
add_ma()
add_macd()
res= trade_plot.show()
page.add(res)
page
```
add_ma , add_macd 是直接将添加主图指标和田间副图指标的代码定义为函数 , 这样可以将交易的标的全部绘制出来 , 实测标的太多浏览器会有很大的卡顿, 不建议使用
@jq299792
2019-09-30
绘制分钟级别的K线图(独立的绘制)
trade_plot.plot_m_k(end_date,count,unit='5m',fq_ref_date=None)
end_date : 结束时间
count : bar的个数
unit : bar的单位
fq_ref_date : 复权基准日,参考get_bars
是否需要在class自己写def plot.plot_m_k?
2020-03-30
@LC9 已补充 ,不好意思 ,上传的时候忘记保存了
2020-08-12
pyecharts 0.5 官方文档地址 http://05x-docs.pyecharts.org/
2020-08-12
请问如何绘制分钟图,我看notebook里没有把这个添加进类里,看说明是要自己写个函数?
2020-10-31
@韭菜耍耍 已补充 ,不好意思 ,上传的时候忘记保存了
2020-11-09
@LC9 已补充 ,不好意思 ,上传的时候忘记保存了
2020-11-09
请问:期货策略,主力合约换仓后,前后代码不一样,应该如何修改才可以出现连续的K线图啊
2021-08-17
非常棒,虽然有些代码并没有完全理解,但是感觉很厉害哦。感谢!!!
2022-04-30
要是股票除权了,就会出现不在线上,以前的价格怎么弄。。。
2023-02-05