先看股票。从单笔交易来看,即先买后卖,那么很自然的,盈利就是卖价减去买价;对于多笔交易,如果可以追踪每笔交易的成交价格以及买卖时点,那么我们就可以精确的知道每笔平仓交易的盈亏,最后加总起来就可以了。这个想法很朴素,因为我们需要追踪每笔交易以及知道平仓对应的开仓交易,这样用卖价减去买价,自然就是这笔交易的盈亏。这种想法的代价就是我们需要知道的信息太多,包括每笔交易的价格和数量、买卖顺序以及平仓顺序。但是这种想法有助于我们得到更加简单的算法。

实际上,通过上面最朴素的想法,最后加总起来可以发现,最后的盈亏就等于所有的卖价和手数的乘积减去买价和手数的乘积,因为我们在意的是总盈亏,而不是每笔交易的盈亏,所以每笔交易的时点和平仓顺序这个信息其实不再重要。因此,两个时间点之间的盈亏就等于累计卖价乘以手数减去累计买价乘以手数。

如果末时点有持仓,那么持仓按照最新市价计算盈亏,即假设用最新市价平仓可以获得的收益来计算总盈亏,市价是作为卖价还是买价,取决于持仓方向。如果初时点有持仓,那么假设初时点的持仓以前一日收盘价建仓即可,卖价还是买价取决于仓位方向,这个取决于具体的规定。这样便可以计算实时盈亏,只是不同的时点需要更新买卖信息以及最新价而已。

接下来看期货,期货和股票的主要区别在于期货可以在多头和空头分别建仓,即可以在买的方向上建仓,同时也可以在卖的方向建仓。例如假设我们已经有多头仓位,接下来卖出一手,可以卖出开仓,也可以卖出平仓,而不是强制性的卖出已有的多头仓位即平仓。看起来,多了一层开平的逻辑使得盈亏的计算更复杂了,但实际上并不然。开平和盈亏无关,即我们卖出或者买入一手,无论是选择开仓还是平仓,不会影响我们实际的盈亏,我们需要在意的只是买卖方向。比如,假设我们已经有了多头仓位,现在卖出一手,如果选择平仓,那么就跟股票一样了,如果选择开仓,那么盈亏和平仓是一样的,相当于锁住了一手的盈亏,因为无论市场价格怎么变化,一方的盈亏都会被另一方抵消。因此,我们计算盈亏时,不需要关心是开还是平,只需要关心到底是买还是卖,然后同样的通过累计卖价和手数乘积减去累计买价和手数乘积即可,和股票一样。

由于只在于买卖方向,不在意开平,因此如果时点初末有持仓,只需要关心净持仓,即裸头寸即可,因为其他持仓数量相等方向相反,卖价减去买价中,买卖价格都是用相同的结算价或者市价,因此直接抵消了。所以,对于期货,算法和股票一样,只是不要被开平逻辑迷惑;对于时点的持仓,也只需要计算裸头寸的即可。

最后,区分一下平仓盈亏和浮动盈亏。总盈亏等于平仓盈亏和浮动盈亏,平仓盈亏就是已经实现的盈亏,即通过平仓获得的盈亏,而浮动盈亏则是现有持仓产生的盈亏,是根据当前市价或者结算价计算出来的盈亏,即未实现盈亏。但是如果要分别知道平仓盈亏和浮动盈亏,就需要知道未平头寸对应的开仓价格是多少,这就相当于要知道平仓顺序,以及每笔交易的顺序了,这样才可以准确的计算浮动盈亏以及平仓盈亏,而且此时由于每笔交易买卖对应关系是重要的,不能累计抵消,因此未平头寸需要分开每笔交易计算,不能合并只看净头寸。但是由于要记录每笔交易的顺序和平仓顺序,这个比较耗费内存,因此,通常来说,可以用之前所有买方向的成交量加权平均价作为未平空头的建仓价格,卖方向的成交量加权平均价作为多头的建仓价格,这样来估算浮动盈亏。要注意,用加权价格计算浮动盈时,也要用同样的价格计算平仓盈亏,这样才能保持总盈亏始终是正确的;当然,计算出浮动盈亏,用总盈亏减去浮动盈亏倒推平仓盈亏也可以。

实时计算交易盈亏、平仓盈亏和浮动盈亏相关推荐

  1. 期货浮动盈亏(期货浮动盈亏和盯市盈亏)

    浮动盈亏和当日参考盈亏,什么区别?赚还是赔 浮动盈亏是你仓位里所有股票从买入到当前的合计盈亏,当日参考盈亏是你仓位里所有股票今天的合计收益.举个最简单的例子,5天前你以1元价格买入1000股,5天来股 ...

  2. 获取股票数据【实时更新股票数据、创建你的股票数据】、计算交易指标【买入、卖出信号、计算持仓收益、计算累计收益率】

    在上一次获取股票数据[使用JQData查询行情数据.财务指标.估值指标]学习了使用JQData来查询股票相关数据, 这次则开始一点点构建咱们的量化交易系统了. 量化交易平台功能模块了解: 对于一个量化 ...

  3. 你真的了解实时计算吗?

    原文:http://dataunion.org/20226.html 请看下面的图: 我们以热卖产品的统计为例,看下传统的计算手段: 将用户行为.log等信息清洗后保存在数据库中. 将订单信息保存在数 ...

  4. 实时数仓入门训练营:实时计算 Flink 版 SQL 实践

    简介:<实时数仓入门训练营>由阿里云研究员王峰.阿里云高级产品专家刘一鸣等实时计算 Flink 版和 Hologres 的多名技术/产品一线专家齐上阵,合力搭建此次训练营的课程体系,精心打 ...

  5. 实时计算 Flink 版总体介绍

    简介:实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache F ...

  6. 流批一体生产应用!Bigo 实时计算平台建设实践

    简介:本文由 Bigo 计算平台负责人徐帅分享,主要介绍 Bigo 实时计算平台建设实践的介绍 本文由 Bigo 计算平台负责人徐帅分享,主要介绍 Bigo 实时计算平台建设实践的介绍.内容包括: B ...

  7. 一文揭秘阿里实时计算Blink核心技术:如何做到唯快不破?

    阿里妹导读:本文主要讲解阿里巴巴实时大数据和相关的机器学习技术,以及这些技术如何实现大数据升级,最终取得卓越的双11战果. 分享嘉宾 大沙,阿里巴巴高级技术专家,负责实时计算Flink SQL,之前在 ...

  8. Bigo 实时计算平台建设实践

    本文由 Bigo 计算平台负责人徐帅分享,主要介绍 Bigo 实时计算平台建设实践的介绍.内容包括: Bigo 实时计算平台的发展历程 特色与改进 业务场景 效率提升 总结展望 一.Bigo 实时计算 ...

  9. 云原生大数据架构中实时计算维表和结果表的选型实践

    简介: 随着互联网技术的日渐发展.数据规模的扩大与复杂的需求场景的产生,传统的大数据架构无法承载. 作者 | 志羽 来源 | 阿里技术公众号 一 前言 传统的大数据技术起源于 Google 三架马车 ...

  10. PyFlink + 区块链?揭秘行业领头企业 BTC.com 如何实现实时计算

    大家好,我们是 BTC.com 团队.2020 年,我们有幸接触到了 Flink 和 PyFlink 生态,从团队自身需求出发,完善了团队内实时计算的任务和需求,搭建了流批一体的计算环境. 在实现实时 ...

最新文章

  1. IOS学习之多线程(9)--NSOperation简单介绍
  2. localdatetime转化为date_LocalDateTime用法(jdk1.8 )
  3. 熊猫tv新功能介绍_熊猫简单介绍
  4. 如何用iOS工程生成iOS模拟器包
  5. Spring AOP(面向切面编程)
  6. 用php向MySQL的datetime类型插入数据
  7. 一网打尽:14种预训练语言模型大汇总
  8. double类型数据保留四位小数的另一种思路
  9. 十大经典策略之一 - Dual Thrust策略(期货)
  10. 层次化网络设计(三层网络结构)
  11. 计算机 英语简历,2017计算机英文简历范文
  12. 互联网公司裁员还有秘密?我知道了!
  13. 【翻译】各种Payload免杀工具集
  14. Sue Shallow
  15. android 蓝牙自动断开,Android蓝牙:连接()/断开()
  16. java rds 数据库_JDBC(java数据库连接)和阿里云RDS数据库
  17. NAND FLASH 读写操作 简介
  18. 风影总结NHibernate2 配置文件
  19. orale数据库的SQL查询
  20. 只要35+的程序员,招聘广告开始玩噱头?

热门文章

  1. 计蒜客习题:农场看守
  2. 高数篇:02费马定理
  3. CNVD-2020-10487(CVE-2020-1938)tomcat ajp 文件读取漏洞
  4. 《量化金融R语言高级教程》一1.1 多元时间序列分析
  5. 经营计划与经营利润分析动态报表的实现--业务需求
  6. 你好2020,再见2019(年终总结)
  7. Linux打补丁遇到Hunk# succeeded at提示
  8. RabbitMQ问题解决:TCP connection succeeded but Erlang distribution failed
  9. 行星轨迹制作_用3ds max制作三维行星运动动画
  10. cousera视频无法播放