用matplotlib绘制每次交易的盈亏三角形

结果:

代码:

python

def plot_trade_triangle(self):
# plot each trade as a trade-triangle, and annotate pnl
trade = self.trade
equity = self.equity.equity
fig,ax=plt.subplots()
for dt, row in trade.iterrows():
bars = row.buybar, row['sellbar']
pnl = 0 , row['pnl']
colors = 'r' if row.pnl>0 else 'g' ax.plot( bars, pnl, color=colors)
arrowprops = dict(facecolor='black',
edgecolor=colors,
#shrink=0.05,
arrowstyle='->',)
y_factor = 1.2 if abs(row.pnl) > 10. else 1.6
colors = 'yellow' if row.pnl>0 else 'cyan'
valignment = 'bottom' if row['pnl']>0 else 'top'
note= 'hld:%s\npnl:%s'% (bars[1]-bars[0], str(row['pnl']))
ax.annotate(note, xy=(row.sellbar, row.pnl),
xytext=(row.sellbar, row.pnl*y_factor),
va=valignment,
arrowprops=arrowprops,)
ax.fill_between(bars, pnl, color=colors) # 画: 持股期间的浮动盈亏:
float_pnl=(roc1[row.buybar+1:row.sellbar+1]+1).cumprod()
iloc = [equity.index.get_loc(key) for key in float_pnl.index]
float_pnl = pd.Series( (float_pnl.values-1)*100., index=iloc)
ax.plot(float_pnl, color='b')
ax.set_ylabel('float_pnl(%)')

用matplotlib绘制每次交易的盈亏三角形的更多相关文章

  1. 用Python的Pandas和Matplotlib绘制股票唐奇安通道,布林带通道和鳄鱼组线

    我最近出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中给出了MACD,KDJ ...

  2. 用Python的Pandas和Matplotlib绘制股票KDJ指标线

    我最近出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中给出了MACD,KDJ ...

  3. matplotlib绘制动画

    matplotlib从1.1.0版本以后就开始支持绘制动画,具体使用可以参考官方帮助文档.下面是一个很基本的例子: """ A simple example of an ...

  4. 用Matplotlib绘制二维图像

    唠叨几句: 近期在做数据分析,需要对数据做可视化处理,也就是画图,一般是用Matlib来做,但Matlib安装文件太大,不太想直接用它,据说其代码运行效率也很低,在网上看到可以先用Java做数据处理, ...

  5. Python学习(一) —— matplotlib绘制三维轨迹图

    在研究SLAM时常常需要对其输出的位姿进行复现以检测算法效果,在ubuntu系统中使用Python可以很好的完成相关的工作. 一. Ubuntu下Python的使用 在Ubuntu下使用Python有 ...

  6. python使用matplotlib绘制折线图教程

    Matplotlib是一个Python工具箱,用于科学计算的数据可视化.借助它,Python可以绘制如Matlab和Octave多种多样的数据图形.下面这篇文章主要介绍了python使用matplot ...

  7. 使用matplotlib绘制多个图形单独显示

    使用matplotlib绘制多个图形单独显示 一 代码 import numpy as np import matplotlib.pyplot as plt #创建自变量数组 x= np.linspa ...

  8. Python——使用matplotlib绘制柱状图

    Python——使用matplotlib绘制柱状图 1.基本柱状图           首先要安装matplotlib(http://matplotlib.org/api/pyplot_api.htm ...

  9. NumPy使用 Matplotlib 绘制直方图

    NumPy - 使用 Matplotlib 绘制直方图 NumPy 有一个numpy.histogram()函数,它是数据的频率分布的图形表示. 水平尺寸相等的矩形对应于类间隔,称为bin,变量hei ...

随机推荐

  1. [翻译]:Cinemachine 官方文档(0)

    目录 Overview : Installation and Getting Started :安装并开始 User Guide :用户指南 What is Cinemachine? : 什么是Cin ...

  2. 谷歌算法研究员:我为什么钟爱PyTorch?

    老铁们好!我是一名前谷歌的算法研究员,处理深度学习相关项目已有三年经验,接下来会在平台上给大家分享一些深度学习,计算机视觉和统计机器学习的心得体会,当然了内推简历一定是收的.这篇文章,不想说太多学术的 ...

  3. NumCPU()在slice中的使用

    package main import ( "fmt" "runtime" ) var slice []int func main() { array := m ...

  4. Helm 安装 nginx-ingress 的方法

    还是没学会 今天继续研究. Using Helm NGINX Ingress controller can be installed via Helm using the chart stable/n ...

  5. robotframework运行时后台报错UnicodeDecodeError

    win10环境下报错: Traceback (most recent call last): File "C:\Python27\lib\site-packages\robotide\con ...

  6. Asp.Net Mvc的几个小问题

    突然想到一些小问题,对写代码影响不大,当是又很实用. MVC 中视图中的model的大小写问题,什么时候用大写,什么时候用小写? 所谓强类型视图,就是通过@model指令指明当前Model(属性)的具 ...

  7. wamp安装失败原因大全

    wamp 是 Windos.Apache.Mysql.PHP集成安装环境 为了安装hdwiki 所以需要这个环境 1.下载wampserver_x86_3.0.6 64位  环境包,安装路径禁止有空格 ...

  8. MT【196】整数个数

    设函数$f(x)=x^2-2ax+15-2a$的两个零点分别为$x_1,x_2$, 且在区间$(x_1,x_2)$上恰好有两个正整数,则实数$a$的取值范围______ 提示:$1<|x_1-x ...

  9. 【USACO 1.4】Combination Lock

    /* TASK:combo LANG:C++ URL:http://train.usaco.org/usacoprob2?a=E6RZnAhV9zn&S=combo SOLVE:自己做,想的是 ...

  10. solr的基本使用

    Solr 概念: 1. 搜索引擎的技术,建立在Lucene之上,可以解决跨平台,跨语言的问题.(Lucene本身是个jar包,也就是API,不能独立运行,需要程序的调用来完成全局检索,不具备跨平台,跨 ...